6月30日消息,滴滴出行今日披露了首个开源项目VirtualAPK,该款插件化框架可帮助企业随时通过更新插件的方式来发布新功能,包括修复严重crash或进行业务“试错”,拥有功能完备、基本无入侵、插件可轻松访问宿主代码和资源、高兼容性这四大核心优势。
滴滴方面表示, VirtualAPK支持四大组件和几乎所有的Android特性,且插件开发等同于原生Android开发。该项目在内部已得到成功验证,在迭代过程中不断的进行高密度机型适配和细节特性支持,运行状态稳定,足以支撑滴滴部分乃至全部业务的动态发版需求。
目前开发者可登陆Github(https://github.com/didi/VirtualAPK)查看该项目的详细介绍和源代码,也可在滴滴的开源平台上(https://didi.github.io/)获取更多信息。
在传统APP发布过程中,大多数开发者采用固定时段发版节奏,比如两周或一个月更新一次,但如果一个新版本发布运行后发现存在大量crash,此时大多数公司会选择立刻发一个紧急版本,但紧急版本虽然可解决燃眉之急,但在用户体验方面将造成不可挽回的损失。
除此之外,还有一种常见情况,比如早期创业公司,需要通过迅速“试错”来尝试找准市场方向,要进行频繁发版,甚至一天一发,但在正常发版流程中,显然不现实。
VirtualAPK有效解决了上述问题,通过VirtualAPK将业务模块插件化,就可以随时通过更新插件的方式来发布新功能,无论是修复crash还是业务“试错”都可以高效进行。
实际上,市场上已经有很多优秀的开源插件化框架,滴滴之所以选择自行研发VirtualAPK,相关负责人称,首先,大部分开源框架支持的功能还不够全面。 除了DroidPlugin,大部分都只支持Activity。
其次,兼容性问题严重,大部分开源方案不够健全。 由于国内Rom尝试深度定制Android系统,这导致了诸多的插件框架的兼容性问题,而目前已有的开源方案中,除了个别开源方案外,其他方案对兼容性问题的适配度严重不足。
第三,已有的开源方案不适合滴滴的业务场景,虽然DroidPlugin从功能的完整性和兼容性上来看,是一款非常完善的插件框架,然而它的使用场景和滴滴的业务不符,DroidPlugin侧重于加载第三方独立插件,比如微信,并且插件不能访问宿主的代码和资源。而在滴滴打车中,其他业务模块均需要宿主提供的订单、定位、账号等数据,因此插件不可能和宿主没有交互。
基于上述,滴滴自行研发了这款插件化框架,它功能全面、兼容性好,还能够适用于有耦合的业务插件,这就是VirtualAPK存在的意义。业内认为,在加载耦合插件方面,VirtualAPK可以说是开源方案的首选。