微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 如何分析Android SystemServer Watchdog重启问题

如何分析Android SystemServer Watchdog重启问题

时间:10-02 整理:3721RD 点击:

[DESCRIPTION]

如何分析android SystEMServer Watchdog重启问题?

[SOLUTION]

1. Watchdog目的是监控系统几个比较主要的service,如果超过一定时间没有反应,认为系统出错,会强制重
启Android.
2. Watchdog原理:
/php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks/base/services/java/com/android/server/Watchdog.java
a) 首先SystemServer中的watchdog线程会向android.server.ServerThread线程发送一个
MONITOR message,同时将mCompleted标志位置为false.


b) 之后Watchdog线程Sleep 60秒(不包含系统睡眠的时间),如果mCompleted标志位不为true,则认为
发生watchdog超时,之后Android就会重启.
c) ServerThread收到这个消息后会依次执行之前每个Service Object的monitor()函数,当执行完后
会将mCompleted标志位置为true.


3. 具体分析方法:
a) 首先从eventlog中以watchdog为关键字搜索,记录下这个时刻。


b) 然后分析所有Service Object的monitor()为何在这个时刻之前1分钟内没有做完。
c) 后面具体的分析方法和ANR一样(不清楚的可以参考鄙司ANR FAQ或MOL视频):
ANR是某个AP的主线程在一段时间内没有做完某件事情。
Android Watchdog是SystemServer进程的ServerThread线程在一段时间内没有做完某件事情。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top