经历了几个月的折腾,代码终于跑起来了,目前做插件的比较多,各个方案。
目前有ApkPlug(OSGI),商业,非开源。
dynamic-load-apk,这个开源的,用到代理方式进行,到时有人说或引起各种问题,具体不太清楚,国内有些类似的插件也使用了这种方式,
android-pluginmgr/ 这个用了方式比较巧妙。不过作者没空维护了。
总之国内对插件的探索比较多,还有使用dex动态加载这种,也是很多。
OpenAtlas 项目主页 详见readme
OpenAtlas 属于重量级的插件引擎,在我开始动手的时候有人说这是个坑,明知是坑,还非要往里跳,经历了五个月的hard working,终于出来了,也不是每个项目都用得上。
支持Activity Service Receiver Provider ,任何部分都可以插件化。代码耦合度低。支持native。支持自定义application。使用简单,没有任何限制,组件可以相互调用,使用延迟加载,即使整个项目都插件化了,启动可以只加载核心组件,其余的可以用的时候加载。
可以像开发普通APP一样开发。
1 程序安装在data目录下只有lib文件夹
启动后加载了四个组件
程序启动后加载了安装的插件列表。点击报名选择要启动的Activity即可。
如下如
下图是使用ZBar的条码扫描
在插件列表点击menu 启动未安装的Activity 下图为包结构,比刚启动的时候多了一个。
。
下载demo玩一下,下一篇开始剖析了。
sdk和launcher使用的eclipse开发的,sample下面的用的studio。