1

I have decompiled an apk code by using apktool. The code which I got contains setContentView(2130903087); My question is how can I find the layout name from this line.

4

2 回答 2

1

Apktool 使用 smali 反汇编应用程序。您编写的代码行不是由 apktool 生成的。

让我们举一个示例应用程序并对其进行解码。( apktool d test.apk)。然后让我们看看我们知道正在使用的文件setContentView

const v0, 0x7f040037

invoke-virtual {p0, v0}, Lcom/android/deskclock/Screensaver;->setContentView(I)V

如你看到的。v0用布局的资源 id 的十六进制等效值填充。所以现在我们只需要grep那个ID。

res/values/public.xml:    <public type="layout" name="desk_clock_saver" id="0x7f040037" />

所以现在我们知道布局是desk_clock_saver. 所以我们可以窥探res/layout一下。

ibotpeaches@relic:~/test$ file res/layout/desk_clock_saver.xml
res/layout/desk_clock_saver.xml: XML document text

我们有它。

于 2015-12-04T19:28:32.577 回答
1

首先将此十进制数转换为十六进制。然后,在反编译 dex 文件后,您将在反编译代码中得到 R.java 文件。在搜索十六进制数时,您将获得布局文件。

于 2015-12-04T07:22:46.873 回答