我有以下Android
申请:
$ git clone https://github.com/zeuscronos/CallTheDog.git
$ cd CallTheDog/
$ npm install
$ ionic platform add android
$ cp __temp/* platforms/android/
$ ionic build android --release
$ adb install platforms/android/build/outputs/apk/android-release.apk
Proguard
配置文件是:
platforms/android/proguard-rules.pro
你在网上有这个:
https://github.com/zeuscronos/CallTheDog/blob/master/__temp/proguard-rules.pro
现在它的内容是:
-keep public class com.ionicframework.** { *; }
-keep public class org.apache.cordova.** { *; }
-keep public class io.ionic.keyboard.** { *; }
-keep public class mx.ferreyra.callnumber.** { *; }
-dontshrink
现在它并没有做任何混淆。
我的问题是:
1-如何配置这些Proguard
规则以尽可能obfuscate
?
2-我如何keep the name of a method
(有时需要保持整个应用程序的一致性)但同时obfuscating
内部的内容如local variables
等?
例如,查看下面的图片,如果我想保留方法的名称:execute
和callPhone
,但同时混淆其局部变量呢?
答案 0 :(得分:1)
Proguard已经尽可能地混淆了,通常你提到的是异常。我认为这可能会为你的例子做到这一点
minifyEnabled true
如果您还没有忘记,请不要忘记gradle release build中的if("huawei".equalsIgnoreCase(android.os.Build.MANUFACTURER) && !sp.getBoolean("protected",false)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.huawei_headline).setMessage(R.string.huawei_text)
.setPositiveButton(R.string.go_to_protected, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
startActivity(intent);
sp.edit().putBoolean("protected",true).commit();
}
}).create().show();
}
。