下面是我看過的有關Android動态加載技術的幾篇博文,分享~
大家可以先看看下面幾個文章對Android動态加載技術有個大體的思路了解:
Android應用插件式開發解決方法
農民伯伯的Android動态加載jar/dex
接下來是兩個實作Android動态加載的架構:
翻譯組成員作品:安卓應用程式插件化開發架構(android-application-plug-ins-frame-work)
安織雲,安卓輕應用解決方案-apkplug架構
接下來是幾個實作Android動态加載技術的文章:
探秘騰訊Android手機遊戲平台之不安裝遊戲APK直接啟動法
注:上述文章中獲得apk路徑的代碼在高版本中得改一改,改成
String path = Environment.getExternalStorageDirectory() + File.separator;
String filename = "TestB.apk";
String optimizedDirectory = path + File.separator + "dex_temp" ;
// 核心是這裡, 通過getDir來擷取一個File對象,然後在擷取到getAbsolutePath, 傳遞給DexClassLoader 即可
File file = getDir("dex", 0) ;
LoadAPK(paramBundle, path+filename, file.getAbsolutePath());
不然會抛出:java.lang.IllegalArgumentException: Optimized data directory /storage/sdcard0 is not owned by the current user. Shared storage cannot protect your application from code injection attacks.這個問題
Android動态加載代碼技術
Android apk動态加載機制的研究
Android apk動态加載機制的研究(二):資源加載和activity生命周期管理