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.
问问题
1190 次
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 回答