动态加载介绍

在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”,动态加载框架的项目,专注于“插件化”和“宿主与插件之间的通讯”;

Android插件化开发之动态加载技术系列索引相关推荐

  1. Android插件化开发之动态加载技术简单易懂的介绍方式

    转载地方:https://segmentfault.com/a/1190000004062866 基本信息 Author:kaedea GitHub:android-dynamical-loading ...

  2. Android插件化开发之动态加载本地皮肤包进行换肤

    Android插件化开发之动态加载本地皮肤包进行换肤 前言: 本文主要讲解如何用开源换肤框架 android-skin-loader-lib来实现加载本地皮肤包文件进行换肤,具体可自行参考框架原理进行 ...

  3. Android插件化开发之动态加载三个关键问题详解

    本文摘选自任玉刚著<Android开发艺术探索>,介绍了Android插件化技术的原理和三个关键问题,并给出了作者自己发起的开源插件化框架. 动态加载技术(也叫插件化技术)在技术驱动型的公 ...

  4. Android插件化开发之动态加载的类型

    https://segmentfault.com/a/1190000005113493 基本信息 Author:kaedea GitHub:android-dynamical-loading 现在网络 ...

  5. Android插件化开发之动态加载基础之ClassLoader工作机制

    类加载器ClassLoader 早期使用过Eclipse等Java编写的软件的同学可能比较熟悉,Eclipse可以加载许多第三方的插件(或者叫扩展),这就是动态加载.这些插件大多是一些Jar包,而使用 ...

  6. Android 插件化开发——宿主APP加载APK插件

    本篇博客说一下我们的宿主APP怎样加载别的APK文件. 首先需要说一些知识点,我们的Java文件要想在Android环境运行,需要将.java文件通过转为class文件,然后为了能在DVM上面运行,再 ...

  7. Android插件化开发实现动态换肤

    今晚实在不想coding,于是想着整理点知识点,那么简单整理了下插件化开发实现动态更换皮肤.插件化开发大家应该不陌生或多或少用过或听过,插件化开发在项目业务拓展.模块化等方面有不小优势,当然实现一个完 ...

  8. Android动态加载技术三个关键问题详解

    本文摘选自任玉刚著<Android开发艺术探索>,介绍了Android插件化技术的原理和三个关键问题,并给出了作者自己发起的开源插件化框架. 动态加载技术(也叫插件化技术)在技术驱动型的公 ...

  9. Android动态加载技术

    基本信息 Author:kaedea GitHub:android-dynamical-loading 我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装AP ...

最新文章

  1. Lync server 2013 监控角色的安装
  2. spring+springmvc+ibatis整合小结
  3. ToDesk远程控制软件
  4. 移动开发的分辨率问题
  5. ros发布节点信息python_vscode开发ROS1(13)-python实现话题通信(msg)
  6. [编程入门]猴子吃桃的问题
  7. Apache 及 Nginx 配置
  8. Java多线程_JUC包下的阻塞队列
  9. Qt Creator 4.9 发布
  10. BZOJ4407 :于神之怒加强版
  11. 基于javaweb+jsp的员工绩效考核管理系统(带报告文档)
  12. 所以,网络工程师能从事什么工作?
  13. OSG使用OpenGL(以及glad库)绘制自定义图形
  14. Sourcetree 使用
  15. 【Stanford CNN课程笔记】4. 反向传播算法
  16. 易语言EIP永久注入
  17. 做国外LEAD需要一些邮箱怎么办
  18. 在职计算机技术考研英语自我介绍,2019考研复试英语自我介绍范文--在职考研
  19. 引导盘的引导文件在哪
  20. 缘“熟”而起——《乡土中国》读书笔记3600字

热门文章

  1. 成长 | 《大厂晋升指南》学习总结(中)
  2. ShardingCore 如何呈现“完美”分表
  3. 使用 Bridge to Kubernetes 简化云端开发
  4. C# WPF:把文件给我拖进来!!!
  5. 在Asp.Net Core中使用ModelConvention实现全局过滤器隔离
  6. 敏捷回顾会议的套路与实践分享
  7. 【18】ASP.NET Core MVC 中的 Model介绍
  8. 微软云Azure训练营 | 八城联动,全球盛会
  9. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三
  10. .NET/C# 获取一个正在运行的进程的命令行参数