android去掉所有log日志,Android release包去掉Log日志

曾经做混淆打包时,为了APP安全,需要去掉代码里的Log日志。网上好多都是说自定义一个Log工具类,设置个true、fale开关来控制的方案。

但是,有个问题,如果代码被反编译了,还是可以轻松开启日志开关,定位出关键代码。所以,新解决思路是在打包时,去掉带Log的代码。所以,当然考虑从build.gradle和proguard-rules.pro入手。

Talk is cheap, show me the code:

1、build.gradle的release修改如下:buildTypes {

release {

minifyEnabled true

shrinkResources true

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'

}

}

2、proguard-rules.pro中增加下面这段(如果你的代码里有 - dontoptimize,这一行一定要去掉):-assumenosideeffects class android.util.Log {

public static *** d(...);

public static *** v(...);

public static *** i(...);

public static *** e(...);

public static *** w(...);

}

以上是解决办法。

下面补充一点知识点:

细心的同学可能发现了,build.gradle的release代码,有句:proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'

而你以前,可能用的是:proguardFiles getDefaultProguardFile('proguard-project.txt'),'proguard-rules.pro'

首先,这两行代码区别在于build.gradle中默认用的是哪个.txt里的配置。

在你的电脑 sdk\tools\proguard\ 目录下,可以找到上面粗体的两个txt,内容有大约4、5行不同。我这里指出其中最重要的一点,proguard-project.txt中有这么一句:-dontoptimize

而proguard-android-optimize中没有。这句是指,配置打包时,不优化代码。如果设置了不优化,则上面proguard-rules.pro中的去除Log,无效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值