随着应用的体积越来越大, 插件化也逐渐受到关注,参考. 应用插件化把模块完全解耦, 使用下载更新的方式, 扩展应用, 是平台化类应用的必然选择. 国内很多公司实现了各式各样的方法, 360的DroidPlugin是比较有意思的一个, 使用预占位的方式注册四大组件, 实现热更新,参考, 也可以直接读源码理解实现逻辑.
应用插件化实践--DroidPlugin的使用
之前写过有关于Android 插件方向的文章,解析了一下Android的插件原理与运行方式。很多小伙伴都问我,为什么不把我制作的插件放到Github上,让大家共享一下。
我只能说,大哥啊,这个插件是我在公司研发的时候制作的,商业机密,不能开源啊。
刚好,最近逛github的时候,看到了奇虎360手机助手团队的一个Android插件开源项目。今天,我们就具体的分析一下它的原理与实现逻辑。让大家更清楚的了解,一个Android插件的构造。
360 Android 插件项目 DroidPlugin
这个框架是奇虎360手机助手团队,最近在github上开源出来的Android插件框架。这种精神是很值得鼓励的。
github地址为: https://github.com/Qihoo360/DroidPlugin
好,一下纯属引入了官方的说明:
说明
DroidPlugin是360手机助手在Android系统上实现了一种新的插件机制:
它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定的好处。
链接地址:Android插件实例——360 DroidPlugin详解,androiddroidplugin
360 Android插件(DroidPlugin)无需安装运行APK的原理是什么,用途都有哪些?
今天上网偶尔浏览到GibtHub上一个叫做DroidPlugin的360手机助手插件,不明觉厉,但很感兴趣。这个插件,对我们普通开发者,有什么价值和意义?请开发、运营的高手解读一下,谢谢!
链接地址:360 Android插件(DroidPlugin)无需安装运行APK的原理是什么,用途都有哪些?
前段时间,奇虎360在Github上发布了一个Android开源项目DroidPlugin,这是一个实现动态加载的Android插件框架,可以免安装、免修改的运行第三方APK。一时间,它被誉为安卓黑科技,引起行业内的关注。
据其官方文档介绍,DroidPlugin的目的是改进大型APP的架构,实现多团队协作开发。它的部分特性如下:
支持Android 2.3 - 6.0(Android M)系统版本。
集成简单,将DroidPlugin引入到项目后仅需很少代码集成。
高度隔离,宿主App和插件App之间的是完全隔离的。
插件管理,插件的空进程等会被及时处理,静态广播会被当作动态处理。
DroidPlugin的原理是利用Android一个进程可以运行多个APK的机制,通 过API欺骗让系统以为只有宿主App存在,同时通过预先占坑来创造插件App的运行环境,最后通过动态代理实现函数hook、Binder代理绕过部分系统服务限制,从而实现应用的组件化。
据InfoQ了解,它的作者是360高级工程师张勇,InfoQ记者对其进行了采访,了解了项目背后的更多信息。同时,张勇也接受InfoQ邀请,将于12月18日在ArchSummit北京2015架构师大会上作“分拆:DroidPlugin的实现原理及其应用”的分享。
受访嘉宾介绍
张勇,从2009年开始从事Android的研发工作,分别在机锋网、金山、360从事过桌面、安全、市场等Android APP的研发管理工作。2011年加入360手机助手团队,目前在奇虎从事360手机助手Android客户端的研发工作,专注于Android APP安全、架构领域。
链接地址:专访DroidPlugin作者张勇:安卓黑科技是怎样炼成的