刚刚终于写完了插件开发的最后一篇文章,下面就来总结一下,关于Android中插件篇从去年的11月份就开始规划了,主要从三个方面去解读Android中插件开发原理。说白了,插件开发的原理就是:动态加载技术。但是我们在开发插件的过程中可能会遇到很多问题,所以这里就分为三篇文章进行解读的,而且也是循序渐进,解决了插件开发过程中可能会遇到的问题,不过这三篇的基础还是动态加载技术。

第一、插件开发基础篇:动态加载技术解读

http://blog.csdn.net/jiangwei0910410003/article/details/17679823

这篇文章主要介绍了Android中的DexClassLoader类的功能,以及我们如何使用动态加载技术,为何要使用动态加载技术等问题的解释,最开始的时候,我们就是使用这个类进行功能模块的剥离,让一些模块放到指定的jar/dex/apk中,然后去动态加载,这样做的好处是,减小包的大小,功能会更加灵活。

技术点:DexClassLoader的源码解读,使用

第二、插件开发开篇:类加载器分析

http://blog.csdn.net/jiangwei0910410003/article/details/41384667

这篇文章主要介绍了Android中主要的两个类加载器:PathClassLoader和DexClassLoader,他们的区别,联系,用法等问题,以及我们在制作插件的过程中会遇到哪些常见的问题。这篇文章也是后续两篇文章的基础,因为如果不了解这两个类的话,我们将无法进行后续的操作。

技术点:PathClassLoader类和DexClassLoader类的源码解读,他们之间的却别和联系

第三、插件开发中篇:资源加载问题(换肤原理解析)

http://blog.csdn.net/jiangwei0910410003/article/details/47679843

这篇文章主要通过现在一些应用自带的换肤技术的解读来看看,在开发插件的过程中如何解决一些资源加载上的问题,这个问题为何要单独拿出来解释,就是因为他涉及的知识很多,也是后面一篇文章的基础,我们在需要加载插件中的资源文件的时候。改如何处理。这里都做了详细的解释。同时有了这个技术之后,我们就可以实现应用的换肤开发了。

技术点:动态加载资源,AssetManager类的源码解读

第四、插件开发终极篇:动态加载Activity(免安装运行程序)

http://blog.csdn.net/jiangwei0910410003/article/details/48104455

这篇文章主要是讲解了如何加载插件中的Activity。从而实现免安装运行程序,同时这篇文章也是对前三篇文章知识的综合使用。下载很多应用都会使用到插件技术,因为包的大小和一些功能的优先级来决定哪些模块可以制作成插件。这篇文章还介绍了两种方式去动态加载Activity.这两种方式各有各的好处和坏处。

技术点:两种方式加载Activity,LoadedApk类和ActivityThread类的源码解读

总结

本身Android中的动态加载技术就很吃香,我刚刚接触到这个技术的时候,正好是我大学毕业那年2013年。当时我们需要做聚合广告SDK,所以需要对各家广告做处理,使用动态加载的技术来加载各家广告的SDK。第一次接触到动态加载的时候,还是很兴奋的,因为感觉。代码还可以这么写。功能的剥离那么好。所以很是痴迷这个技术。后来只是因为个人兴趣,就开始深入研究一下插件开发的技术,当然本质还是动态加载,只是需要解决一个特定的问题。现在也有很多大牛写了一些框架,个人感觉最好的还是这个哥们写的框架:

https://github.com/Qihoo360/DroidPlugin

哈哈,看名字就知道是360的,哎,不得不佩服国内技术研究啥的360公司可以算是比较牛逼的。

当然我相信,随着时间的推移,肯定还会有更多的牛人研究这个技术,开发出更加完善的框架,我就很期待呀。

更多内容:点击这里

关注微信公众号,最新Android技术实时推送

