在发布正式版本前移除日志语句

原创 2015年11月21日 16:42:16

移除日志对于保持Logcat输出的清晰整洁是很重要的。另外,在代码中留下过多日志也会暴露一些开发者不想泄漏的敏感信息。

我认为,移除日志的最佳方法是使用ProGuard工具。ProGuard可以移除无用代码,或者使用语义模糊的名称来重命名类、变量和方法,以此达到压缩、优化和混淆代码的目的。这样。生成的APK体积更小,并且更不易被逆向工程。

当我们编译Android应用程序时,我们可以在项目根目录找到一个名为proguard.cfg的文件。有了这个文件,并不意味着ProGuard的功能默认是生效的,我们还需要开启这项功能。幸运的是,开启这项功能的方法比较简单:需要在项目根目录的project.properties文件中添加如下代码:

proguard.config=proguard.cfg

现在,ProGuard的功能就生效了。但是,该功能只在导出签名版的APK时才起作用。为了移除日志,还需要在proguard.cfg文件中添加必要的代码。要添加的代码如下所示:

-assumenosideeffects class android.util.Log {
    public static *** d(...);
}

上述代码告诉ProGuard:移除所有使用android.util.Log类中d()方法的地方,不管这个方法的参数和返回类型是什么。这个配置与Log类的d()方法匹配,因此所有调试日志都会被移除。

ProGuard工具提供了另外一种“润色”应用程序正式版本的方法。ProGuard可能会移除源码,所以开发者必须确认自己已经读懂了ProGuard的用户手册,并且为项目创建了正确的配置文件。此外,开发者还需要考虑移除的源码是否是应用程序正常运行所必需的。如果应用程序运行异常,请检查ProGuard配置文件中是否保留了所有必须的代码。

注意,ProGuard并不仅仅用于移除日志语句。当测试程序时,我们通常会在Activity中创建一些方法来填充输入框,我们可以同样使用ProGuard移除这些方法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

跨平台日志清理工具 Log-Cutter v1.0.3 正式发布

Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具。对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方...
  • DuMiYue
  • DuMiYue
  • 2013年09月11日 10:57
  • 650

跨平台日志清理工具 Log-Cutter v2.0.1 正式发布

Log-Cutter,主要有以下特点: 1、支持 Linux、Mac 和 Windows 等所有常见操作系统平台 2、支持命令行交互式运行 3、支持后台非交互式运行(Linux/MAC 下使用 dae...
  • DuMiYue
  • DuMiYue
  • 2013年10月10日 10:38
  • 569

SequoiaDB巨杉数据库2.6版本正式发布啦

SequoiaDB 2.6新特性:标准SQL: SequoiaDB 2.6支持标准SQL2003与事务机制,支持JDBC、ODBC、Hibernate、Spring等通用框架,完美兼容现有业务系统的无...

真正好用的RPC框架rest_rpc正式发布第一个版本

真正好用的RPC框架rest_rpc正式发布第一个版本rest_rpc是由c++开源技术社区(purecpp.org)创建和发起的项目,在经过多次迭代和重构之后,终于发布第一个版本了。rest_rpc...

新版本 Ubuntu 正式发布 加入Web Apps 功能

10月22日消息,对于大部分的Linux用户来说,每一次新版本Ubuntu的发布总是能引起轰动,据国外媒体报道,近日,广为流行的Linux发行版本Ubuntu迎来了又一次的重大更新,版本正式升级至代号...
  • cometwo
  • cometwo
  • 2012年10月22日 21:45
  • 455

Android Studio 2.2 正式版本发布( Android Studio 2.2多项新功能来啦)

声明:本文为转载,在开头和结尾添加了推荐语。 版权声明:本文为 stormzhang 原创文章,可以随意转载,但必须在明确位置注明出处!!! 原文链接: http://stormzhang...
  • ourpush
  • ourpush
  • 2016年09月28日 21:54
  • 173

Ionic 1.0.0, “uranium-unicorn”正式版本发布

原文 http://blog.ionic.io/announcing-ionic-1-0/     2015年5月12日,在经过了14个Beta版本和5个RC版本后,HTML5移动应用开发框架Ioin...
  • offbye
  • offbye
  • 2015年05月14日 11:39
  • 1561

ZStack Community 1.10版本正式发布

ZStack Community 1.10版本今天正式发布,欢迎大家下载安装。在该版中新增了如下功能:支持设置云主机显卡类型,优化TUI界面,修复已知问题,提高稳定性。...

jeewx-api-1.0.1(捷微微信接口API)版本正式发布

1、jeewx-api为何诞生 现在微信越来越火,基于微信的公众号和服务号越来越丰富,虽然微信帮助文档已经提供了相关的接口,但是接口比较多,通过代码自己调用比较麻烦,所以为减轻开发者独自创造轮子,将...

DataUml Design 教程6-DataUML Design 1.1版本正式发布(支持PD数据模型)

从DataUML Design正式发布到现在有两个月了,由于最近比较忙,到现在才发布1.1版本。以后本人会一直坚持不断完善DataUML Design软件,希望广大程序猿们多多支持。   一、1.1...
  • netuml
  • netuml
  • 2014年06月12日 08:24
  • 758
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在发布正式版本前移除日志语句
举报原因:
原因补充:

(最多只允许输入30个字)