1 介绍
Android
插件化技术是比较热门领域,VirtualAPK 是滴滴2017年6月3号开源,框架功能完备,支持 Android
四大组件,良好的兼容性,且入侵性较低,作为加载耦合插件方案是较好选择。兼容市面上几乎所有的 Android
手机,这一点已经在滴滴出行客户端中得到验证; 资源方面适配小米、Vivo
、Nubia
等,对未知机型采用自适应适配方案;极少的 Binder Hook
,目前仅仅hook
了两个 Binder
: AMS
和 IContentProvider
,hook
过程做了充分的兼容性适配;插件运行逻辑和宿主隔离,确保框架的任何问题都不会影响宿主的
2 VirtualAPK和主流开源框架的对比
特性 | DynamicLoadApk | DynamicAPK | Small | DroidPlugin | VirtualAPK |
---|---|---|---|---|---|
支持四大组件 | 只支持Activity | 只支持Activity | 只支持Activity | 全支持 | 全支持 |
组件无需在宿主manifest中预注册 | √ | × | √ | √ | √ |
插件可以依赖宿主 | √ | √ | √ | × | √ |
支持PendingIntent | × | × | × | √ | √ |
Android特性支持 | 大部分 | 大部分 | 大部分 | 几乎全部 | 几乎全部 |
兼容性适配 | 一般 | 一般 | 中等 | 高 | 高 |
插件构建 | 无 | 部署aapt | Gradle插件 | 无 | Gradle插件 |