我正在尝试使用proguard
来模糊一个非常简单的“Hello World”应用程序的源代码,我正在使用Eclipse
IDE。
到目前为止我采取的两个步骤如下:
1. Removed comment in project.properties file to enable Proguard
2. Right clicked on project>Android tools>Export unsigned Application Project
然后我使用apktool查看提取的APK中的源代码。
我注意到Proguard并没有混淆应用程序中的源代码。它只是模糊了ActionBarActivity
超类和XML Layout
名称。如下所示:
package com.example.proguardtesttt;
import android.os.Bundle;
import android.support.v7.a.f;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
public class MainActivity extends f
{
protected void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
setContentView(2130903064);
}
public boolean onCreateOptionsMenu(Menu paramMenu)
{
getMenuInflater().inflate(2131492864, paramMenu);
return true;
}
public boolean onOptionsItemSelected(MenuItem paramMenuItem)
{
if (paramMenuItem.getItemId() == 2131034172)
return true;
return super.onOptionsItemSelected(paramMenuItem);
}
}
为什么会这样?我怎样才能确保对我的所有源代码进行模糊处理?
注意:我几乎可以肯定Proguard已启用,因为.apk比没有启用proguard的相同.apk少300kb。
答案 0 :(得分:0)
某些类名和方法名称不能被混淆,因为这会破坏应用程序。
您的反编译器正在组成参数名称;它们不在编译代码中(可能与原始源代码不同)。