- Android Studio 里面有专门的混淆操作 proguard-rules.pro 文件。
- 再内库lib的 bundle 文件 设置
minifyEnabled true
设置成功之后。配置proguard-rules.pro 里面的混淆配置,配置信息如下:
-
-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 com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keep public class com.enn.bluetoothreadcardsdk.BlueToothUtils{ public <fields>; public <methods>; } -keep public class com.example.mylibrary.constant.*{*;} #忽略警告 -ignorewarnings #保证是独立的jar,没有任何项目引用,如果不写就会认为我们所有的代码是无用的,从而把所有的代码压缩掉,导出一个空的jar -dontshrink #保护泛型 -keepattributes Signature
需要注意的地方 -keep public class com.enn.bluetoothreadcardsdk.BlueToothUtils{
public <fields>;
public <methods>;
} -
如果不想 里面对外提供的 方法被混淆 使用上面的代码 。
-
配置完成之后 直接打包就可以了 ,打包方法 上一篇有写到
Android Studio 打jar包同时class文件做混淆操作
最新推荐文章于 2023-11-01 14:53:51 发布