Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
前情提要(Previously)
本系列将使用 Android Studio 将《第一行代码》(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android Studio 作为开发 IDE 的同学开路。
PS:其实我就是现学现卖,希望我能坚持刷完。
在第一战中,我们创建了第一个App project, Hello World,并分析了项目结构,及运行原理。
链接在此:Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld
摘要(Abstract)
必备技能,使用日志工具 LogCat,并尝试解决真机调试没有日志的问题。
日志工具(LogCat)
日志在任何项目的开发过程中都会起到非常重要的作用,在 Android 项目中如果你想要查看日志则必须要使用 LogCat 工具。
在 Android Studio 最下方的 Status Bar 中找到 6:Android,点击她。如下图

LogCat 出现了,如下图

- 这里选择 Devices,当然一般来说不需要选择,如果只连接了一个设备的话。
- 这里选择 Log level,日志级别。包括:Verbose、Debug、Info、Warn、Error、Assert。以上级别依次升高。
- 这里选择过滤器,默认会自动生成一个过滤条件是 Package name 是项目包名的过滤器。
使用 LogCat
Android 中的日志工具类是 Log(android.util.Log),提供了如下的几个方法供我们打印日志。
- Log.v() 对应 Verbose
- Log.d() 对应 Debug
- Log.i() 对应 Info
- Log.w() 对应 Warn
- Log.e() 对应 Error
- Log.wtf() 在输出日志的同时,会把此处代码此时的执行路径(调用栈)打印出来。
介绍完毕,我们来演戏一下吧。打开 HelloWorldActivity,在 onCreat()方法中添加一行打印日志的语句,为了让日志明显一点我加了一些下划线,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);
Log.d("HelloWorldActivity","______________onCreate execute______________");
}
Log.d() 方法中传入了两个参数,第一个参数是 tag,一般传入当前的类名就好,主要用于对打印信息进行过滤。第二个参数是 msg,即想要打印的具体内容。
现在重新运行一下项目,点击工具栏中的绿色小箭头,或者按 Shift+F10。等程序运行完毕,使用模拟器的战友可能已经能看到日志了,如下图

使用真机的战友,可能看到的还是空荡荡的LogCat。需要做这么一件事,菜单栏 Tools → Android → Enable ADB Integration 把这个勾上,然后再次运行。
这次应该能看到日志了吧?看看能不能找到我们想要打印出来日志信息。过滤器中一定要选中 app:com.xxxx.helloworld 哦。如果有日志,但是找不到我们想要打印的日志 HelloWorldActivity: ______________onCreate execute______________,那么恭喜你,你用的真机貌似跟我的一样比较高端,是不是有什么黑科技。
我们来尝试解决这个问题。
- 手机的开发人员选项打开了么,其中的 USB 调试打开了么?搞定他们并重新运行,是否能找到我们的日志?否,转到 2。
- 日志中是否有这样
could not disable core file generation for pid 3963: Operation not permitted的信息么? 是,转到 3;否,那我也不知道怎么搞,或者你可以把日志贴到评论中我看看。 - 是华为手机么?是,转到 4;否,你可以参考 4 自己 Google Baidu 一下。
- 在拨号界面输入:
*#*#2846579#*#*进入测试菜单界面,然后
Project Menu → 后台设置 → LOG设置
LOG 开关 → LOG 打开 LOG 级别设置 → VERBOSE
Dump&Log → 全部选中
重启手机,重启 Android Studio。
PS:根据系统版本的不同,可能会有些许差异。
重启完毕,打开 Android Studio,运行项目,这下应该能找到我们的日志了。如果还没找到,对不起洗洗睡吧,我只能帮到这儿了。(或者你可以换个手机)
定制过滤器(Filter)
点击过滤器那个下拉框,选择 Edit Filter Configuration,在弹出的对话框中点击左上角的加号新创建一个 Filter。如下图

含义如下:
- Name:Filter 名称
- by Log Tag: 通过日志的 tag 过滤
- by Log Message:通过日志的 msg 内容过滤
- by Package Name:通过包名过滤
- by PID:通过PID过滤
- by Log Level:通过日志等级过滤
- regex:表示可以使用正则表达式进行匹配
以上过滤条件可以组合。
我建了一个data的过滤器,过滤条件是 tag 等于 data。将 Filter 选择为 data,我们的日志不见了,因为匹配不到 tag 等于 data 的日志。
现在去把我们在 onCreate() 方法中的日志的 tag 改为 data。如下所示:
Log.d("data","onCreate execute");
然后重新运行,将 Filter 选择为 data,我们的日志出现了。当然还可能会有一些奇奇怪怪的日志也出现了,仔细看看 tag 中都包含有 data。
抑制不住的好奇心
看看这个 Android Studio 最下方的 Status Bar,我们找到 LogCat 的地方,如下图

