1. 功能介绍1.1 简介DynamicLoadApk 是一个开源的 Android 插件化框架。插件化的优点包括:(1) 模块解耦,(2) 动态升级,(3) 高效并行开发(编译速度更快) (4) 按需加载,内存占用更低等等。DynamicLoadApk 提供了 3 种开发方式, ...
1. 功能介绍
1.1 简介
DynamicLoadApk 是一个开源的 Android 插件化框架。
插件化的优点包括:(1) 模块解耦,(2) 动态升级,(3) 高效并行开发(编译速度更快) (4) 按需加载,内存占用更低等等。
DynamicLoadApk 提供了 3 种开发方式,让开发者在无需理解其工作原理的情况下快速的集成插件化功能。
- 宿主程序与插件完全独立
- 宿主程序开放部分接口供插件与之通信
- 宿主程序耦合插件的部分业务逻辑
三种开发模式都可以在 demo 中看到。
1.2 核心概念
(1) 宿主:主 App,可以加载插件,也称 Host。上面是 DynamicLoadApk 的总体设计图,DynamicLoadApk 主要分为四大模块:上面是调用插件 Activity 的流程图,其他组件调用流程类似。以上是 DynamicLoadApk 主要类的关系图,跟总体设计中介绍的一样大致分为三部分。loadApk 函数调用 preparePluginEnv 函数加载插件,图中虚线框为 preparePluginEnv 的流程图。
(4) preparePluginEnv(PackageInfo packageInfo, String dexPath)其中第一步设置 intent 的 ClassLoader
是用于 unparcel Parcelable 数据的,可见介绍:android.os.BadParcelableException。
(3) protected void launchTargetActivity()
原标题:Android 开源项目源码解析之DynamicLoadApk 源码解析
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。