Android 如何保护安卓jar
我知道如何proguard android项目,但目前我使用android做一个jar,以便人们可以在android应用程序中使用我的jar,但我想将我的jar转换为proguard。我使用了proguard工具,我的.pro文件是:Android 如何保护安卓jar,android,proguard,Android,Proguard,我知道如何proguard android项目,但目前我使用android做一个jar,以便人们可以在android应用程序中使用我的jar,但我想将我的jar转换为proguard。我使用了proguard工具,我的.pro文件是: -libraryjars 'D:\Android\android-sdk\platforms\android-7\android.jar' -optimizationpasses 5 -dontusemixedcaseclassnames -dontski
-libraryjars 'D:\Android\android-sdk\platforms\android-7\android.jar'
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-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.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public abstract interface com.asqw.android.Listener{
public protected <methods>;
}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
//公共无效setCahceImage(){
//if(gifDecoder==null){
//gifDecoder=新的gifDecoder(本);
// }
//cacheImage=true;
//gifdecover.setCacheImage(true,上下文);
//}
}
当我使用proguard工具对文件进行proguard时,gf2.setGifImage(R.drawable.a2);
gf2.设置GifImageType(GifImageType.COVER);gf1.showcolve()等等,所有未从jar调用的公共方法将以下内容添加到您的
proguard.config
。我认为这将有助于保存枚举:
-keep public enum com.ant.liao.GifView.GifImageType$** {
**[] $VALUES;
public *;
}
或绕过定义枚举的类:
-keep class com.ant.liao.GifView { *; }
将以下内容添加到
proguard.config
。我认为这将有助于保存枚举:
-keep public enum com.ant.liao.GifView.GifImageType$** {
**[] $VALUES;
public *;
}
或绕过定义枚举的类:
-keep class com.ant.liao.GifView { *; }
-injars GifView.jar
-outjars G.jar
-libraryjars'D:\Android\Android sdk\platforms\Android-7\Android.jar'
-优化!代码/简化/算术,!字段/,!类/合并/
-优化过程5
-dontusemixedcaseclassnames
-不要翻转
-冗长的
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-keep public class*扩展了android.app.backup.BackupAgentHelper
-keep public class*扩展了android.preference.preference
-保持公共类com.android.vending.licensing.ILicensingService
-保持公共接口com.ant.liao.GifAction
-keepclassmembers类com.ant.liao.GifView{
公开无效();
公共无效集*(*);
公开展览*()
}
-保持类com.ant.liao.GifImageType{*;}
-保持公共接口com.asqw.android.Listener{
受公众保护;
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keep class*扩展android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
还保留-枚举。保留中所需的特殊静态方法
枚举类。
-keepclassmembers枚举*{
公共静态*[]值();
公共静态*valueOf(java.lang.String);
}
保留名称-本机方法名称。保留所有本机类/方法名称。
-保留类成员,允许收缩类*{
本地人;
}
我从gifView java文件中获取eunm,并将eunm GifImageType作为一个单独的java文件
-outjars G.jar
-libraryjars'D:\Android\Android sdk\platforms\Android-7\Android.jar'
-优化!代码/简化/算术,!字段/,!类/合并/
-优化过程5
-dontusemixedcaseclassnames
-不要翻转
-冗长的
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-keep public class*扩展了android.app.backup.BackupAgentHelper
-keep public class*扩展了android.preference.preference
-保持公共类com.android.vending.licensing.ILicensingService
-保持公共接口com.ant.liao.GifAction
-keepclassmembers类com.ant.liao.GifView{
公开无效();
公共无效集*(*);
公开展览*()
}
-保持类com.ant.liao.GifImageType{*;}
-保持公共接口com.asqw.android.Listener{
受公众保护;
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keep class*扩展android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
还保留-枚举。保留中所需的特殊静态方法
枚举类。
-keepclassmembers枚举*{
公共静态*[]值();
公共静态*valueOf(java.lang.String);
}
保留名称-本机方法名称。保留所有本机类/方法名称。
-保留类成员,允许收缩类*{
本地人;
}
我从gifView java文件中获取eunm,并将eunm GifImageType作为一个单独的java文件我使用了2种方法来减少我的错误,只有GifImageType.COVER没有找到,你能告诉我如何减少它吗?将枚举类定义为static:
公共静态枚举GifImageType{…}
并查看它是否有帮助,或者如果它仍然没有帮助,则将第二个选项更改为此-keep class com.ant.liao.GifView
。(注意:末尾没有括号)我使用了-keep class com.ant.liao.GifView也没有用然后添加这个-dontwarn com.ant.liao.GifView
我使用了2个方法减少了我的错误,只有GifImageType.COVER没有找到,你能告诉我如何减少它吗?将枚举类定义为静态:公共静态枚举GifImageType{…}
并查看它是否有帮助,或者如果它仍然没有帮助,则将第二个选项更改为此-keep class com.ant.liao.GifView
。(注意:末尾没有括号)我使用了-keep class com.ant.liao.GifView也没有用然后添加这个-dontwarn com.ant.liao.GifView