【发布时间】:2014-11-06 15:23:12
【问题描述】:
我正在尝试使用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。
【问题讨论】: