Android studio 打包jar时的混淆

混淆的位置为项目lib或者module下的Proguard-rules.pro文件

#混淆时不使用大小写混合类名
-dontusemixedcaseclassnames

表示不跳过library中的非public的类

-dontskipnonpubliclibraryclasses

打印混淆的详细信息

-verbose

Optimization is turned off by default. Dex does not like code run

through the ProGuard optimize and preverify steps (and performs some

of these optimizations on its own).

-dontoptimize

表示不进行校验,这个校验作用 在java平台上的

-dontpreverify

Note that if you want to enable optimization, you cannot just

include optimization flags in your own project configuration file;

instead you will need to point to the

“proguard-android-optimize.txt” file instead of this one from your

project.properties file.

#使用注解需要添加
-keepattributes Annotation
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

For native methods, see http://proguard.sourceforge.net/manual/examples.html#native

#指定不混淆所有的JNI方法
-keepclasseswithmembernames class * {
native ;
}

keep setters in Views so that animations can still work.

see http://proguard.sourceforge.net/manual/examples.html#beans

#所有View的子类及其子类的get、set方法都不进行混淆
-keepclassmembers public class * extends android.view.View {
void set*(**);
*** get
();
}

We want to keep methods in Activity that could be used in the XML attribute onClick

不混淆Activity中参数类型为View的所有方法

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations

不混淆Enum类型的指定方法

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

不混淆Parcelable和它的子类,还有Creator成员变量

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

不混淆R类里及其所有内部static类中的所有static变量字段

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

The support library contains references to newer platform versions.

Don’t warn about those in case this app is linking against an older

platform version. We know about them, and they are safe.

不提示兼容库的错误警告

-dontwarn android.support.**

Understand the @Keep support annotation.

-keep class android.support.annotation.Keep
-keep @android.support.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
@android.support.annotation.Keep ;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep ;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep (…);
}
###########################以下是需要手动的混淆配置协议###############################

-libraryjars “C:\Program Files\Java\jre1.8.0_151\lib\rt.jar”
#-libraryjars “C:\Users\admin\AppData\Local\Android\sdk\platforms\android-26\android.jar”

注意:以上两个路径需要将以上路径是自己jar包的位置,需要根据自己情况进行修改,如果报重复配置的错误,注释掉即可

#代码迭代优化的次数,默认5
-optimizationpasses 5
#混淆时不会产生形形色色的类名
-dontusemixedcaseclassnames
#忽略警告
-ignorewarnings
#以下是不需要混淆的文件
-keep class com.android.sdk.demo.LogUtils{
*;
}
-keep class com.android.sdk.demo.StorageUtils{
*;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值