Android 常用Log日志分析

Activity创建显示关闭

ActivityTaskManager: START u0
wm_create_activity
Displayed
wm_finish_activity
system执行resume的日志:wm_set_resumed_activity
app的activity执行onResume的日志: wm_on_resume_called


Activity启动失败

ActivityStarterImpl: Error: Activity not started, unable to resolve Intent


ANR

am_anr
ANR in



崩溃

在崩溃日志Fatal > Crash > AndroidRuntime > Exception > Error 逐个搜索
FATAL EXCEPTION
beginning of crash
am_crash
native crash 看tombstone


进程被杀

Killing [进程Pid] isolated not needed(拉起的主进程被杀)
am_kill : [0,7355,com.android.xxx...]
am_proc_died: [0,7355,com.android.xxx...]
Zygote  : Process 7355 exited due to signal 9 (Killed)


进程启动

Zygote  : Forked child process [PID]
ActivityManager: Start proc [PID]


焦点
  

  Focus request日志代表请求焦点,日志如下:
     02-02 11:17:28  1326  1876 I input_focus: [Focus request a99a8b9 com.android.example/com.android.example.MainActivity,reason=UpdateInputWindows]
    02-02 11:17:28  1326  1876 I input_focus: [Focus request a99a8b9 com.android.example/com.android.example.MainActivity,reason=UpdateInputWindows]
    
    Focus entering日志代表当前activity对应的window获取成功焦点,日志如下:
     02-02 11:17:28  1326  2101 I input_focus: [Focus entering a99a8b9 com.android.example/com.android.example.MainActivity (server),reason=Window became focusable. Previous reason: NOT_VISIBLE]
    02-02 11:17:28  1326  2101 I input_focus: [Focus entering a99a8b9 com.android.example/com.android.example.MainActivity (server),reason=Window became focusable. Previous reason: NOT_VISIBLE]
    
    Focus leaving 代表当前activity失去焦点,日志如下:
     02-02 11:17:28  1326  2101 I input_focus: [Focus leaving a99a8b9 com.android.example/com.android.example.MainActivity (server),reason=NO_WINDOW]
    02-02 11:17:28  1326  2101 I input_focus: [Focus leaving a99a8b9 com.android.example/com.android.example.MainActiv

1. Introduction

解决问题通常分为以下几个步骤:

a) 确定问题,这是个什么样的问题,有什么外在表现;

b) 分析问题,根据log里面的蛛丝马迹,定位出问题的原因;

c) 对症下药,尽量用最少的代码解决问题,并确保不会引入新的问题;

d) 验证修改,把自己的修改导入,确保自己的修改起了作用,并已经彻底解决了问题,同时观察是否引入新的问题;

此文档主要面对的是几类问题:

a) 重启;   http://t.csdn.cn/ixhDo

b) 死机(定屏);

c) 开机;

d) 黑屏;

下面会介绍各个问题,但基本只会从理论上介绍如何分析,所以不要期望看了这个文档,你就能解决问题,这就像抓鱼一样,知道了如何抓鱼,不代表你能抓得到鱼;

2. 重启问题

重启问题分为两类,一类是内核重启(包含Modem重启),一类是上层重启,如何区分?

如果有震动,那么就是内核重启,反之则是上层重启;如果不记得有无震动,也可以通过开机时间来判断,设置里面可以看开机经过了多少时间,dmesg的输出也有时间标签;还可以通过ps看进程号来判断,如果zygote,servicemanager等的进程号比较小(一般100左右),那么通常是内核重启,否则就是上层重启;如果你没有看到现场,就只能通过Log来判断了,后面会说到。

2.1 上层重启

对于上层导致的重启,这个比较普遍,一般有watch dog导致的重启,需要进一步分析anr,一般是应用死锁导致的问题,很遗憾这里没有例子;还有一种常见的问题就是native crash。重启问题需要关注的就是时间点,一般在重启之前一定有异常的log,往上继续查找出现的异常,通常不远处就是系统重启的原因,并会打印出具体的栈信息。

如果是watch dog触发的重启,就需要分析anr里面的文件traces.txt,如果前面的进程名字不是system_server,通常意味着这个anr已经被覆盖了,这时候需要去dropbox里面找到对应时间的文件,里面会保

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值