ANROID动态加载技术系列索引
来源:互联网 发布:p2p运营模式数据图表 编辑:程序博客网 时间:2024/06/18 05:12
ANROID动态加载技术 系列索引
基本信息
- Author:Kaedea
- GitHub:android-dynamical-loading
动态加载介绍
说到动态加载,我们经常使用“插件化”、“热修复”、“热部署”等词汇,所以大家应该不会陌生。本系列的文章的主要目的是分析一下整个动态加载的过程,重点分析其中的关键技术点,并且开发一个比较灵活的动态加载框架,用于满足不同程度的业务需求。
在Android开发中采用动态加载技术,可以达到不安装新的APK就升级APP功能的目的,可以用来到达快速发版的目的,也可以用来修复一些紧急BUG。
现在使用得比较广泛的动态加载技术的核心一般都是使用 ClassLoader ,后者能够加载程序外部的类(已编译好的),从而达到升级代码逻辑的目的。虽然动态加载的核心原理比较简单,但是根据功能的复杂程度,实际在Android项目中使用的时候还要涉及许多其他方面的知识,这里分为几个篇幅分别进行介绍。
1. 简单易懂的介绍
内容:
- 动态加载技术在Android中的使用背景;
- Android的动态的加载大致可以分为“加载SO库”和“加载DEX/JAR/APK”两种;
- 动态加载的基础是类加载器ClassLoader;
- 使用动态加载的三种模式;
- 采用动态加载的作用与代价;
- 除了ClassLoader之外的动态修改代码的技术(HotFix);
- 一些动态加载的开源项目;
地址:简单易懂的介绍
2. 动态加载的分类
内容:介绍一下动态加载的类型,理清一下动态加载、插件化、热部署、热修复等技术之间的关系。
地址:动态加载的分类
3. 类加载器ClassLoader的工作机制
内容:
- 类加载器ClassLoader的创建过程和加载类的过程;
- ClassLoader的双亲代理模式;
- DexClassLoader和PathClassLoader之间的区别;
- 使用ClassLoader加载外部类需要注意的一些问题;
- 自定义ClassLoader(Hack开发)
地址:ClassLoader的工作机制
4. 加载SD卡的SO库
内容:
- 如何编译和使用SO库;
- 分析Android中加载SO库相关的源码;
- 如何加载SD卡中的SO库(也是动态加载APK需要解决的问题);
地址:加载SD卡的SO库
5. 使用SO库时需要注意的一些问题
内容:介绍使用SO库开发时的一些坑,提供从网络下载并加载SO库的策略。
地址:加载SD卡的SO库
6. 简单的动态加载模式
内容:
- 如何创建我们需要的dex文件;
- 如何加载dex文件里面的类;
- 动态加载dex文件在ART虚拟机的兼容性问题;
地址:简单加载模式
7. 代理Activity的模式
内容:
- 如何启动插件APK中没有注册的Activity
- 代理Activity模式开源项目“dynamic-load-apk”
地址:代理Activity模式
8. 动态创建Activity的模式
内容:
- 如何在运行时动态创建一个Activity;
- 自定义ClassLoader并偷梁换柱替换想要加载的类;
- 动态创建Activity模式开源项目“android-pluginmgr”
- 代理模式与动态创建类模式的区别;
地址:动态创建Activity模式
还未发布的内容
- 使用“环境注入”的模式;
- 使用动态加载技术的情形;
- 使用动态加载方式项目的项目结构调整和开发调试方式;
- 开源项目“Android-Frontia”,动态加载框架的项目,特点是专注于“插件化”和“宿主与插件之间的通讯”、灵活的扩展和使用方式,并提供完整的插件更新、安装和管理策略;
0 0
- ANROID动态加载技术系列索引
- ANROID动态加载技术 系列索引
- 动态加载系列文章
- 模块动态加载技术
- android动态加载技术
- Android 动态加载技术
- android 动态加载技术
- 动态加载技术学习
- Android动态加载技术
- Indri 动态文档索引技术
- Android插件化系列第(二)篇---动态加载技术之应用换肤
- Android类动态加载技术
- ELF动态库加载技术
- Android动态加载代码技术
- Android类动态加载技术
- ELF动态库加载技术
- Android动态加载代码技术
- Android类动态加载技术
- Struts2自定义拦截器
- 堆与堆排序、二叉堆定义、对的插入与删除
- 四轴姿态解算的方法(转)
- leetcode #113 in cpp
- C# TextBox
- ANROID动态加载技术系列索引
- leetcode #114 in cpp
- ubuntu安装vim工具
- 30、JavaScript中简单拖拽DIV的实现
- 读取jar包中的xsd并对xml校验
- 使用IO流进行文件的拷贝
- android studio 能在真机上启动程序,不能在模拟器上启动(模拟器能启动,adb也能识别)
- 结构体字节对齐
- C与lua交互