在 Android 安裝好 App 之後,
有些 App 容量大, 想直接擷取出來,
方便日後從 APK 檔案快速安裝,
以下介紹如何透過程式, 實現這個功能 :
程式碼
PackageManager pm = getPackageManager(); try { // 取得 App 相關資訊 ApplicationInfo appInfo = pm.getApplicationInfo( packageName, PackageManager.GET_META_DATA ); // 來源檔案 (sourceDir 其實就是紀錄 App 的 APK 檔案路徑) BufferedInputStream bis = new BufferedInputStream( new FileInputStream( appInfo.sourceDir ) ); // 目的檔案 BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream( targetFilePathString + ".apk" ) ); // 讀取來源檔案, 且寫入到目的檔案 (等同擷取 APK 囉) int num; byte[] buf = new byte[1024]; while( (num=bis.read(buf, 0, 1024)) != -1 ) { bos.write( buf, 0, num ); } // 釋放記憶體與檔案 bos.close(); bis.close(); Log.i( "test", " APK 擷取完成 !!" ); } catch( Exception e ) { Log.i( "test", "APK 擷取失敗 !!" ); }
這個程式碼, 還可以改良, 如加上擷取進度, 以上, 參考看看囉.