Android中插件开发篇总结和概述的更多相关文章

  1. Android中插件开发篇之----动态加载Activity(免安装运行程序)

    一.前言 又到周末了,时间过的很快,今天我们来看一下Android中插件开发篇的最后一篇文章的内容:动态加载Activity(免安装运行程序),在上一篇文章中说道了,如何动态加载资源(应用换肤原理解析 ...

  2. Android中插件开发篇之----应用换肤原理解析

    一.前言 今天又到周末了,感觉时间过的很快呀.又要写blog了.那么今天就来看看应用的换肤原理解析.在之前的一篇博客中我说道了Android中的插件开发篇的基础:类加载器的相关知识.没看过的同学可以转 ...

  3. Android中插件开发篇之----类加载器

    关于插件,已经在各大平台上出现过很多,eclipse插件.chrome插件.3dmax插件,所有这些插件大概都为了在一个主程序中实现比较通用的功能,把业务相关或者让可以让用户自定义扩展的功能不附加在主 ...

  4. [转]Android中Xposed框架篇—利用Xposed框架实现拦截系统方法

    一.前言 关于Xposed框架相信大家应该不陌生了,他是Android中Hook技术的一个著名的框架,还有一个框架是CydiaSubstrate,但是这个框架是收费的,而且个人觉得不怎么好用,而Xpo ...

  5. [转载] Android中Xposed框架篇---利用Xposed框架实现拦截系统方法

    本文转载自: http://www.wjdiankong.cn/android%E4%B8%ADxposed%E6%A1%86%E6%9E%B6%E7%AF%87-%E5%88%A9%E7%94%A8 ...

  6. 《安卓网络编程》之第六篇 Android中的WIFI和蓝牙

    关于WIFI就不多介绍啦,直接来个段子吧. 问:“WiFi对人体有伤害么?” 答:“不清楚,反正没有WiFi我就浑身不舒服. 比较重要的一点就是WifiManager  wm=(WifiManager ...

  7. 【朝花夕拾】Android自定义View篇之(六)Android事件分发机制(中)从源码分析事件分发逻辑及经常遇到的一些“诡异”现象

    前言 转载请注明,转自[https://www.cnblogs.com/andy-songwei/p/11039252.html]谢谢! 在上一篇文章[[朝花夕拾]Android自定义View篇之(五 ...

  8. Android中Service概述

    Service是Android中一种非常重要的组件,一般来说有两种用途:用Service执行长期执行的操作,而且与用户没有UI界面的交互:某个应用程序的Service能够被其它应用程序的组件调用以便提 ...

  9. Android Studio 插件开发详解三:翻译插件实战

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78113868 本文出自[赵彦军的博客] 一:概述 如果不了解插件开发基础的同学可以 ...

随机推荐

  1. .NETFramework:System.Net.WebClient.cs

    ylbtech-.NETFramework:System.Net.WebClient.cs 提供用于将数据发送到和接收来自通过 URI 确认的资源数据的常用方法 1.返回顶部 1. #region 程 ...

  2. leetcode 118. 杨辉三角(python)

    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5输出:[ [1], [1,1], [1,2,1], [1, ...

  3. 微软手写识别模块sdk及delphi接口例子

    http://download.csdn.net/download/coolstar1204/2008061 微软手写识别模块sdk及delphi接口例子

  4. CentOS7 - 安装 VirtualBox

    参考资料 最新的可用安装包可以从这里下载 VirtualBox 是 x86 硬件虚拟化产品,功能上与 VMware Server.KVM.及 Xen 类似,但是 VirtualBox 不修改 Linu ...

  5. nacos 报错is not in serverlist

    描述 nacos 没有在节点列表里面 查看日志 cd /opt/nacos/ tailf /logs/naming-raft.log <!--报错--> 2019-08-16 17:48: ...

  6. 常用jQuery技巧总结

    1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...

  7. 【洛谷p2089】 烤鸡

    烤鸡[题目链接] 感觉我超废 关于算法:有很多很多算法吧,但自我感觉最重要的是递归的算法: SOLUTION: 首先忍不住要吐槽这个神仙数据: 嗯???定睛一看,它这数据范围莫不是白瞎了,因为每种配料 ...

  8. 洛谷 P1440 求m区间内的最小值(单调队列)

    题目链接 https://www.luogu.org/problemnew/show/P1440 显然是一道单调队列题目…… 解题思路 对于单调队列不明白的请看这一篇博客:https://www.cn ...

  9. 1233: [Usaco2009Open]干草堆tower

    传送门 感觉正着做不太好搞,考虑倒过来搞 容易想到贪心,每一层都贪心地选最小的宽度,然后发现 $WA$ 了... 因为一开始多选一点有时可以让下一层宽度更小 然后有一个神奇的结论,最高的方案一定有一种 ...

  10. 关于URL和URI的最简单理解

    以下面网址为例: http://www.sina.com/news/1.html 那么,http://www.sina.com/news/1.html就表示URL,用于标识互联网中的某一资源:/new ...