一.到底什么是插件化开发
插件化开发是将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk,最终打包的时候将宿主apk和插件apk分开或者联合打包。
为什么要将一定要使用插件化开发呢?
- 宿主和插件分开编译。
- 并发开发。
- 动态更新插件。
- 按需下载模块。
- 方法数或变量数爆棚。
那应该怎么去拆分插件呢?如图:
二.插件化开发的实现原理
插件化开发中要解决的问题:
- 如何在主APP模块中去加载插件APK?
- 如何在主模块中跳转到插件APK里面的Activity中去?
- 插件APK中的Actiivity怎样能像一个正常的Activity一样?
- 插件APK中的Activity的上下文以及资源这块如何处理?
…
问题一的解决方式:
Android ClassLoader,用类加载机制去加载插件APK,这样就可以加载到它里面的类。如图: