别跟我说你对这个技术还不熟!
插件化技术是什么?
打开你的美团,你平时一般只点外卖对吧?但是 “美食”、“电影”、“外卖”、“打车” 等,每个入口其实都是一个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、四大组件生命周期的管理;