android学习笔记2-打包混淆配置
2016-02-18 10:30
615 查看
在Android Studio项目中的混淆打包配置项:
项目目录下增加:proguard-rules.pro,如图:
配置文件具体类容如下:
可根据项目需求增删混淆文件代码
项目目录下增加:proguard-rules.pro,如图:
配置文件具体类容如下:
# Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in E:\Android\adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\sdk/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} -optimizationpasses 7 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontpreverify # 混淆时是否做预校验 -verbose # 混淆时是否记录日志 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法 -keep public class * extends android.app.Activity # 保持哪些类不被混淆 -keep public class * extends android.app.Activity # 保持哪些类不被混淆 -keep public class * extends android.app.FragmentActivity # 保持哪些类不被混淆 -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 # 保持哪些类不被混淆 -keepclasseswithmembernames class * { # 保持 native 方法不被混淆 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); } -keepclassmembers enum * { # 保持枚举 enum 类不被混淆 public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; } #混淆butterknife -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; } #混淆butterknife #不混淆sharesdk -keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.R$* {*;} -keep class **.R{*;} -keep class com.mob.**{*;} -dontwarn com.mob.** -dontwarn cn.sharesdk.** -dontwarn **.R$* #不混淆sharesdk #不混淆alipay -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 *;} -keep class com.alipay.mobilesecuritysdk.* -keep class com.alipay.apmobilesecuritysdk.* -dontwarn com.alipay.apmobilesecuritysdk.** -keep class com.ut.* #不混淆alipay #不混淆demo -dontwarn demo.** -keep class demo.** { *;} #不混淆demo #不混淆百度 -keep class com.baidu.** {*;} -keep class vi.com.** {*;} -dontwarn com.baidu.** #不混淆百度 #不混淆 com.squareup.picasso -keepattributes SourceFile,LineNumberTable -keep class com.parse.*{ *; } -dontwarn com.parse.** -dontwarn com.squareup.picasso.** -keepclasseswithmembernames class * { native <methods>; } #不混淆 com.squareup.picasso #不混淆okio -dontwarn com.squareup.okhttp.** -keep class com.squareup.okhttp.** { *;} -dontwarn okio.** #不混淆okio #不混淆jackson -dontwarn org.codehaus.jackson.** -keep class org.codehaus.jackson.** {*; } -keep interface org.codehaus.jackson.** { *; } -keep public class * extends org.codehaus.jackson.** -keep class com.fasterxml.jackson.** { *; } -dontwarn com.fasterxml.jackson.databind.** #Warning:com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry #不混淆jackson #不混淆EventBus #-keepclassmembers class ** { # public void onEvent*(**); #} -keep class de.greenrobot.event.** {*;} -keepclassmembers class ** { public void onEvent*(**); } -keepclassmembers class ** { void onEvent*(**); } -keepclassmembers class ** { public void onEvent(int); #【对该方法不进行混淆】 } # Only required if you use AsyncExecutor -keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent { <init>(java.lang.Throwable); } #不混淆EventBus -keep class com.puyuntech.sixcontry.mode.* { *;}#mode类不混淆 -keep public class com.tencent.bugly.**{*;}#
可根据项目需求增删混淆文件代码
相关文章推荐
- Android系统移植(六)
- android ContentResolver详解
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- Android ScrollView的滚动事件
- Android之afinal框架的DB——删除数据表Bug
- android入门
- Android 通过Handler进行主线程子线程通信 代码示例
- Android-MediaProvider数据库模式
- Android-onInterceptTouchEvent()和onTouchEvent()总结
- Android中Canvas绘图基础详解(附源码下载)
- android ftp协议
- android文件存储的4种方式
- Android系统移植(五)
- Android LinearLayout及TextView的布局方式
- hello android
- Ubuntu编译Android源代码
- android 软键盘,右下角 内容设置
- Android开发中R.java文件丢失或无法更新的解决方法
- android 软键盘弹出隐藏挤压界面等问题
- Android Studio如何找到当前类/方法被引用位置