app打包过程
首先我们来了解一下插件化实现的原理,由于插件化原理涵盖内容太多这里只是介绍一下核心内容;我们了解一下app打包过程。请看下图:
上面是android打包形成apk的一个过程,可以发现android开发主要的部分是整合编译代码、整合编译资源,然后就是安全签名保证apk完整性。我们再看一张图:
#####上面是一个apk解压之后的文件,可以看出,里面几个比较重要的部分:
1、dex文件java编译之后的代码文件。
2、app中使用资源文件。
3、so文件动态链接库。
而插件化动态加载部署这些内容。加载上面的内容就产生几个技术问题:dex文件加载、资源文件加载、so文件加载部署、activity、service等android组件的动态注册。
apk dex文件加载
首先是dex文件加载:
public static DexClassLoader readDexFile(Context context, String apkPath, String outDexPa