序二
很荣幸能为本书写下三言两语。
我和插件化技术之间有着难解的情缘,到目前为止我已经工作好几年了,如果简化一下,就是下面这个样子:
1)开源dynamic-load-apk插件化框架(业余时间)。
2)开发百度手机卫士&出版《Android开发艺术探索》(百度)。
3)开源VirtualAPK插件化框架(滴滴出行)。
这么一看,自从我工作以来,有一半时间都在从事插件化相关的开发工作。我喜欢Android,也喜欢插件化。最开始我对插件化只是兴趣使然,在工作之余我喜欢做一些研究,所以有了dynamic-load-apk。到后面我加入滴滴出行则是使命使然,在我的内心深处,我觉得dynamic-load-apk不够完美,我想开发一款完美的插件化框架,于是有了后面的VirtualAPK。回想起插件化的发展,也就仿佛看到了一路走来的自己。
2014年3月30号,我在CSDN上发布了一篇文章《Android apk动态加载机制的研究》。这篇文章现在看起来很傻,技术也很落后,但是很多人都无法感受当时的情形。在2014年年初,别说插件化知识了,就连高质量的Android技术文章都比较匮乏。
说起高质量的Android技术文章,大家可能会想到:可以看《第一行代码Android》和《Android开发艺术探索》呀!但是很遗憾,那个时候这两本书都还没出版,不止是这两本书,很多大家所熟知的书都没有出版。当时Android技术圈沉醉于下拉刷新、侧滑菜单等这种炫酷特效,对于AIDL和View原理不曾研究过,你要问插件化?90%的Android工程师都不知道这是个什么东西。除了技术文章和书籍比较匮乏以外,开源也比较匮乏。在2014年,插件化技术只是一个概念,虽然当时阿里已经有了Atlas,但是并没有开源,所以在这种情形下,我发的那篇文章就显得很专业了,当时引起了技术圈的广泛关注,获得了7万多的阅读量。
在2014年下半年,我和田啸、宋思宇等同学发起了dynamic-load-apk这个开源项目,现在大家都知道了,dynamic-load-apk在插件化历史中有着浓厚的一笔。dynamic-load-apk支持动态加载代码和资源,资源访问可以直接通过R来进行,在四大组件方面支持Activity和Service。虽然说dynamic-load-apk谈不上多完善,但是业内却有不少公司基于dynamic-load-apk进行二次开发来定制自己的插件化框架,从这个角度来说dynamic-load-apk是很成功的一款开源框架。
到2016年,插件化框架才真正迎来了大繁荣时代,可谓百家争鸣。不管是Atlas、Small、DroidPlugin还是携程的DynamicAPK,都极大地促进了Android插件化框架的发展。我也是在2016年年初离开百度,来到了现在的滴滴出行。如果说在百度的工作是做应用开发的话,那么在滴滴出行的工作就完全是热修复和插件化开发了。经过长时间的开发和验证,滴滴出行在2017年6月30日开源了一个更为完善的插件化框架VirtualAPK,而我则在这个框架的开源中发挥了至关重要的作用。
如果给我这几年的职业生涯写一个总结,那就是:两款Android插件化框架+一个App+一本书,而我还将在Android的道路上继续耕耘。
任玉刚,2018年6月于北京