简介
动态加载res文件,就是将资源文件打包进一个统一的apk,而在我们的app安装后通过后台下载,然后再写到我们的应用中,将这个含有资源的apk,可以称为插件apk,而我们的app,可以称为宿主apk,在宿主中加载插件中的资源文件的方法。
介绍
下载
加载
获取资源文件
对于下载可以参考上一篇so文件的下载,没什么要说的,加载是从你的sdcard目录下复制到你的应用目录下例如:data/data/包名/app_dex目录下面,代码参考so文件的复制。
将apk复制到指定的目录后,就是获取其里面的资源了,而获取一个应用的资源,我么首先要知道这个资源对应的id是多少,而对于插件来说,它里面的资源id我们是不知道的,但是资源的name确实我们开发者定的,所有我们可以通过资源的name来获取id,方法是系统API : Resources.getIdentifier()
public int getIdentifier(String name, String defType, String defPackage) {
if (name == null) {
throw new NullPointerException("name is null");
}
try {
return Integer.parseInt(name);
} catch (Exception e) {
// Ignore
}
return mAssets.getResourceIdentifier(name, defType, defPackag