您的位置:首页 > 移动开发 > Android开发

列几个Android插件化开发框架

2017-06-14 22:30 267 查看

插件化

    为什么还要用插件化呢?插件化开发总的来说有以下几点好处(不同插件框架不一样):宿主和插件分开编译
并发开发
动态更新插件
按需下载模块
方法数或变量数爆棚

处境

开放出来的插件化开发框架比较多,他们各自都有自己的优势和和不足,实现的原理也有差别下面列

开源的插件化框架

Qihoo360/DroidPlugin
CtripMobile/DynamicAPK
mmin18/AndroidDynamicLoader
singwhatiwanna/dynamic-load-apk
houkx/android-pluginmgr
bunnyblue/ACDD
wequick/Small
……
目前开源的这几个框架有宿主和插件分离的也有融合在一起的,每个框架的详细介绍和demo在github里都可以查看到。插件化demo运行起来比较简单,但是真正将它用到实际项目中还是要考虑很多小细节的,目前我也正处于研究阶段。

携程插件化框架
ACDD插件化框架
360插件化框架
Android-Plugin-Framework
DL APK动态加载框架

部分框架对比

DynamicLoadApk迁移成本很重:需要使用『that』而不是『this』,所有activity都需要继承自proxy avtivity(proxy avtivity负责管理所有activity的生命周期)。无法启动apk内部的activity。不支持Service和BroadcastReceiver。
AndroidDynamicLoader迁移成本很重:使用资源时要用
MyResources.getResource(Me.class)
而不是
context.getResources()
使用Fragment作为UI容器,所有每个页面都是使用Fragment而不是Activity,需要使用URL mapping才能实现页面跳转。
android-pluginmgr未经过生产环境App测试。不支持Service和BroadcastReceiver。
DroidPlugin from 奇虎360非常有趣的框架!DroidPlugin能够在一个App内启动一个没有安装的App。这个特性可能更适合360的安全产品,因为被启动的App和宿主App完全没有任何关联,相互间不能支持资源和代码调用。不支持自定义推送栏。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: