下面是我看过的有关Android动态加载技术的几篇博文,分享~
大家可以先看看下面几个帖子对Android动态加载技术有个大体的思路了解:
接下来是两个实现Android动态加载的框架:
翻译组成员作品:安卓应用程序插件化开发框架(android-application-plug-ins-frame-work)
接下来是几个实现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.这个问题