我们知道,Android 对于多人协作的方式,是使用 AAR 作为 Android 的库来给 App 引入参与编译的。Android 之于 Java 应用,在编译上最大的不同有两个,一个是 res 下面的资源,一个是 class 文件需要转成 dex 文件才能被加载和运行。
那么,在 AAR 的使用过程中,我们的 Gradle 到底对 AAR 做了什么动作呢?其实这部分内容,在以下的文章提过一些,不过我们今天想再仔细讲讲资源。
Gradle Builds Everything —— 处理依赖(aar)
我们来看看 AAR 中存在的东西

如果你解压看 classes.jar,可以看到里面就是 class 文件。

然后 res 下面是资源文件,这些资源文件都还没经过压缩

然后是一个 R.txt

本文探讨了Android中AAR库如何与APK合并,重点在于R文件的生成和资源处理。在AAR中,R.txt记录资源ID,而实际的R类在APK构建过程中根据所有依赖的aar和app资源重新生成,确保ID的全局唯一性。Gradle在合并过程中,为每个aar及其包名生成单独的R类,并在app的R类中汇总所有资源,实现了资源的正确加载。
最低0.47元/天 解锁文章
759

被折叠的 条评论
为什么被折叠?



