当我构建一个apk时,例如构建一个空白的Android Studio - Phone和Tablet/Basic Activity项目,并将said apk作为zip打开时,我在那里看到了几个东西。我明白什么是什么,我一直认为aapt创建了arsc文件,其中包含转换为更好优化的二进制格式的资源,这似乎仍然有效...然而,我不完全明白,什么进入了APK内的res文件夹.
我的直觉告诉我,只有可公开访问的资源才保留在res文件夹中,而仅“内部”使用的任何资源都将进入arsc文件。(例如,我希望exported=“true”Activity的布局进入res文件夹)然而,我还没有真正找到对此的任何确认。
有人能告诉我哪些资源确切地放在哪里吗?它们是否可能重复?
1条答案
按热度按时间ekqde3dh1#
它基于整个目录生成 R.java 源文件,该文件包含每个资源项到单个ID的Map。应用程序在运行时将使用这些资源ID访问资源。R.java 包含在Java/Kotlin编译过程中。
最后,res 目录--但没有 res/value,其内容现在可以在 resources.arsc 中找到,因此没有重复--被原样打包到APK文件中。
有关APK结构和构建流程的更多信息,请访问Michael Zent的Mobile Development Site。