解码apk文件时如何获取R.java文件?

时间:2012-10-30 05:42:14

标签: android apk

我只解码了一个apk文件,但问题是我无法获取R.java文件。

R.java文件是在应用程序中自动创建的,但是当apk文件被解码时,它会给出在R.java而不是@ string / abc或@ color / white中创建的十六进制值等....

当我们在应用程序中创建字符串或颜色或任何其他资源时,android平台会在R.java中为该字符串或颜色分配一些十六进制值,因此当我们解码apk文件时,它会给出该十六进制值,所以我们如何确定该字符串或颜色的特定十六进制值?

3 个答案:

答案 0 :(得分:8)

您无法直接提取r.java文件,但r.java文件的内容可以使用' aapt'提取。工具。以下命令列出r.java文件中存在的所有资源及其各自的ID:

aapt d resources name_of_apk

答案 1 :(得分:3)

R类由嵌套类组成,每个嵌套类完全由编译时常量组成。如果.apk文件被ProGuard混淆了(对于几乎所有发布的应用程序都是如此),所有这些都将被优化掉。没有办法恢复它。

答案 2 :(得分:0)

下载android-apktool,在同一目录中解压缩并运行

apktool d app.apk