安卓混淆
来源:互联网 发布:华云数据集团有限公司 编辑:程序博客网 时间:2024/05/01 02:58
eclipse混淆
在工程目录proguard-project.txt编写那些需要混淆
#第三方引入的包-optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*#忽略警告 也可以用-ignorewarnings-dontwarn#声明第三方jar包,不用管第三方jar包中的.so文件(如果有)-libraryjars libs/baidumapapi.jar-libraryjars libs/tencent_openapi.jar-libraryjars libs/httpmime-4.1.3.jar-libraryjars libs/weibo.sdk.android.sso.jar-libraryjars libs/android-support-v4.jar-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-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);}-keepclassmembers enum * {public static **[] values();public static ** valueOf(java.lang.String);}-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;}#不混淆第三方jar包中的类-keep class com.baidu.mapapi.** {*;}-keep class com.tencent.tauth.** {*;}-keep class org.apache.http.entity.mime.** {*;}-keep class android.support.v4.** {*;}-keep class android.net.http.** {*;}-keep class com.weibo.sdk.android.** {*;}-keep class com.sina.sso.** {*;}#说明一下,第三方jar包中如果有.so文件,不用去理会,引入的第三方jar文件不要混淆,否则可能会报异常
project.properties文件中
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
把上面的#去掉
Studio
在build.grandle添加,其中规则写在proguard-rules.pro中,也可以自定义一个文件,将其代替,比如eclipse常用的 proguard-project.txt
buildTypes { release { signingConfig signingConfigs.release minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘ }}
在proguard-rules.pro中加入以下代码,基本可以涵盖所有
-optimizationpasses 5 # 指定代码的压缩级别-dontusemixedcaseclassnames # 是否使用大小写混合-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 # 保持哪些类不被混淆-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 *;}
通过 Android Studio进行 混淆代码时,默认已经将 lib目录中的 jar 都已经添加到打包脚本中,所以不需要再次手动添加,否则会出现“ java.io.IOException: The same input jar is specified twice” 错误。
原文:http://blog.csdn.net/bjstyle/article/details/47001277
0 0
- 安卓代码混淆
- 安卓混淆dontshrink
- 安卓混淆文件
- 安卓 代码混淆
- 安卓混淆
- 安卓应用程序混淆
- 安卓项目混淆
- 安卓混淆
- 安卓代码混淆
- 安卓混淆
- 安卓代码混淆
- 安卓开发 混淆代码
- 安卓混淆源码打包
- 安卓代码混淆注意事项
- 安卓代码混淆心得
- eclipse 安卓混淆学习
- 安卓代码混淆说明
- 安卓 代码的混淆
- 关于ext用到了自己定义的插件时间(精确到秒)一些注意的地方
- HihoCoder #1369 : 网络流一·Ford-Fulkerson算法
- GLM Intro - Matrix Transform Example
- codeforces 722C (并查集)
- android_07_表格布局
- 安卓混淆
- ROS导航-----slam_gmapping使用Log数据创建地图
- HDU 5514 Frogs(容斥原理 gcd)
- hdu2688 Rotate(树状数组)
- Java的自学之路-return与break的差别
- iOS10 Xcode8问题汇总
- python 3 mysql操作
- Apache kafka--高性能的分布式消息系统
- dfs,太巧妙了