DL框架全称是dynamic-load-apk,github的项目地址为:https://github.com/singwhatiwanna/dynamic-load-apk,项目发起者是百度的高级安卓工程师任玉刚,Android圈子混的人对任玉刚的名字很大可能听过,他写的书《Android开发艺术探索》相信很多同行也读过,而本人第一次接触到DL框架,也是因为这本书的机缘。


首先,先看看DL的简单的用法。学习一种技术之前,能首先一睹这种技术的风采,对于后面的学习会更有帮助。然后我们再往深处想往深处钻会更有方向,不然最后的结局很容易就是不见树木,不见森林了;附上一篇完整的简单的使用的教程,大家可以做到知晓。Android 插件化(一)] DynamicLoadApk的用法();


接着,在知道DL怎么用和明白大概是怎么回事之后,再附上作者本人对于DL框架的解构图,方便大家对此框架能有一个宏观的架构和全面的认识(转载地址());

 

android插件化loadLibrary Android插件化框架有哪些_架构

然后,Read the fucking source code;先附上一张源码的类图;至于具体的对于各个类的解读,在此偷个懒,也是给大家介绍一篇更好的解读文章:DynamicLoadApk 源码解析(http://a.codekk.com/detail/Android/FFish/DynamicLoadApk%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90),阅读源码的时候,可以跟着这篇文章的节奏,必有事半功倍之效;

android插件化loadLibrary Android插件化框架有哪些_Android_02

 


阅读源码是一件事苦涩的事情,或者说对于大部分人来说是的,但是阅读完并充分理解之后,必然也有一种技术或者思想洗礼的喜悦感;经过这个过程,我们不仅学会了这个项目所采用的思想,所讲解的相关技术或者说对于相关问题的解决思路,更重要的是,我们可以以此为一个灵感的引子,继续做更深的思考,或者基于项目做更多的扩展,因为借鉴其思路,对于我们新的思考和尝试必然也会得到源源不断的灵感吧;比如张涛(江湖名号:kymjs,创办的开源实验室项目地址:https://www.kymjs.com/),他在阅读了DL的源码之后,在DL的基础上加入了 Service 的动态加载和Activity的 launchmode 以及插件页面间的数据传递,然后创办了自己的插件化框架CJFrameForAndroid(github地址:https://github.com/kymjs/CJFrameForAndroid);另外,在掌握了一项技术之后,我们也应该对此项技术有一个更全面和更宏观的认识,这时候我们可以了解哈该技术的前世今生未来,国内国外的使用情况等,因此推荐大家阅读下面的两篇文章:

Android插件化:从入门到放弃:

Android 插件化的 过去 现在 未来:https://www.kymjs.com/code/2016/05/04/01/

android插件化介绍:https://taiwandao.github.io/2016/08/19/android%E6%8F%92%E4%BB%B6%E5%8C%96%E4%BB%8B%E7%BB%8D/

为什么要用插件化:https://toutiao.io/posts/308186/app_preview

 

最后,希望大家在阅读了DL源码并对DL的实现有了理解,并且对插件化有了一个自己的认识和思考之后,也能够对他人侃侃而谈!