Android Dynamical Loading

大家新年好,最近花了点时间,慢慢把这个系列的内容稍微调整了下。
Last Edit: 2016-2-10

基本信息

  • Author:Kaedea

  • GitHub:android-dynamical-loading

动态加载介绍

在Android开发中采用动态加载技术,可以达到不安装新的APK就升级APP功能的目的,可以用来到达快速发版的目的,也可以用来修复一些紧急BUG。

现在使用得比较广泛的动态加载技术的核心一般都是使用 ClassLoader ,后者能够加载程序外部的类(已编译好的),从而达到升级代码逻辑的目的。虽然动态加载的核心原理比较简单,但是根据功能的复杂程度,实际在Android项目中使用的时候还要涉及许多其他方面的知识,这里分为几个篇幅分别进行介绍。

简单易懂的介绍

内容:

  1. 动态加载技术在Android中的使用背景;

  2. Android的动态的加载大致可以分为“加载SO库”和“加载DEX/JAR/APK”两种;

  3. 动态加载的基础是类加载器ClassLoader;

  4. 使用动态加载的三种模式;

  5. 采用动态加载的作用与代价;

  6. 除了ClassLoader之外的动态修改代码的技术(HotFix);

  7. 一些动态加载的开源项目;

地址:Android动态加载技术 简单易懂的介绍

类加载器ClassLoader的工作机制

内容:

  1. 类加载器ClassLoader的创建过程和加载类的过程;

  2. ClassLoader的双亲代理模式;

  3. DexClassLoader和PathClassLoader之间的区别;

  4. 使用ClassLoader加载外部类需要注意的一些问题;

  5. 自定义ClassLoader(Hack开发)

文章地址:Android动态加载基础 ClassLoader的工作机制

加载SD卡的SO库

内容:

  1. 如何编译和使用SO库;

  2. 分析Android中加载SO库相关的源码;

  3. 如何加载SD卡中的SO库(也是动态加载APK需要解决的问题);

地址:Android动态加载补充 加载SD卡的SO库

简单的动态加载模式

内容:

  1. 如何创建我们需要的dex文件;

  2. 如何加载dex文件里面的类;

  3. 动态加载dex文件在ART虚拟机的兼容性问题;

地址:Android动态加载入门 简单加载模式

代理Activity的模式

内容:

  1. 如何启动插件APK中没有注册的Activity

  2. 代理Activity模式开源项目“dynamic-load-apk”

地址:Android动态加载进阶 代理Activity模式

动态创建Activity的模式

内容:

  1. 如何在运行时动态创建一个Activity;

  2. 自定义ClassLoader并偷梁换柱替换想要加载的类;

  3. 动态创建Activity模式开源项目“android-pluginmgr”

  4. 代理模式与动态创建类模式的区别;

地址:Android动态加载黑科技 动态创建Activity模式

还未发布的内容

  1. 使用“环境注入”的模式;

  2. 使用动态加载技术的情形;

  3. 使用动态加载方式项目的项目结构调整和开发调试方式;

  4. 开源项目“Android-Frontia”,动态加载框架的项目,专注于“插件化”和“宿主与插件之间的通讯”;

更多相关文章

  1. 掌阅Android(安卓)App插件补丁实践(ZeusPlugin)
  2. android之设计模式六大原则
  3. Android开发资料收集(转)
  4. Android(安卓)工厂模式
  5. 通过GridView仿微信动态添加本地图片
  6. Android中的task作用和Activity启动模式以及各种启动Flag的含义
  7. linux chrome运行android应用方法
  8. Android(安卓)MVP设计模式登录具体实现Material Design风格
  9. Android(安卓)WebView加载页面的输入框被软键盘遮挡的问题

随机推荐

  1. Android百分比布局:PercentRelativeLayout
  2. Android(安卓)教你如何通过 LocationMana
  3. Activity中的四种启动模式
  4. Android(安卓)ApiDemos 学习——时间日期
  5. android UI进阶之弹窗的使用(2)--实现通讯
  6. The method setOnClickListener(View.OnC
  7. 使用gdb远程调试android native程序
  8. android sdk+eclipse+adt 配置与开发
  9. Android打开系统设置界面
  10. android2.3 api demo 学习系列(4)--App/Act