开发者社区> 雪梦科技> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[转]发布程序时移除Android 调试Log

简介: 原文:http://blog.isming.me/blog/2014/06/30/remove-log-in-android/?utm_source=tuicool&utm_medium=referral 在Android开发中,我们使用android.util.Log来打印日志,方便我们的开发调
+关注继续查看

原文:http://blog.isming.me/blog/2014/06/30/remove-log-in-android/?utm_source=tuicool&utm_medium=referral

在Android开发中,我们使用android.util.Log来打印日志,方便我们的开发调试。但是对于正式发布的程序,我们并不希望这些Log信息显示,一方面对于用户来说影响机器性能,另一方面,其他开发者看到这些信息的时候,对我们应用程序的安全是有威胁的。所以,我们需要在正式发布时不让Log执行,或者将其移除。这里,我提供三种方法。

自己写一个Log的帮助类,在类中设置显示级别

示例代码如下,通过一个静态变量设置Log的显示级别。

public class Log {
  public static int logLevel = Log.VERBOSE;

  public static void i(String tag, String msg) {
      if (logLevel <= Log.INFO)
          android.util.Log.i(tag, msg);
  }

  public static void e(String tag, String msg) {
      if (logLevel <= Log.ERROR)
          android.util.Log.e(tag, msg);
  }

  public static void d(String tag, String msg) {
      if (logLevel <= Log.DEBUG)
          android.util.Log.d(tag, msg);
  }

  public static void v(String tag, String msg) {
      if (logLevel <= Log.VERBOSE)
          android.util.Log.v(tag, msg);
  }

  public static void w(String tag, String msg) {
      if (logLevel <= Log.WARN)
          android.util.Log.w(tag, msg);
  }
}

使用Proguard移除代码中的Log代码

修改Proguard的配置文件,添加以下配置:

-assumenosideeffects class android.util.Log {

public static int v(...);

public static int i(...);

public static int w(...);

public static int d(...);

public static int e(...);

}

可以根据需要在发布时候显示的级别来决定移除哪些级别的Log(需要移除的就放到配置中),同时Proguard的配置中还要注意不要有 -dontoptimize 这个配置。

比较

以上两种方法都可以达到开发阶段不显示Log,正式发布移除Log。但是使用Proguard的方式,可能不是所有程序都会进行Proguard的。这个呢,大家根据自己的项目需求,来选择合适的方法。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
155 0
Android大数据、断点续传、耗时下载之DownloadManager开发简介(1)
 Android大数据、断点续传、耗时下载之DownloadManager开发简介(1) Android涉及到的网络数据请求,如果是零星数据、且数据量较小(几十KB到几百KB,1MB以内),一般的,可以自己使用Android原生HTTP或者第三方开源框架如Volley(相关文章:http://blog.
935 0
Android开发重要参考资料
=======================博客============================= 秋百万 有心课堂 郭霖 源码 安装ffmpeg 胡凯 官方培训课程 litesuitsway 爱哥 trinea robinRobin Hu...
850 0
+关注
雪梦科技
专注Android应用研发,性能优化,移动安全等领域。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android内存泄漏自动化链路分析组件Probe
立即下载
Android应用启动速度和内存优化实践
立即下载
Android热修复技术原理详解与升级探索
立即下载