2012-10-30 31 views
2

我只是解碼一個apk文件,但問題是我不能得到R.java文件。如何在解碼apk文件時獲取R.java文件?

R.java文件是在應用程序中自動創建的,但是當apk文件被解碼時,它會給出在R.java中創建的十六進制值,而不是@ string/abc或@ color/white等。 ..

當我們在應用程序中創建字符串或顏色或任何其他資源時,android平臺將一些十六進制值賦給R.java中的字符串或顏色,所以當我們解碼apk文件時,它會給出該十六進制值,那麼我們如何才能決定該字符串或顏色的特定十六進制值?

是任何人知道,然後回覆我.....

感謝......

+0

[讀取由.apk string.xml](http://stackoverflow.com/a/11591098/726863) –

回答

0

下載android-apktool,提取所有在同一個目錄,然後運行apktool d app.apk

3

R類由嵌套類組成,每個類都由編譯時常量組成。如果.apk文件被ProGuard模糊處理(幾乎所有已發佈的應用都是如此),所有這些都會被優化掉。沒有辦法恢復它。

6

您不能直接提取r.java文件,但可以使用'aapt'工具提取r.java文件的內容。以下命令列出的所有資源和它們各自的ID的存在於r.java文件:

aapt d resources name_of_apk