难道你们不好奇为什么 Android 前面有个 6 么?难道是因为用了 LogCat 你的 Android 开发水平就会 666666666?
不管发生什么事件,我相信真相只有一个,如下图:

OK,收工了。
其它(Miscellaneous)
尽管我试图在本文中尽量完整的进行描述,但受限于篇幅和我的个人水平,本文难免有所遗漏,欢迎在评论中指出。
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
关于作者(About Me)
addict
原文链接:http://www.cnblogs.com/DebugLife/p/4343570.html
本文谢绝转载,如需转载需征得作者本人同意,谢谢。
Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat的更多相关文章
- Android Studio 单刷《第一行代码》系列目录
前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...
- Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld
前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...
- Android Studio 单刷《第一行代码》系列 07 —— Broadcast 广播
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 06 —— Fragment 生命周期
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 03 —— Activity 基础
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- 【java学习系列】 Android第一本书《第一行代码》
开始Java的学习,从Android,开始吧.<第一代码>开始阅读和调试demo例子. 下面是 <第一行代码>的思维导图:
- Android Studio:Unable to add window android.view.ViewRootImpl$W@5e2d85a -- permission denied for this window 第一行代码
学习<第一行代码>的时候,出现的错误. java.lang.RuntimeException: Unable to start receiver com.example.sevenun.l ...
随机推荐
- 利用Python抓取CSDN博客
这两天发现了一篇好文章,陈皓写的makefile的教程,具体地址在这里<跟我一起写makefile> 这篇文章一共分成了14个部分,我看东西又习惯在kindle上面看,感觉一篇一篇地复制成 ...
- 【SMS】移动短信网关返回信息状态代码说明【China Mobile】
1 由SMSC返回的一般结果状态报告 含义 说明 处理建议DELIVRD 消息发送成功 用户成功接收到短信 ??EXPIRED 因为用户长时间关机或者不在服务区等导致的短消息超时没有递交到用户手机上 ...
- Java TCP异步数据接收
之前一直采用.Net编写服务端程序,最近需要切换到Linux平台下,于是尝试采用Java编写数据服务器.TCP异步连接在C#中很容易实现,网上也有很多可供参考的代码.但Java异步TCP的参考资料较少 ...
- Cache-control使用:header('Cache-control:private')
发布:thebaby 来源:net [大 中 小] 转自:http://www.jbxue.com/article/5624.html网页缓存由 HTTP消息头中的“Cache-contr ...
- 新浪博客如何显示高亮代码,DIY
新浪博客对代码的支持功能不尽完美,或者说一点都不好,可是对于一个追求完美的技术痴而言,代码不能够完美的显示,心里总有那么一些不爽,那么如何在新浪中显示那些带颜色的代码呢?经过探究,可以如下设置: ...
- C#从数据库读取数据到DataSet并保存到xml文件
using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.IO; pub ...
- 查看binlog文件的2种方式
1.使用show binlog events a.获取binlog文件列表 mysql> show binary logs; +------------------+-----------+ | ...
- Learning Scrapy笔记(五)- Scrapy登录网站
摘要:介绍了使用Scrapy登录简单网站的流程,不涉及验证码破解 简单登录 很多时候,你都会发现你需要爬取数据的网站都有一个登录机制,大多数情况下,都要求你输入正确的用户名和密码.现在就模拟这种情况, ...
- Android无法连接adb的解决方法
今天在折腾乐蛙时发现无法链接ADB了,但是手机却显示USB调试模式! 然后想起了大蛋曾经告诉我CM的解决方法,于是你懂得,俺差点就把菊花给卖了呢(/Д`)~゚。 adb shell rm -r /da ...
- C 解决百度知道的一个高中题
前言 今天看见一道百度知道上提问,是这样的. 仔细算了一下, 花了30min.才整出来了,估计现在回去参加高考,数学及格都悬.有时候想做这样的题有什么用, 学这些东西有什么意义,在这种方面浪费时间有什 ...