欢迎来到天天文库
浏览记录
ID:8225015
大小:849.40 KB
页数:33页
时间:2018-03-10
《ArchSummit北京2015-《分拆:DroidPlugin的实现原理及其应用》-张勇》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、分拆:DroidPlugin实现原理及在360手机助手中的应用张勇360手机助手zhangyong232@gmail.com我们在移动研发中经常会遇到什么问题?新版本就要发布了,可兄弟部门负责的模块还没完成?等线上产品突然出现了重大质量问题要紧急修复?急安装包越来越大,下载安装成功率越来越小?肥我们的解决方案拆DroidPluginDroidPlugin是什么?DroidPlugin是什么?免安装、免修改、免重新打包的运行APK的插件机制DroidPlugin的特点高完整度高完整度支持Android四大组件支持Android
2、95%以上API无需对插件APK做任何修改完全模拟Android运行环境低侵入性低侵入性研发流程对宿主程序对插件APK对Android系统和实现方式完整的隔离机制DroidPlugin在360手机助手的实践DroidPlugin在360手机助手的实践-架构10余个插件运行覆盖了90%的用户瘦身30%模块快速更新随时新增、删除功能而不需发版本DroidPlugin在360手机助手的实践-流程插件、主程序独立发版各个插件有自己的负责人插件、主程序研发互不影响插件发布、部署后台DroidPlugin的架构DroidPlugin的架
3、构包管理服务(PMS)进程管理APK解析服务(AMS)Manifest预先注册占坑、预先注册权限缓存功能的反射机制Hook模块(Binder、代理),欺上瞒下工具类、隐藏方法调用DroidPlugin的原理DroidPlugin核心原理插件加载:进程共享组件注册:占坑机制代码运行:HOOK欺骗机型适配:API&AppOps&ROMDroidPlugin核心原理之:占坑SystemServer(AMS)handleLauncheActivity发送Fork命令、参数ZygotestartActivityfork并执行Activ
4、ityThread.main函数AppProcessDroidPlugin核心原理之:Hook动态代理、反射PackageManager和ActivityManager服务关于Android的ActivityThread类解决AppOps问题Dalvik/ARTmethodhookDroidPlugin与其它插件机制的区别DroidPlugin与其它插件机制的区别Androidandroid-DroidDynamicdynamic-DynamicpluginmAPKPlugPluginAPKload-apkLoadergr跳
5、转动画不支持API完整不支持服不支持服、所有API四大组件Resource度务和广播务和广播ContentPAPIrovider迁移成本低高高高高高Apache授权LGPLMITMIT-商业收费2.0DroidPlugin未来计划•Native支持,游戏支持•安全模块•插件之间的高效、低耦合的通讯机制•更细粒度的Fragment支持•………谢谢By张勇
此文档下载收益归作者所有