在proguard Obfuscation之后,Android Strings会变成随机数

时间:2010-12-13 15:37:22

标签: android proguard

我刚刚在eclipse中使用了新的ProGuard工具来混淆我的应用程序。我使用dex2JarJD-GUI对其进行了反编译,以检查发生了什么。

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

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

2130903058是一个布局文件。字符串阵列得到相同的处理。

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

1 个答案:

答案 0 :(得分:5)

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

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