插件化原理及实现方案总结

插件化实现原理

什么是插件化

插件在广泛意思上来说就是一个用来运行的独立完整功能的应用,其特点是可以被支持动态得可插拔式加载运行,做到功能模块可以动态的添加和卸载。对Android系统来言,就是相当于一个已经安装到手机的Apk(Android系统独立完整功能的应用模块存在形式)内部可以动态安装apk,Apk是由系统完整来安装和卸载,对于手机应用层来说,是个插件,而这里要说的是Android系统应用App内的插件化,用来解决避免每次更新功能都需要用户重新安装卸载app带来的更新慢/没有修复能力的问题。

插件化实现原理

就上文而言,要实现已安装App内的插件化功能(这个App称为宿主),就需要在App内有个插件化框架来动态加载安装插件,能够像系统一样加载解析Apk,能够运行起来;并且需要支持宿主和插件或插件间的通信以满足业务逻辑或开发模块组件化框架需要。那怎么实现这样的插件化框架呢?

插件Apk资源动态加载原理

大致步骤:安装解析静态资源:Res/manifest/dex/so等文件加载到安装目录下中去,并解析对应的信息进行校验安全合法唯一性,以及做版本判断之类的
启动Apk:加载文件到内存,如dex文件加载,res资源加载成Resource对象以及Application对象
启动组件:启动组件的代理类来接受AMS的检查,然后以某种方式同步到插件中的组件
参见Apk资源加载机制

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trilen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值