android调试方法-强烈推荐.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
android调试方法-强烈推荐

Android系统debug经验总结姓名:_____胡清河_______部门:_____智能驱动_______日期:_____2012.11.17_______修订历史记录日期版本说明作者2012-11-19V1.0胡清河目录引言………………………………………………………………………………………………………………………..3常用查看系统状态和内存命令……………………………………………………………………………..3ANR…………………………………………………………………………………………………………………………7CRASH…………………………………………………………………………………………………………………….12Memory Analyer定位内存泄漏……………………………………………………………………………..14动态库死机调试方法……………………………………………………………………………………………..14Oops问题的调试和定位………………………………………………………………………………………..17引言Android系统是以linux内核为基础的一个框架,其实本质上就是一个linux操作系统,所以掌握linux系统对分析和调试android一些死机和重启问题致关重要,下面是本人常用的一些分析方法,和大家共享. 一起进步,享受美好生活,是我们每天所追求的.常用查看系统状态和内存命令cat/proc/meminfo查看系统内存信息,剩余内存 = MemFree + Buffers + CachedAndroid系统中杀程序的这个刽子手被称作LowMemory Killer,它是在Linux内核中实现的。这里它实现了一个机制,由程序的重要性来决定杀谁。通俗来说,谁不干活,先杀谁。Android将程序的重要性分成以下几类,按照重要性依次降低的顺序,可分为以下几种进程:名称Oom_adj解释Foreground app0前台程序Visible app1用户可见的程序Secondary app2后台服务,比如播放音乐Hidden app7后台被隐藏的程序Conent app14Content provider提供进程Empty app15空进程其中每个程序都会有一个oom_adj值,这个值越小,程序越重要,被杀的可能性越低。系统将根据剩余内存依次杀掉oom_odj高的进程来回收内存。有时候杀进程太频繁会引起ANR,因为杀进程引起的进程调度,进程上下文切换是需要很大开销的.Procrank查看系统中各进程内存占用情况? VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)? RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)? PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)? USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一般来说内存占用大小有如下规律:VSS = RSS = PSS = USSUSS才是进程真正占用内存的大小.定位某个应用内存泄漏时可用此命令观察。另外一个常用的命令是dumpsysdumpsysmeminfo dump所有进程占用内存详细信息dumpsysmeminfo–d piddump某个进程占用内存详细信息top可以查看进程或线程cpu占用率排名。用这个命令可以很快发现系统中是否存在死循环,cpu占用率高的进程/线程,快速定位到发生问题地方。top -m 12 查看cpu占用率前12的进程top -t –m 12 查看cpu占用率前12的线程vmstatvmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps,上下文切换数及CPU活动的信息. 用这个命令可以观察底层中断是否正常,比如在触摸屏按下的时候,应该会产生大量中断,看这个数目是否和正常时一样。Vmstat–d 1 ,每隔一秒种打印出系统信息,包括以下信息:进程  r: 运行队列中进程数量  b: 等待IO的进程数量  Memory(内存):  swpd: 使用虚拟内存大小  free: 可用内存大小  buff: 用作缓冲的内存大小swap   cache: 用作缓存的内存大小  si: 每秒从交换区写到内存的大小  so: 每秒写入交换区的内存大小  IO:(现在的Linux版本块的大小为1024bytes)  bi: 每秒读取的块数  bo: 每秒写入的块数  in: 每秒中断数,包括时钟中断。系统  cs: 每秒上下文切换数。  CPU(以百分比表示): 

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档