我刚刚在eclipse中使用了新的ProGuard工具来混淆我的应用程序.我使用dex2Jar和JD-GUI反编译它来检查发生了什么.
我注意到R类中的所有内容都已转换为随机数,如下所示.
new SimpleCursorAdapter(localActivity, 2130903058, localCursor, arrayOfString, arrayOfInt);
Run Code Online (Sandbox Code Playgroud)
2130903058是一个布局文件.字符串阵列得到相同的处理.
反编译代码中没有R类,它在哪里消失了?原始字符串的引用在哪里?
所有引用都是整数.如果你看一下R.string,你会注意到所有成员都是int.这是因为它们是指向实际字符串的指针.例如,android.R.string.cancel始终17039360是指向字符串的Cancel.ProGuard所做的是它将这些引用替换为它们所代表的实际数字,因此如果您使用android.R.string.cancel,它将替换它17039360.
编辑:没有R类,因为它不再需要(所有对它的引用都已被替换).
| 归档时间: |
|
| 查看次数: |
879 次 |
| 最近记录: |