android动态加载res,Android动态加载—Res文件

本文介绍了Android如何实现动态加载res资源,包括下载资源apk,将其复制到指定目录,通过Resources.getIdentifier()获取资源ID,以及利用反射创建插件资源对象进行加载。详细解析了动态加载过程中的关键步骤和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

动态加载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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值