android studio代码混淆配置,android-studio/代码混淆规则配置文件proguard-rulespro.md at master · quanke/android-studio...

代码混淆规则配置文件:proguard-rules.pro

如果我们想在打包的时候进行代码混淆,就需要在proguard-rules.pro中配置代码混淆规则.

常用的代码混淆规则:

# 在这里添加项目的代码混淆规则

# 混淆规则请参考:http://proguard.sourceforge.net/index.html#manual/usage.html

##################### 一般使用默认 #####################

# 不使用大小写混合类名,混淆后的类名为小写

-dontusemixedcaseclassnames

# 混淆第三方库

-dontskipnonpubliclibraryclasses

# 混淆时记录日志,有助于排查错误

-verbose

# 代码混淆使用的算法.

-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*

# 代码混淆压缩比,值在0-7之间,默认为5.

-optimizationpasses 5

# 优化时允许访问并修改有修饰符的类和类的成员

-allowaccessmodification

##################### 不混淆 #####################

# 这些类不混淆

-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.BackupAgent

-keep public class * extends android.preference.Preference

-keep public class * extends android.support.v4.app.Fragment

-keep public class * extends android.support.v4.app.DialogFragment

-keep public class * extends com.actionbarsherlock.app.SherlockListFragment

-keep public class * extends com.actionbarsherlock.app.SherlockFragment

-keep public class * extends com.actionbarsherlock.app.SherlockFragmentActivity

-keep public class * extends android.app.Fragment

-keep public class com.android.vending.licensing.ILicensingService

# Native方法不混淆

-keepclasseswithmembernames class * {

native ;

}

# 自定义组件不混淆

-keep public class * extends android.view.View {

public (android.content.Context);

public (android.content.Context, android.util.AttributeSet);

public (android.content.Context, android.util.AttributeSet, int);

public void set*(...);

}

# 自定义控件类和类的成员不混淆(所有指定的类和类成员是要存在)

-keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet);

}

# 同上

-keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet, int);

}

# 自定义控件类不混淆

-keepclassmembers class * extends android.app.Activity {

public void *(android.view.View);

}

# 枚举类不被混淆

-keepclassmembers enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}

# android.os.Parcelable的子类不混淆

-keep class * implements android.os.Parcelable {

public static final android.os.Parcelable$Creator *;

}

# 资源类不混淆

-keepclassmembers class **.R$* {

public static ;

}

##################### 第三方库不混淆 #####################

# 保留第三方库android.support.v4不被混淆

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

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

# 打包时忽略警告

-dontwarn android.support.**

# 如果你的项目中使用了第三方库,需要参考官方文档的说明来进行混淆配置

# 例如: 百度地图的配置 参考:http://developer.baidu.com/map/sdkandev-question.htm

#-keep class com.baidu.** { *; }

#-keep class vi.com.gdi.bgl.android.**{*;}

# 例如: 支付宝的混淆 参考: https://doc.open.alipay.com/doc2/detail.htm?treeId=59&articleId=103683&docType=1

#-libraryjars libs/alipaySDK-20150602.jar

#

#-keep class com.alipay.android.app.IAlixPay{*;}

#-keep class com.alipay.android.app.IAlixPay$Stub{*;}

#-keep class com.alipay.android.app.IRemoteServiceCallback{*;}

#-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}

#-keep class com.alipay.sdk.app.PayTask{ public *;}

#-keep class com.alipay.sdk.app.AuthTask{ public *;}

混淆规则配置文件配置好以后,需要在build.gradle中开启混淆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值