Android插件化动态加载原理(一)
Android插件化动态加载原理(一)
chunquedong 发表于2年前
Android插件化动态加载原理(一)
  • 发表于 2年前
  • 阅读 978
  • 收藏 17
  • 点赞 3
  • 评论 6

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 介绍Android插件化开发原理

Android插件化开发有很多原因,主要是为了不重新安装的情况下动态更新应用,和能减小安装包大小。用起来有种HTML5能及时更新的感觉。

虽然网上有一些开源库,但都不是很熟。有些项目使用了大量的Android系统私有API,兼容性是个问题。有些库则使用比较麻烦,需要使用定制的编译工具和特殊的编程约定,学习成本较高。也没有完整的自动更新机制,还需要二次开发。

所以就有了axbasePlugin项目,这是一个轻量级的Android插件化开发框架。支持下面的功能

  • 完整解决方案,不止核心引擎
  • 非隔离式,宿主和插件间可自由通信
  • 非侵入式设计,插件和普通App代码编写方式无区别
  • 插件可作为独立App安装运行,便于测试和独立分发
  • 支持Service等四大组件,和.so文件
  • 支持assets目录中预制插件和网络下载方式
  • 不需要手动分配资源ID或者使用定制aapt打包
  • 最小化Hook系统私有API数量,运行更稳定
  • 插件库大小不到60k,极致体积

和DroidPlugin库不同的地方是,DroidPlugin试图覆盖所有系统API,虚拟出一个运行环境。而axbasePlugin则采用轻量级的方法,尽量减少对系统私有API的依赖。

后面会陆续更新插件化开发原理的文章,这篇算开篇。 请关注axbasePlugin插件化开发框架Github

更新:

标签: Android axbase 插件
共有 人打赏支持
chunquedong
粉丝 47
博文 115
码字总数 34233
作品 4
评论 (6)
bbdlg
哈,楼主对Android的研究之深入令人佩服,我之前写过一篇关于插件式开发的文字,不过是应用层的。我苦于工作繁杂,贴出来希望能对你有所参考。
http://mp.weixin.qq.com/s?__biz=MjM5ODY2NTI2MQ==&mid=2648449818&idx=1&sn=060d735654f9abd829fc66e16d0bcfee#rd

另,在第二三篇上,如果加上第一篇的链接就更好了:D
维维诺
LZ,你这个框架在寄生的apk中,能否加载资源文件之类的?
chunquedong

引用来自“维维诺”的评论

LZ,你这个框架在寄生的apk中,能否加载资源文件之类的?
可以加载资源文件
维维诺
大神你好,我在调试demo的时候发现一个问题,当host调起plugin打开plugin界面的时候,host的界面destory了,这是为何呢?
维维诺
我看了下源码,有设置的79
chunquedong

引用来自“维维诺”的评论

大神你好,我在调试demo的时候发现一个问题,当host调起plugin打开plugin界面的时候,host的界面destory了,这是为何呢?
launch的最后一个参数传false就行了
×
chunquedong
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: