插件如何实现

1. listview列表url

2.下载url apk文件

3. 安装apk

4.监听安装应用广播

 android.intent.action.package_added

插件管理类获取包名并管理。

5. 调用插件中的方法

使用

1.

context.createPackageContext(包名,

Context.CONTEXT_INCLUDE_CODE

| Context.CONTEXT_IGNORE_SECURITY

)

获取包的context。

2.

用反射的方式实例化插件中的接口类,加入参数。

完成连接。


Context c = getContext().createPackageContext(“插件包名”,Context.CONTEXT_INCLUDE_CODE |Context.CONTEXT_IGNORE_SECURITY);
					
Class<?> clazz = c.getClassLoader().loadClass(插件接口类)

Constructor<?> con = con = clazz.getConstructor(“插件接口类需要的参数,如view,context等等”);

con.newInstance();
		

3.

如果是换皮肤可用。

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">注:插件中的资源名字是约定好的</span>

Context c = getContext().createPackageContext(“插件包名”,Context.CONTEXT_INCLUDE_CODE |Context.CONTEXT_IGNORE_SECURITY);

Resource r = c.getResources();

String name = “本地context”.getResources().getResourceEntryName(localResId);
String resType = “本地context”.getResources().getResourceTypeName(localResId);
int matchId = c.getIdentifier( resName, resType, “插件包名”);

Bitmap bitmap = BitmapFactory.decodeResource(r, matchId);
BitmapDrawable bd = new BitmapDrawable(bitmap);

setBackgroundDrawable(bd);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值