Android 佩戴 Proguard
Android Wear Proguard
我尝试在我的 Android Wear 应用程序中使用混淆器,但我不确定规则中应该包含哪些内容。在我的 wear 应用程序的 gradle 文件中,我有:
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
我的 proguard-rules.pro
看起来像:
-keepattributes SourceFile,LineNumberTable
当我 运行 我的应用程序时,UI 工作,但是访问 DataApi
的任何内容都丢失了。有人有ideas/experience吗?
我通过将 Firefox's proguard config 的部分内容与我自己的部分内容相结合来实现它:
-keep class com.google.android.gms.common.api.** {*;}
-keep class com.google.android.gms.wearable.** {*;}
# Firefox
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keepattributes SourceFile,LineNumberTable
# Preserve all fundamental application classes.
-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.app.backup.BackupAgentHelper
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
# Preserve all native method names and the names of their classes.
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# Preserve enums. (For awful reasons, the runtime accesses them using introspection...)
-keepclassmembers enum * {
*;
}
我尝试在我的 Android Wear 应用程序中使用混淆器,但我不确定规则中应该包含哪些内容。在我的 wear 应用程序的 gradle 文件中,我有:
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
我的 proguard-rules.pro
看起来像:
-keepattributes SourceFile,LineNumberTable
当我 运行 我的应用程序时,UI 工作,但是访问 DataApi
的任何内容都丢失了。有人有ideas/experience吗?
我通过将 Firefox's proguard config 的部分内容与我自己的部分内容相结合来实现它:
-keep class com.google.android.gms.common.api.** {*;}
-keep class com.google.android.gms.wearable.** {*;}
# Firefox
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keepattributes SourceFile,LineNumberTable
# Preserve all fundamental application classes.
-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.app.backup.BackupAgentHelper
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
# Preserve all native method names and the names of their classes.
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# Preserve enums. (For awful reasons, the runtime accesses them using introspection...)
-keepclassmembers enum * {
*;
}