Android:签名打包后关闭Log打印

来源:互联网 发布:军训合照能上传网络吗 编辑:程序博客网 时间:2024/06/08 02:35

Android:签名打包后关闭Log打印

正常开发过程中log是常用的,个人之前遇到bug第一时间不会使用调试工具来看看哪里出的问题,常常使用log输出相应的数据或者判断结果,当我们签名后发布应用后如果继续打印log是非常危险的,假如没有关闭log的打印,那么安装app后连接as 或者 eclipse 等ide就会直接打印log,清晰可见,那么这款app就没有什么安全可言了,所以发布应用前关闭log是必须的!

怎么关闭log呢?

第一步:自定义buildconfig标明log的打印与关闭

在app->buile.gradle中的buildTypes中添加下面字段:

buildTypes {        release {            // 使用签名打包时不显示Log            buildConfigField "boolean", "LOG_DEBUG", "false"            ........        }        debug {            //正常debug测试打开log打印            buildConfigField "boolean", "LOG_DEBUG", "false"'            ........        }    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

第二步:封装打印方法

public class MyLog {//读取BuildConfig.LOG_DEBUG 签名时为FALSE 不打印 debug时为true 打印        public static void i(String tag,String message){            if(BuildConfig.LOG_DEBUG)Helper.logi(tag,message);        }        public static void d(String tag,String message){            if(BuildConfig.LOG_DEBUG)Log.d(tag,message);        }        public static void e(String tag,String message){            if(BuildConfig.LOG_DEBUG)Log.e(tag,message);        }    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

第三步:使用

这里就不能再继续使用android.util.Log 而是使用上一步自定义的MyLog.i(tag,message); 来替换Log.i(tag,message);

这样我们在使用签名打包后的app就不会再输出log,使用debug也不影响查看log处理解决问题。