Proguard-需要自定义proguard-project.txt以混淆源代码?

时间:2014-11-06 15:23:12

标签: android eclipse proguard

我正在尝试使用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。

1 个答案:

答案 0 :(得分:0)

某些类名和方法名称不能被混淆,因为这会破坏应用程序。

您的反编译器正在组成参数名称;它们不在编译代码中(可能与原始源代码不同)。