gpt4 book ai didi

android - Proguard 不会混淆 gui 组件

转载 作者:搜寻专家 更新时间:2023-11-01 09:03:02 26 4
gpt4 key购买 nike

我想使用 ProGuard 来混淆我的 Android 应用程序。这很好用。但是我的扩展 acitvity、view 和 sherlockactivity 的 gui 类没有被混淆。这是 proguard.cfg

-injars      bin/classes
-injars libs
-outjars bin/classes-processed.jar
-libraryjars C:/Users/android-sdks/platforms/android-17/android.jar


-dontpreverify
-dontoptimize
-repackageclasses ''
-allowaccessmodification
-optimizationpasses 5
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keepattributes *Annotation*

-dontwarn sun.misc.Unsafe
-dontwarn com.actionbarsherlock.**
-dontwarn com.google.common.**

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.view.View
-keep public class * extends android.view.ViewGroup
-keep public class * extends android.support.v4.app.Fragment

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers class android.support.v4.app.Fragment {
*** getActivity();
public *** onCreate();
public *** onCreateOptionsMenu(...);
}
-keepclassmembers class * extends com.actionbarsherlock.ActionBarSherlock {
public <init>(...);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}


-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}

-keepclassmembers class * implements android.os.Parcelable {
static android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers class **.R$* {
public static <fields>;
}

-keepclassmembers class com.brainyoo.brainyoo2android.ui.html.BYJavaScriptInterface {
public *;
}

首先,我认为 Activity 不能因为反射调用而被混淆

myactivity.class

我尝试添加:

- keep public class mypackege.myactivity.class

但是并没有解决问题。有什么想法可以混淆 gui 元素吗?

谢谢克里斯汀

最佳答案

But my gui classes, which extends acitvit, view and sherlockactivtiy are not obfusecated.

那是因为您的 ProGuard 配置文件说不要混淆它们。此外,这很重要,因为它们混淆了,您的应用将无法运行,因为:

  • Android 将找不到您重命名的 Activity
  • Android 不会找到您的 Activity 生命周期方法
  • Android 不会找到您的小部件(在解释布局资源时与反射一起使用)
  • 等等

I´ve tried to added: -keep public class mypackege.myactivity.class But it does not solve the problem.

那是因为您告诉 ProGuard 不要混淆那个类。

Any ideas how to obfusecate the gui elements?

如果您希望在完成后拥有一个可用的应用程序,则不需要。

关于android - Proguard 不会混淆 gui 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13821949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com