zoukankan      html  css  js  c++  java
  • android:分享 一个非常强大的LOG开关---Log.isLoggable

    1、API亮点:

    API能够实现不更换APK。在出问题的手机上就直接能抓到有效log,能提升不少工作效率。

    2API介绍

    近期在解决短信问题时。看到一个非常强大的LOG开关---Log.isLoggable

    1. if (Log.isLoggable(LogTag.TRANSACTION, Log.VERBOSE)) {  

    2.     Log.v(TAG, "Creating TransactionService");  

    3. }  

     进入framework中查看isLoggable方法的定义,发现这是一个用了JNI的方法。只是方法声明上有非常多凝视。

    细致看了下,发现这是android给大家的一个礼物。
    原文大致意思:检查当前的tag是否在指定的log级别。

    一般默认的log级别是INFO,这也就意味着在这之上包含INFOlog都会被输出。你能够通过设置系统属性改动默认的log级别,运行例如以下命令就可以:

    1. setprop log.tag.;YOUR_LOG_TAG> ;LEVEL  

    你也开能够将这句代码写进local.prop文件中面,而且将这个文件放到/data/local.prop。依据上面的指导。试着运行下以下的命令:

    1. adb shell setprop log.tag.Mms:transaction VERBOSE  

    接着发了一条彩信试验。有效log都输出来了。

           我们在这个基础上在进行一些挖掘。看看google还给我们留了哪些惊喜。从上面第二段代码中的LogTag.TRANSACTION,能够看到Mms的包里面有个LogTag.java文件,发现里面果然声明了不少常量:

    1. public static final String TRANSACTION = "Mms:transaction";  

    2. public static final String APP = "Mms:app";  

    3. public static final String THREAD_CACHE = "Mms:threadcache";  

    4. public static final String THUMBNAIL_CACHE = "Mms:thumbnailcache";  

    5. public static final String PDU_CACHE = "Mms:pducache";  

    6. public static final String WIDGET = "Mms:widget";  

    7. public static final String CONTACT = "Mms:contact";  

    这一个个都是彩信里面重要log开关。知道了这些以后调试彩信就方便多了,不用换APK,在出问题的手机上就直接能抓到有效log。能提升不少工作效率。我们接着载回去看看isLoggable(Stringtag, int level)在哪里有调用,发现除了framework层和Mms应用。还有Contacts等重要模块有调用,以后调试这些模块都会方便非常多。

  • 相关阅读:
    怎么建立个人网站
    滚动条美化插件jquery.nicescroll
    [bzoj2251][2010Beijing Wc]外星联络——后缀数组+暴力求解
    [bzoj1717][Usaco2006 Dec]Milk Patterns 产奶的模式——后缀数组
    [bzoj1031][JSOI2007]字符加密Cipher——后缀数组
    [bzoj1030][JSOI2007]文本生成器——AC自动机
    [bzoj1009][HNOI2008]GT考试——KMP+矩阵乘法
    [bzoj2038][2009国家集训队]小Z的袜子(hose)——莫队算法
    [bzoj3669][Noi2014]魔法森林——lct
    [bzoj4034][HAOI2015]树上操作——树状数组+dfs序
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6766823.html
Copyright © 2011-2022 走看看