Android命令行工具(2)——DDMS

简介: DDMS全称Dalvik Debug Monitor Service,功能很是强大,可以用来截取连接的设备或虚拟机屏幕,可以查看正在运行的进程的堆和线程信息,可以模拟电话拨打、短信发送,虚拟设置地理位置,还包括文件浏览器,内存分配跟踪等。

DDMS全称Dalvik Debug Monitor Service,功能很是强大,可以用来截取连接的设备或虚拟机屏幕,可以查看正在运行的进程的堆和线程信息,可以模拟电话拨打、短信发送,虚拟设置地理位置,还包括文件浏览器,内存分配跟踪等。本文继续结合官方文档,主要介绍一些关于DDMS的用法。(下图是通过Eclipse启动的DDMS)



启动DDMS

有两种启动方式:

一是在命令行定位到sdk安装路径的tools目录下启动;

还有就是在Eclipse中,点Window>Open Perspective>Other>DDMS

值得注意的是通过这两种方式启动的DDMS是有一点差异的,不过整体功能大体类似,可以比照一下。(下图是通过命令行启动的。)


具体用法(这里以在Eclipse中启动的DDMS为例):


查看进程的堆使用情况:

1.在DDMS的左侧视图中,选择要查看的进程。

2.然后点击上方的Update Heap按钮。

3.在右侧点Heap,就可以看到该进程分配的对内存大小和使用的对内存大小等。

4.还可以通过点击下面列表的中的type,来查看Allocation count per size


查看对象的实时内存分配情况:

1.在DDMS的左侧视图中,选择要查看的进程。

2.在右侧的Allocation Tracker标签页,单击Start Tracking按钮开始追踪对象的内存分配。

3.单击Get Allocations按钮查看从单击Start Tracking按钮到目前为止产生的对象,具体信息还包括对象所在的类和线程等。再单击Get Allocations按钮会查看新产生的对象。

4.单击Stop Tracking按钮,可以停止追踪。

5.通过单击列表中的某一项,还可以查看更详细的信息,比如对象所在的类、方法和文件等。


屏幕捕捉:

可以通过点击DDM的左侧视图的上方的Screen Capture按钮,来显示当前的设备或模拟器的屏幕。


使用文件浏览器:

通过点击右侧的File Explorer,可以查看、删除、复制设备或模拟器中的文件。并且可以通过点击Pull File将设备或模拟器上的文件复制下来,而向设备上传送文件可以通过点击Push File按钮。


查看进程的线程信息:

可以通过在DDMS左侧的试图中选择感兴趣的进程,然后点上方的Update Threads来在右侧的Threads标签页中,查看线程信息,包括线程ID、状态、名称等信息。


进行函数剖析(method profiling

通过函数剖析,可以查看函数在某段时间内被调用的次数、执行的时间等信息。

还有点需要注意的是,对于函数剖析功能,Android1.5是不支持的,Android2.1和之前的版本必须要有SD卡,并且程序具有向SD卡的写权限,Android2.2和之后的版本则不需要


使用LogCat

可以在程序中,通过使用Log类来向LogCat打印信息。


模拟手机操作和定位

可以通过DDMSEmulator Control标签页来向模拟器发送短信,拨打电话,设置经纬度等。


另请参看:

http://developer.android.com/guide/developing/debugging/ddms.html

相关文章
|
Shell Android开发
解决Android的adb命令行报错Permission denied
解决Android的adb命令行报错Permission denied
1407 0
解决Android的adb命令行报错Permission denied
|
3月前
|
缓存 测试技术 Shell
详细解读Android开发命令行完全攻略
详细解读Android开发命令行完全攻略
46 1
|
数据可视化 开发工具 Android开发
【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
285 0
【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
|
3月前
|
缓存 测试技术 Shell
详细解读Android开发命令行完全攻略
详细解读Android开发命令行完全攻略
30 0
|
11月前
|
SQL 人工智能 移动开发
Android Logcat 命令行工具
Logcat 是一个命令行工具,用于转储系统消息日志,包括从您的应用使用 Log 类写入的消息。 logcat还是比较简单的,我们在此只记录一下我们日常工作可能会用的比较多的一些用法。
Android Logcat 命令行工具
|
11月前
|
SQL 人工智能 Java
Android 命令行工具简介
Android SDK 中包含了开发应用所需的多个软件包。本页列出了可供使用的最重要的命令行工具(按提供这些工具的软件包整理)。
|
Java Android开发
命令行生成Android jks签名文件并获取jks信息
命令行生成Android jks签名文件并获取jks信息
526 0
|
开发工具 Android开发
【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )
【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )
666 0
【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )
|
Java Android开发 Kotlin
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
425 0
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
|
Android开发
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
201 0
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )