滴滴宣布开源 Android 端插件化框架 VirtualAPK

王练
 王练
发布于 2017年06月30日
收藏 90

滴滴于今天正式宣布开源其 Android 插件化框架 —— VirtualAPK ,这也是滴滴公司的首个对外开源项目

滴滴表示于去年开始研究 Android 插件化方面的技术,经过半年的开发、测试、适配和线上验证,最终形成了现在的 VirtualAPK 。VirtualAPK 已在滴滴内部得到了很好的验证,并已应用于滴滴乘客端和优步中国 APP 中。

VirtualAPK 主要有如下几个特性。

功能完备

  • 支持几乎所有的 Android 特性;

  • 四大组件方面

四大组件均不需要在宿主 manifest 中预注册,每个组件都有完整的生命周期。

  1. Activity:支持显示和隐式调用,支持 Activity 的 theme 和 LaunchMode,支持透明主题;

  2. Service:支持显示和隐式调用,支持 Service 的 start、stop、bind 和 unbind,并支持跨进程 bind 插件中的 Service;

  3. Receiver:支持静态注册和动态注册的 Receiver;

  4. ContentProvider:支持 provider 的所有操作,包括 CRUD 和 call 方法等,支持跨进程访问插件中的 Provider。

  5. 自定义 View:支持自定义 View,支持自定义属性和 style,支持动画;

  6. PendingIntent:支持 PendingIntent 以及和其相关的 Alarm、Notification 和 AppWidget;

  7. 支持插件 Application 以及插件 manifest 中的 meta-data;

  8. 支持插件中的 so。

优秀的兼容性

  • 兼容市面上几乎所有的 Android 手机,这一点已经在滴滴出行客户端中得到验证;

  • 资源方面适配小米、Vivo、Nubia 等,对未知机型采用自适应适配方案;

  • 极少的 Binder Hook,目前仅仅 hook 了两个 Binder:AMS 和 IContentProvider,hook 过程做了充分的兼容性适配;

  • 插件运行逻辑和宿主隔离,确保框架的任何问题都不会影响宿主的正常运行。

 入侵性极低

  • 插件开发等同于原生开发,四大组件无需继承特定的基类;

  • 精简的插件包,插件可以依赖宿主中的代码和资源,也可以不依赖;

  • 插件的构建过程简单,通过 Gradle 插件来完成插件的构建,整个过程对开发者透明。


>>>【评论有礼】6月6日-30日评论每日更新的“新闻资讯和软件更新资讯”,评论点赞数超过 20 的可登上每周更新的“源资讯”和“软件周刊”两大栏目,点赞数超过 50 的还将获得 5 活跃积分奖励和开源中国定制好礼。详情

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:滴滴宣布开源 Android 端插件化框架 VirtualAPK
加载中

精彩评论

巴拉迪维
巴拉迪维
虽然走进开源大家庭,可滴滴依旧是那个最让人恶心的熊孩子。从公司的运营策略、手段,再到技术的设计、实现,没有一样让人觉得滴滴是在为了让出行更方便。不,确切的说,滴滴像是那个拦路抢劫的盗匪,而且是官方认可的匪徒。
简单代码
简单代码
滴滴的软件很慢啊

最新评论(16

明胜
明胜
app已卸载,微信公众号,凑合用
zigzagroad
zigzagroad
没安装过打车软件,因为用不上。
小白小霸王
小白小霸王
哈哈 滴滴已经卸载好久了 , 是的 我是穷逼 , 我坐不起
阿信sxq
阿信sxq
大家都来?
巴拉迪维
巴拉迪维
虽然走进开源大家庭,可滴滴依旧是那个最让人恶心的熊孩子。从公司的运营策略、手段,再到技术的设计、实现,没有一样让人觉得滴滴是在为了让出行更方便。不,确切的说,滴滴像是那个拦路抢劫的盗匪,而且是官方认可的匪徒。
暗杠
暗杠

引用来自“暗杠”的评论

服了你们这些人的逻辑,嫌慢要不你去改进一下?

引用来自“app-developer”的评论

滴滴搞了个超级慢的东西,还不让人说了!
怎么敢不让,你们开心就好。
a
app-developer

引用来自“暗杠”的评论

服了你们这些人的逻辑,嫌慢要不你去改进一下?
滴滴搞了个超级慢的东西,还不让人说了!
暗杠
暗杠
服了你们这些人的逻辑,嫌慢要不你去改进一下?
返回顶部
顶部