
和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、定屏死机问题抓取 Log 要求
二、 复现定屏死机问题后做什么
三、检查adb是否可连的方法
四、连接adb 抓取以下Log
五、如果adb不可连,执行下面操作
六、黑屏 dump 抓取方案
一、 定屏死机问题抓取 Log 要求
1.使用
debug版本插入4G及以上SD卡。2.测试前调整手机时间和电脑时间一致。
3.保留对应手机测试版本的 vmlinux 和 symbols 文件夹
symbols目录:
/out/target/product/XXX平台/symbols
vmlinux目录:/out/target/product/XXX平台/obj/KERNEL/vmlinux
二、 复现定屏死机问题后做什么
1.记录时间点
2.拍照,保留现场
3.检查adb是否可连
4.检查打电话是否能接通
三、检查adb是否可连的方法
手机连接USB,执行 adb devices,查看是否可以识别到设备ID,能成功识别,则表示adb可以连接,否则请查看 5037端口号是否被占用,建议退出各种手机助手,360安全卫士等软件,多次尝试一下方法。
adb kill-server
adb start-server
adb root
adb remount
adb devices
adb shell 1.adb kill-server
杀掉PC 端 adb 进程,防止 5037 断开被手机助手占用。
2.adb start-server
启动 PC adb 进程
3.adb root
获取root 权限
4.adb remount
挂载手机
5.adb devices
查看设备id
6.adb shell
看是否能进入adb shell,可进入则是adb可连反之不可连

adb 查看手机是否挂载成功截图
四、连接adb 抓取以下Log
1.点击
power键,抓取 按键事件的Kernellog
adb shell cat /proc/kmsg > kernel.log 2.抓一些
adb现场Log
adb logcat –v time > logcat.txt 3.抓取
Bugreport
//Android 7.0及以上
adb shell bugreport > bugreport.zip
//Android 5.0 6.0及以下
adb shell bugreport > bugreport.txt Bugreport抓取缓慢,需要等待 3分钟左右。
4.抓取
system_server的调用栈

抓取system_server 的调用栈信息
1.连接adb
adb shell 创建文件
touch /data/anr/traces.txt 3.修改文件权限
chmod 777 /data/anr/traces.txt** 4.切换root
su 5.查找system_server 进程id
ps -A | grep system_server 6.根据id杀掉system_server
kill -3 13691 7.截屏保留线程
/system/bin/screencap -p > /data/anr/screenshot.png 8.导出trace 信息
adb pull /data/anr/traces.txt . 9.如果是黑屏下定屏可以使用此命令检测是否可以点亮屏幕
echo on > /sys/power/state 导出
panic文件
触发panic后理论上手机重启会有以下两个文件保存在data中,adb 命令如下:
adb pull /data/dontpanic/apanic_console
adb pull /data/dontpanic/apanic_threads 五、如果adb不可连,执行下面操作
1.音量上+ 音量下+电源键(双击2次 )抓取 sysdump。
如果无效请看第二点(Kernel活着,软件重启触发Dump)
2.长按Power键7S触发dump(部分手机可用)
3.同时长按 音量上和 电源键 抓取sysdump(Kernel已死,硬件重启触发sysdump)
六、黑屏 dump 抓取方案
1.记录下问题发生的时间点
2.adb 是否可连
若可以连接,请执行如下命令
adb rootadb remountadb shell df >> df.txtadb shell b2g-ps --oom >> b2g_ps.txtadb shell b2g-info >> b2g-info.txtadb shell debuggerd -b xxx >> b2g_debuggerd.txt (xxx为b2g_ps.txt中记录的b2g进程号)adb shell screencap -p /data/1.pngadb shell getevent >> getevent.txt (此时请操作物理按键几次power,上下左右,enter等,看是否按键消息输出)adb shell screencap -p /data/2.pngadb logcat -v threadtime >> adb_logcat.txt (在logcat执行过程中,再操作几下按键)adb shell screencap -p /data/3.pngadb shell dumpsys SurfaceFlinger >sf.txtadb shell dumpsys window > window.txt 3.给测试机拨打电话看看是否反应?
参考文献:
【腾讯文档】Android Framework 知识库
https://docs.qq.com/doc/DSXBmSG9VbEROUXF5
友情推荐:
Android 开发干货集锦
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

点击阅读原文,为大佬点赞!