日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中关于APK文件的下载、安装和卸载

發布時間:2025/3/20 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中关于APK文件的下载、安装和卸载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果我們想開發一款App,而這款App的需求中有對Apk文件的下載、安裝和卸載功能的話(就像豌豆莢,當然功能不會那強大,因為強大的功能背后總是一些比較NB的技術在支持),那么這篇博客還是比較適合你的。好了,我們現在就來看看它們是怎么現實的吧。

文件下載關鍵代碼:

private void downloadApkFile(String appName, String url) {final DownloadTask task = new DownloadTask(appName, url);task.controller = mDownloder.add(DemoApplication.SAVE_APK_PATH + task.storeFileName, task.url, new Listener<Void>() {@Overridepublic void onPreExecute() {task.invalidate(MainActivity.this);}@Overridepublic void onSuccess(Void response) {Toast.makeText(MainActivity.this, task.storeFileName + " Success!", Toast.LENGTH_SHORT).show();}@Overridepublic void onError(NetroidError error) {NetroidLog.e(error.getMessage());}@Overridepublic void onFinish() {NetroidLog.e("onFinish size : " + Formatter.formatFileSize(MainActivity.this, new File(DemoApplication.SAVE_APK_PATH + task.storeFileName).length()));task.invalidate(MainActivity.this);}@Overridepublic void onProgressChange(long fileSize, long downloadedSize) {task.onProgressChange(MainActivity.this, fileSize, downloadedSize);}});}

這是一個已經封裝好了的方法,我這里是通過點擊按鈕來調用這個方法。大家可以看到一個DownloadTask類,這個其實也可以是自己實現。不過我這里把分到了自己lib中了。這個工程Demo是基于Volley框架來開發的。不過我在Volley的代碼中沒有看到關于File相關的內容,只是一些byte相關的封裝類。不過我現在是在網上找到了一些代碼,是利用Volley的代碼,不過有一些自己的東西在里面。我就把這個優化過的代碼直接拿到用了。原連接現在有一些忘記了,不過不用擔心,這里會把他的代碼也一起放在我的資源里上傳給大家。

在我的代碼中與點擊事件直接關聯的還不是按鈕的Onclicklistener,而是下面的這樣一段代碼:

private void downloadApkFile() {String packageName = mPakeageNameEditText.getText().toString();if (ZFUtils.isEmptyString(packageName)) {Toast.makeText(MainActivity.this, "請輸入程序包名", Toast.LENGTH_SHORT).show();return;}String taskCount = mParallelTaskCountEditText.getText().toString();if (!ZFUtils.isEmptyString(taskCount)) {int count = Integer.parseInt(taskCount);mDownloder.clearAll();// 這里做一個判斷的目的是最多只能同時下載3個文件if (count <= 3) {initFilePath(Integer.parseInt(taskCount));} else {initFilePath(3);}}Toast.makeText(MainActivity.this, "Download...", Toast.LENGTH_SHORT).show();downloadApkFile(packageName + ".apk", DemoApplication.HI_APK_BASE_URL + packageName);// downloadApkFile("com.sds.android.ttpod.apk", DemoApplication.HI_APK_BASE_URL + "com.sds.android.ttpod"); // downloadApkFile("com.tencent.mobileqq.apk", DemoApplication.HI_APK_BASE_URL + "com.tencent.mobileqq"); // downloadApkFile("com.kugou.android.apk", DemoApplication.HI_APK_BASE_URL + "com.kugou.android"); // downloadApkFile("com.Qunar.apk", DemoApplication.HI_APK_BASE_URL + "com.Qunar"); // downloadApkFile("com.tencent.mtt.apk", DemoApplication.HI_APK_BASE_URL + "com.tencent.mtt"); // downloadApkFile("com.cootek.smartdialer.apk", DemoApplication.HI_APK_BASE_URL + "com.cootek.smartdialer");} 如上被注釋掉的一塊代碼是用來測試一次能并行下載多少個文件,事實現證明一次最多對并行下載的文件數目不能超過3個。

關于安裝和卸載倒是不難。如下:

/*** 安裝Apk* @date 2014-12-12* @time 上午10:39:30*/private void installAPK(String apkUrl) {String apkPath = apkUrl + ".apk";String fileName = DemoApplication.SAVE_APK_PATH + apkPath;Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");startActivity(intent);}/*** 卸載Apk* @date 2014-12-12* @time 上午10:39:41*/private void uninstallAPK(String url) {Uri packageURI = Uri.parse(url);Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);startActivity(uninstallIntent);}


本程序必需的兩個添加權限:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 第一個不用說,連網權限,第二個是對SD卡的寫權限,這個一定要有,因為程序中對文件下載保存的路徑為/sdcard/zfstar,當然這個可以自己修改。


下面的連接是本程序的原Demo和Volley的一個實例:

http://download.csdn.net/detail/u013761665/8260113

這里還有一點需要注意,大家可以看到下面的這張圖片:


我用藍色框出的部分是自己實現的,而紅色的部分可以直接放到自己的工程代碼就行了,當然還有一些是自己的意愿可有可無的代碼。如果你覺得麻煩,還可以自己打成一個jar包,直接放到自己的工程即可。


總結

以上是生活随笔為你收集整理的Android中关于APK文件的下载、安装和卸载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。