Android动态加载相关知识点总结
来源:互联网 发布:vb if else语句 编辑:程序博客网 时间:2024/05/23 00:04
最近在学习android动态加载的相关知识,其中看到一些比较不错的博客,这里分享一下哈。
在Android开发中采用动态加载技术,可以达到不安装新的APK就升级APP功能的目的,可以用来到达快速发版的目的,也可以用来修复一些紧急BUG。
现在使用得比较广泛的动态加载技术的核心一般都是使用 ClassLoader ,后者能够加载程序外部的类(已编译好的),从而达到升级代码逻辑的目的。虽然动态加载的核心原理比较简单,但是根据功能的复杂程度,实际在Android项目中使用的时候还要涉及许多其他方面的知识,这里分为几个篇幅分别进行介绍。
简单易懂的介绍
内容:
动态加载技术在Android中的使用背景;
Android的动态的加载大致可以分为“加载SO库”和“加载DEX/JAR/APK”两种;
动态加载的基础是类加载器ClassLoader;
使用动态加载的三种模式;
采用动态加载的作用与代价;
除了ClassLoader之外的动态修改代码的技术(HotFix);
一些动态加载的开源项目;
地址:Android动态加载技术 简单易懂的介绍
类加载器ClassLoader的工作机制
内容:
类加载器ClassLoader的创建过程和加载类的过程;
ClassLoader的双亲代理模式;
DexClassLoader和PathClassLoader之间的区别;
使用ClassLoader加载外部类需要注意的一些问题;
自定义ClassLoader(Hack开发)
文章地址:Android动态加载基础 ClassLoader的工作机制
加载SD卡的SO库
内容:
如何编译和使用SO库;
分析Android中加载SO库相关的源码;
如何加载SD卡中的SO库(也是动态加载APK需要解决的问题);
地址:Android动态加载补充 加载SD卡的SO库
简单的动态加载模式
内容:
如何创建我们需要的dex文件;
如何加载dex文件里面的类;
动态加载dex文件在ART虚拟机的兼容性问题;
地址:Android动态加载入门 简单加载模式
代理Activity的模式
内容:
如何启动插件APK中没有注册的Activity
代理Activity模式开源项目“dynamic-load-apk”
地址:Android动态加载进阶 代理Activity模式
动态创建Activity的模式
内容:
如何在运行时动态创建一个Activity;
自定义ClassLoader并偷梁换柱替换想要加载的类;
动态创建Activity模式开源项目“android-pluginmgr”
代理模式与动态创建类模式的区别;
地址:Android动态加载黑科技 动态创建Activity模式
还未发布的内容
使用“环境注入”的模式;
使用动态加载技术的情形;
使用动态加载方式项目的项目结构调整和开发调试方式;
开源项目“Android-Frontia”,动态加载框架的项目,专注于“插件化”和“宿主与插件之间的通讯”;
Frontia
代理Activity模式的动态加载框架,基于dynamic-load-apk项目开发,主要注重于“插件管理”和“插件与主项目通讯”的功能,目前正在开发中。
动态加载开源项目
ACDD
DL dynamic-load-apk
android-pluginmgr
Direct-Load-apk
360 DroidPlugin
携程网 DynamicAPK
女娲 Nuwa
Android-Plugin-Framework
- Android动态加载相关知识点总结
- Android硬件加速相关知识点总结
- Android知识点之动态布局加载
- 第九、十一章 动态规划、图论相关知识点总结
- Android动态加载相关文章记录
- UIImage相关知识点总结
- String相关知识点总结
- 哈夫曼树相关知识点总结
- Hibernate相关知识点总结
- HTTP相关知识点总结
- Java相关知识点总结
- 数据库相关知识点总结
- 数据库相关知识点总结
- java--类加载相关知识点
- Android动态加载oat文件总结一
- Android动态加载oat文件总结一
- [造轮子]Android动态加载框架总结
- Android——键盘/输入法相关知识点总结
- 103. Binary Tree Zigzag Level Order Traversal
- 小型企业组织建设第四阶段
- oracle数据库包package小例子
- 按位与、或、异或等运算方法
- ES6学习——新加API:Object
- Android动态加载相关知识点总结
- jQuery操作checkbox详解
- 配置windows update失败还原更改_解决方案
- struts标签详解
- Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory
- 12.Swift 中的关键字详解
- 插入排序
- People CMM和抗日义勇军
- linux查看Tomcat连接数、统计某字段出现的次数