关闭

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

标签: LogcatLogProGuard
298人阅读 评论(0) 收藏 举报
分类:

移除日志对于保持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移除这些方法。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:66562次
    • 积分:1572
    • 等级:
    • 排名:千里之外
    • 原创:86篇
    • 转载:0篇
    • 译文:0篇
    • 评论:13条
    最新评论