Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129096
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 338
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-19 17:33
文章分类
文章存档

2017年(2)

2014年(28)

我的朋友

分类: Android平台

2014-03-11 20:59:25

1.问题综述
KERNEL问题一般来说变现为下面四部分:
?驱动
?稳定性
?性能
?功耗

驱动就不用说了,一般涉及就是智能机外设调试。稳定性一般表现为平台的健壮性,是否会无故重启等各种偶然性现象。当然,偶然性现象深入分析,
也会存在必然的因果联系。性能问题一般表现问,系统响应速度。功耗问题一般就是待机最低功耗,和平均电流功耗。

2.分析工具
问题的分析离不开工具,展讯智能平台目前采用的LOG分析工具为SLOG,13A之后的版本都是SLOG功能比较完善的版本,大概的目录结构如下:

external_storage------对应T卡
internal_storage------对应手机U盘
常用的LOG存储介质为external_storage,因为空间大,但是如果本身SD卡挂载有问题的话,就必须选择internal_storage了

sysdump------kernel层级的LOG,分析此LOG工具主要是crash
coredump-------native层级的LOG,对应ANDROID的FRAMEWORK/JNI/HAL部分
hprofs-----JAVA堆,分析此LOG工具主要是DDMS

2.external_storage目录下的内容

拿到抓取的LOG分析的第一步,就是从external_storage中的misc开始分析,首先确定对应这份LOG的问题是否是一个KERNEL问题。
顺便说一下其他的几个目录代表的内容。CPx代表是哪个CPU,上面LOG的截图表示是双核CPU。kernel目录下存放的是KERNEL有
问题时候的LOG。进入MISC目录:

分析LOG的入口就是cmdline这个txt文档,打开此文档后搜索“androidboot.mode”,根据其后的赋值就可以确定出现
问题是否在kernel层级,其赋值一般是下面4类:
panic
watchdog
special
unkown
一般来说,panic, watchdog会导致reboot,毫无疑问是kernel层级的问题;如果是special则说明是framework层级
问题;unkown一般是应用层级【JAVA】问题。

3.打串口LOG
13A之后的版本,打串口LOG,不需要修改NV了,在KERNEL CONFIG中配置下面的宏开关:
?CONFIG_SERIAL_SPRD_UART_CONSOLE
就可以了;一般情况下,死机,功耗问题必须开串口LOG。

4.有用的在线调试手段
?lookat
?Ps
?Top
?Procrank
?strace

5.有用的kernel信息
?/proc/meminfo
?/proc/(进程号)/…
?/proc/interrupts
?/irq/(中断号)/…






阅读(3143) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~