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插件化动态加载原理(二)
  • Android插件化动态加载原理(三)
  • Android插件化动态加载原理(四)

转载于:https://my.oschina.net/chunquedong/blog/676946

你可能感兴趣的:(Android插件化动态加载原理(一))