您的位置:首页 > 其它

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

2015-11-21 16:42 309 查看
移除日志对于保持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移除这些方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: