代码混淆步骤详解
ONE Goal , ONE Passion !
前言:为什么要混淆
- 1.防止我们的apk别轻易地反编译.
- 2.混淆代码可以简化我们的apk大小.
Studio混淆:
1.开启混淆
如果使用的是as写的项目, 那么当我们的项目发布时,需要混淆我们只需要更改build.gradle(Model:app)中的一个配置就行.
build.gradle(Model:app):
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
----------------------------------------------
minifyEnabled 默认是false,不混淆. 改为true即开启混淆
proguardFiles 混淆文件的位置.
2.混淆文件
可以看出.混淆文件有2个,他们分别在什么位置的地方呢?
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- getDefaultProguardFile(‘proguard-android.txt’) 代表的文件就是:${sdk.dir}/tools/proguard/proguard-android.txt. 此文件是:sdk已经为我们编写好的android代码混淆规则文件.
- proguard-rules.pro as工程中的proguard-rules.pro文件.如图:
如果我们需要自定义一些混淆规则那么我们就将混淆规则写到这个文件中.
2.自定义混淆规则
在proguard-rules.pro中写我们的混淆规则.
一般我们集成3方框架(如百度地图)后,根据要求来配置混淆规则.
Eclipse混淆:
1.开启混淆
在工程目录中找到project.properties文件.打开混淆设置
默认是不混淆的. 将签名的# 去掉即可
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
// 删掉 # 即可.
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
2.混淆文件
同样使用了2个混淆文件:
- 1.${sdk.dir}/tools/proguard/proguard-android.txt文件
- 2.proguard-project.txt文件.
如果我们需要自定义一些混淆规则那么我们就将混淆规则写到proguard-project.txt中.
待续: 混淆规则!