android:分享 一个非常强大的LOG开关---Log.isLoggable
1、API亮点:
此API能够实现不更换APK。在出问题的手机上就直接能抓到有效log,能提升不少工作效率。
、API介绍
近期在解决短信问题时。看到一个非常强大的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,这也就意味着在这之上包含INFO的log都会被输出。你能够通过设置系统属性改动默认的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等重要模块有调用,以后调试这些模块都会方便非常多。
android:分享 一个非常强大的LOG开关---Log.isLoggable的更多相关文章
- android:分享 一个很强大的LOG开关---Log.isLoggable
标签:android分享 一个很强大的log开 1.API亮点: 此API可以实现不更换APK,在出问题的手机上就直接能抓到有效log,能提升不少工作效率. 2.API介绍 最近在解决短信问题时,看到 ...
- android 分享一个处理BaseAdapter,getView()多次加载的方法
一:BaseAdapter介绍 BaseAdapter是listview,gridview等列表,使用的数据适配器,它的主要用途是将一组数据传到ListView.Spinner.Gallery及Gri ...
- Android 分享一个SharedPreferences的工具类,方便保存数据
我们平常保存一些数据,都会用到SharedPreferences,他是保存在手机里面的,具体路径是data/data/你的包名/shared_prefs/保存的文件名.xml, SharedPrefe ...
- 分享一个强大的采集类,还可以模拟php多进程
做采集的时候,可以使用file_get_contents()去获取网页源代码,但是使用file_get_contents采集,速度慢,而且超时时间,不好控制.如果采集的页面不存在,需要等待的时间很长. ...
- 分享一个完美的新闻客户端(酷商城)Android源码
分享一个完美的新闻客户端(酷商城)Android源码,这个源码项目是从安卓教程网转载过来的,项目主要是解析html,fragment,异步缓存图片加载,webview加载网页等.可以正常的运行的,我已 ...
- 【Android】 分享一个完整的项目,适合新手!
写这个app之前是因为看了头条的一篇文章:http://www.managershare.com/post/155110,然后心想要不做一个这样的app,让手机计算就行了.也就没多想就去开始整了. ...
- Gradle build设置自动log开关
应用场景 通常情况下我们的apps发布后也就是release模式下log是不显示的,debug模式下是显示log的,但是在特殊情况下我们测试release包的时候需要log的时候,就无法使用Build ...
- 封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类
快速开发系列 10个常用工具类 http://blog.csdn.net/lmj623565791/article/details/38965311 ------------------------- ...
- 分享一个Snackbar工具类 SnackbarUtils;
分享一个Snackbar工具类,源代码也是在Github上面找的,自己做了一下修改: 功能如下: 1:设置Snackbar显示时间长短 1.1:Snackbar.LEN ...
随机推荐
- #请用索引取出下面list的指定元素:
#!/usr/bin/python # -*- coding: utf-8 -*- L = [ ['Apple', 'Google', 'Microsoft'], ['Java', 'Python', ...
- POJ 3977:Subset(折半枚举+二分)
[题目链接] http://poj.org/problem?id=3977 [题目大意] 在n个数(n<36)中选取一些数,使得其和的绝对值最小. [题解] 因为枚举所有数选或者不选,复杂度太高 ...
- sqlserver日志文件缩小
原文:sqlserver日志文件缩小 最近装了个500g的固态硬盘,导入我原来的数据库后发现有60多个G的内存不见了, 最后发现我的某个数据库有60多个G的日志文件(.ldf文件)文件, ...
- 【mybatis】时间范围 处理时间格式问题 + 查询当天 本月 本年 + 按当天 当月 范围 查询 分组
1.mybatis中查询时间范围处理: 例如2018-05-22 ~2018-05-23 则查出来的数据仅能查到2018-05-22的,查不到2018-05-23的数据! 为什么会这样? 明明时间字段 ...
- 【Linux】CentOS7上安装google谷歌浏览器
1.首先进入根目录,然后进入etc/yum.repos.d目录下,创建google-chrome.repo文件 cd / cd etc/yum.repos.d vim google-chrome.re ...
- OPENDJ的安装图文说明
一. 说明 介绍: opendj是一个ldap服务器 用于存储openam的配置和用户存储信息 准备工具: OpenDJ-3.0.0.zip 二. 安装步骤 a) Linux安装过程 1. 将zip包 ...
- Java中hashcode的理解
Java中hashcode的理解 原文链接http://blog.csdn.net/chinayuan/article/details/3345559 怎样理解hashCode的作用: 以 java. ...
- 怎样允许其他电脑连接本机MySQL
2017-04-20 1.***\bin\>MySQL -h localhost -u root -p 这样应该可以进入MySQL服务器 执行代码如下: MySQL>use mysql ...
- (总结)Linux下的暴力密码在线破解工具Hydra详解
(总结)Linux下的暴力密码在线破解工具Hydra详解 学习了:https://blog.csdn.net/yafeichang/article/details/53502869
- 简易高重用的jdbcutils工具封装实现类以及简易连接池实现
因为如今发现做个小项目都是导入n多的依赖包,非常烦琐,仅仅想快点开发完一个个的小需求项目,这个时候真心不想用框架,仅仅能自己写个jdbcutils,尽管网上有非常多有apache的,阿里的,可是感觉用 ...