DDMS
1、什么是DDMS?
安卓开发环境当中提供的调试工具。
2、作用是什么?
通过DDMS可以查看指定进程中正在运行的线程信息、内存信息、内存分配以及为测试设备截屏查看Logcat日志等等。
3、如何打开?
方法一:AS中直接打开,需要先开启模拟器或连接手机,因为DDMS主要用于监控虚拟机(当使用AS开发应用时就通过方法一启动DDMS)
方法二:在SDK安卓路径下有可独立运行的程序,运行即打开(当已经开发好的应用在手机或模拟器上运行时,若出现停止运行的对话框可通过方法二查看运行日志)
4、有什么功能?
堆内存查看器Heap:若出现内存泄漏从而导致系统运行变慢或应用程序崩溃,为此,DDMS提供了内存检测工具------堆内存查看器,通过它可以检测一个正在运行的APP应用的内存变化,从而检测出某一个APP是否存在内存泄漏的可能。
步骤:打开模拟器,运行其中的一个应用程序,按照如下步骤执行:
通过查看data object就能查看内存是否泄露,判断方式:
进入该APP中反复进行操作,然后观察data object的Total Size,当每次单击Cause GC时,Total Size没有明显的回落反而越来越大,就说明该应用可能存在内存泄漏。
文件管理器File Explorer:管理虚拟机中的文件,可以导入或导出文件,按照如下步骤执行:
模拟器控制器Emulator Control:主要实现对模拟器的控制,通过模拟器可以实现拨打电话发送短信等功能。
屏幕截取Screen Capture
5、输出日志信息:
Log类的结构:
java.lang.Object
android.util.Log
Log类提供的方法(颜色对应 日志信息的颜色):
w():输出警告日志
i():输出程序中的说明性日志(普通信息)
e():输出错误日志
v():输出冗余日志
d():输出调试日志
比如:
private static String TAG="MainActivity";
在onCreate()方法中:
//第一个参数是定义的TAG,第二个参数是要输出的具体的日志信息
Log.e(TAG,"MR输出的【错误信息】");
然后运行程序后根据定义的TAG信息在DDMS中设置过滤器进行查找。
6、程序调试
方法一:使用AS编辑器调试
方法二:使用AS调试器调试Debugger
单步跳过Step Over(F8):运行单独的一行程序代码,但不进入执行这个方法的内部,然后跳到下一个可执行点。
单步跳入Step Into(F7):进入到调用方法或对象内部单步执行程序。
强制单步跳入:直接跳入所有被调用的方法。
单步跳出Step Out(Shift+F8):跳出当前进入的方法,重新返回到该代码中。
跳入下一个断点(Run to Cursor(Alt+F9)):用来跳入下一个断点,单击此按钮后该程序继续执行到下一断点,直至程序结束。