我只是在eclipse中使用了新的ProGuard工具来混淆我的应用程序。我使用dex2JarJD-GUI反编译它以检查发生了什么。

我注意到R类的所有内容都已转换为如下所示的随机数。

new SimpleCursorAdapter(localActivity, 2130903058, localCursor, arrayOfString, arrayOfInt);


2130903058是布局文件。字符串数组得到相同的处理。

反编译的代码中没有R类,它去哪了?原始字符串的引用在哪里?

最佳答案

所有引用都是整数。如果查看R.string,您会注意到所有成员都是int。这是因为它们是实际字符串的指针。例如,android.R.string.cancel始终为17039360,它指向字符串Cancel。 ProGuard所做的是将这些引用替换为它们代表的实际数字,因此,如果使用android.R.string.cancel,它将用17039360替换。

编辑:没有R类,因为不再需要它(所有对它的引用已被替换)。

07-25 22:25
查看更多