DDMS将搭建起IDE与测试终端(Emulator或者connected device)的链接,他们应用各自独立的端口监听调试信息,DDMS可以实时监测到测试终端的连接情况.当有新的测试终端连接后,DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的;
1:启动方法:SDK目录下took是目录 DDMS
2:查看内存信息:
第一步:选中要监测的进程
第二步:点击左上角的show heap updates
第三步:右边的VM Heap界面中点击Cause GC,我理解就是手动执行一次GC操作
第四步:查看data object那一行的Total Size值,这个值代表的意思就是当前进程中Java对象所占用的内存总量,通过这个值来判断是否内存泄露
判断依据:
1.不断在手机上执行一个可能存在内存泄露的功能,如果执行每一次Total Size的数值都在不断的增加,则可以判断该功能模块可能存在内存泄露
2.但是如果反复的执行被测试的功能,该数值在一个范围内来回的变动(而不是一直的变大),则可以判断该功能正常,不存在内存泄露的问题
3:log日志产生的异常情况(存放于data/log)
1,程序异常退出,uncausedexception (Fatal)
2,程序强制关闭,ForceClosed (简称FC) (Fatal
3,程序无响应,ApplicationNo Response(简称ANR)
anr出现的情况
A 界面操作按钮的点击等待响应时间超过5秒
B HandleMessage回调函数执行超过10秒,BroadcasterReciver里的onRecive()方法处理超过10秒
C 手动生成。
4:log每条信息都包含五个部分
1:time: 表示执行的时间,这个信息对于学习生命周期,分析程序运行的先后顺序特别有用
2:标题空白的列: 表示的log种类(信息种类)
3:pid 表示程序运行时的进程号
4:tag 标签,通常表示系统中的一些进程名,比如我们运行helloworld程序的话,就会看到activitymanager在运行。
5:Message 表示进程运行时的一些具体信息,比如我们运行helloworld程序的话,就会看到starting activity...helloWorld的字样
5:log的种类形式