【问题标题】:What are the key differences between the res folder and the arsc file in a built apk?构建的 apk 中的 res 文件夹和 arsc 文件之间的主要区别是什么?
【发布时间】:2022-11-17 17:28:22
【问题描述】:

当我构建一个 apk 时,例如构建一个空白的 Android Studio - Phone and Tablet/Basic Activity 项目,并以 zip 格式打开所述 apk,我在那里看到了一些东西。我明白什么是什么,我一直认为 aapt 创建了 arsc 文件,其中包含转换为更好优化的二进制格式的资源,这似乎仍然有效......但是我不完全理解 res 中的内容apk中的文件夹。

我的直觉告诉我,只有可公开访问的资源才会保留在 res 文件夹中,任何仅“内部”使用的资源都会进入 arsc 文件。 (例如,我希望 exported="true" 活动的布局进入 res 文件夹)但是我还没有真正找到对此的任何确认。

有人可以告诉我哪个资源准确地放在哪里,它们是否可能重复?

【问题讨论】:

    标签: android


    【解决方案1】:

    aapt做三件事资源目录。

    基于整个目录,它生成Java源文件,其中包含每个资源项到单个 ID 的映射。应用程序将在运行时使用这些资源 ID 来访问资源。Java包含在 Java/Kotlin 编译过程中。

    资源/价值子目录——包含字符串、样式、颜色等的值(参见Android Development Documentation)——被编译到资源.arsc文件。这基本上是此类值的表,可以在运行时更有效地访问它们。

    最后资源目录——但没有资源/价值,其内容现在可以在资源.arsc,因此没有重复——按原样打包到 APK 文件中。

    对于类似的问题,我可以推荐Mobile Development Site of M. Zent,其中基于对 APK 构建过程的理解,建立了一个轻量级工具链,无需成熟的 IDE 即可在移动设备上构建 APK。

    【讨论】:

      猜你喜欢
      • 2015-04-06
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 2015-08-22
      相关资源
      最近更新 更多