Android Studio混淆与发布
来源:互联网 发布:网络黑侠哪本作品好 编辑:程序博客网 时间:2024/05/29 16:14
一、混淆
步骤1:在build.gradle(app)文件中添加
buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }}
minifyEnabled默认为false改为true表示混淆, proguard-android.txt是SDK自带的文件无需修改,proguard-rules.pro便是混淆需要编辑的策略文件。
二、修改proguard-rules.pro文件
#-----------------混淆配置设定------------------------------------------------------------------------
-optimizationpasses5 #指定代码压缩级别
-dontusemixedcaseclassnames #混淆时不会产生形形色色的类名
-dontskipnonpubliclibraryclasses #指定不忽略非公共类库
-dontpreverify #不预校验,如果需要预校验,是-dontoptimize
-ignorewarnings #屏蔽警告
-verbose #混淆时记录日志
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* #优化
#-----------------不需要混淆第三方类库------------------------------------------------------------------
-dontwarn android.support.v4.** #去掉警告
-keep class android.support.v4.** { *;} #过滤android.support.v4
-keep interface android.support.v4.app.** { *;}
-keep public class * extends android.support.v4.**
-keep public class * extends android.app.Fragment
-keep class org.apache.**{*;} #过滤commons-httpclient-3.1.jar
-keep class org.greenrobot.**{*;} #过滤eventbus-3.0.0.jar
-keep class com.google.gson.**{*;} #过滤gson-2.7.jar
-keep class com.google.inject.**{*;} #过滤guice-3.0-no_aop.jar等
-keep class roboguice.**{*;} #过滤roboguice-2.0.jar等
-keep class com.ndktools.javamd5.**{*;} #过滤JavaMD5.jar等
-keep class javax.inject.**{*;} #过滤javax.inject-1.jar等
-keep class javax.annotation.**{*;} #过滤jsr305-1.3.9.jar等
-keep class grgbanking.rcc.tools.**{*;} #过滤rcctools.jar等
-keep class com.android.volley.**{*;} #过滤volley.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.preference.Preference
-keep public classcom.android.vending.licensing.ILicensingService
-keep class com.client.volley.bean.**{*;} #过滤掉自己编写的实体类
#----------------保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在------------------------------------
-keepclasseswithmembernamesclass * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet,int);
}
按照这个模板,替换你自己不需要混淆的外部jar包和系统jar包。
三、发布
点击Build-->genericsigned APK
第一次需要点击【Create new】弹出密钥设置界面
Certificate至少需要设置一项,设置好后点击【ok】,便开始打apk包,并且在工程目录下app文件夹下生成app-release.apk,这就是混淆后发布的apk
参考:http://blog.csdn.net/ttccaaa/article/details/47687241
- Android Studio混淆与发布
- Android Studio 代码混淆 与 发布release正式签名版本
- 【Android Studio】代码混淆与多渠道打包
- android 混淆发布jar
- Android Studio 混淆打包
- android studio 代码混淆
- android studio混淆打包
- Android studio 混淆代码
- Android studio 混淆问题
- android studio 代码混淆
- Android studio 打包、混淆
- android studio 混淆
- android studio 代码混淆
- Android Studio 代码混淆
- android Studio 混淆
- android studio 代码混淆
- Android Studio混淆相关
- Android Studio 代码混淆
- dp--最长公共子序列
- dp--Bone Collector
- 双重背包-- Jin Ge Jin Qu hao
- 位运算笔记
- [转发]网络虚拟化技术(一): Linux网络虚拟化
- Android Studio混淆与发布
- Leetcode 399. Evaluate Division
- Spring源码学习之简单朴素的理解spring
- JS:求某个日期是当年的第几天
- JDK8的集合流式操作
- Linux Centos 下vim安装与配置
- Android正则表达式匹配字符串
- JSP之c:foreach
- Andrew Ng《Machine Learning》第九讲——异常检测和推荐算法