别跟我说你对这个技术还不熟!

插件化技术是什么?

打开你的美团,你平时一般只点外卖对吧?但是 “美食”、“电影”、“外卖”、“打车” 等,每个入口其实都是一个app,只不过被集成到这里了,这个就是插件化。

插件化技术,主要应用在新闻、电商、阅读、出行、视频、音乐等领域。

插件化技术发展史

今天我们就来梳理一下插件化技术的发展脉络。 (如有错误请指正哈)

插件化技术早在2012年就出现了,最初只支持Activity的动态加载发展,现在已经可以完全模拟app运行了。

2012年7月27日,大众点评屠毅敏,发布 AndroidDynamicLoader 第一个Android插件化开源项目;

2013 年, 23Code 出现,可以自定义控件动态下载; Android插件化技术正式诞生;

2013 3 月,阿里,淘宝的 Atlas 插件化框架;

2014 3 30 日,任玉刚开源 Android 插件化项目 dynamic-load-apk

2014年5月,张涛,插件化框架CJFrameForAndroid;

2014 11 月, houkx GitHub 上发布了插件化项目 android-pluginmgr

2014 12 月, AndroidStudio1.0 版本出现;

2015 年, Lody 发布插件化项目 Direct- Load-apk

2015 5 月, limpoxe 发布插件化框架 Android- Plugin-Framework

2015 7 月, kaedea 发布插件化框架 android- dynamical-loading

2015 8 27 日,张勇, DroidPlugin 问世; 这个框架的能把任意的 App 都加载到宿主里面去。你可以基于这个框架写一个宿主 App ,然后就可以把别人写的 App 都当作插件来加载。

2015 5 月, OpenAtlas 发布,后改名为 ACDD

2015 10 月,携程开源插件化框架 DynamicAPK

2015 12 月底,林光亮的 Small 框架发布;

2015年,Android插件化技术可以说是蓬勃发展,百家争鸣,很多插件化框架应运而生。同年,Android热修复技术开始热门起来……

2016 年起,国内各大互联网公司陆续开源了自己研发的插件化框架:

2016 8 月,掌阅推出 Zeus

2017 3 月,阿里推出 Atlas

2017 6 26 日, 360 手机卫士的 RePlugin

2017 6 29 日,滴滴推出 VisualApk

……

插件化demo展示(作者:小窦子)

我们为什么要掌握插件化?

插件化可以说引领了Android技术的进步,是和原生系统对着干的 “黑科技” ,因为涉及到的知识面非常的广,需要对源码有深入的理解,所以也是面试官用来查看应聘者技术功底的工具。

插件化技术在国内已经是相对比较完善,而且也有比较广泛的应用了,各种插件化的开源框架也是层出不穷,但是完整的插件化技术学习资料在网上还是很难找到的。

而据官方数据,85%安卓开发者不了解类加载流程,没有掌握动态代理底层原理的更是高达96%!这些不懂的话,何谈掌握插件化技术?

要想完全明白插件化,需要我们了解Android系统的底层实现,主要解决以下3个问题:

1、插件中代码的加载和与主工程的互相调用;

2、插件中资源的加载和与主工程的互相访问;

3、四大组件生命周期的管理;