DDMS 使用小结
1.DDMS简介
DDMS的全称是Dalvik Debug Monitor Service。可以实现IDE与连接终端设备(包含仿真器与真机)的调试,DDMS可以实现查询终端设备运行状态,终端设备进程状态,线程状态,文件系统,日志信息(logcat)等。以及控制终端设备,完成一些操作。总的来说它是一款性能分析工具,可以帮助开发者快速了APP的运行情况。
2.DDMS功能详解
首先DDMS被分为三个部分。左上角为Device面板,详细罗列了与电脑相连的终端设备的信息。右上角为详细的功能选项卡,下方为日志信息以及终端信息.
2.1 Devices面板
这个面板包含了所有的与IDE相连的设备列表以及每个设备上运行的进程的列表,如下图所示:
显示进程时会显示进程ID(上图中online那一列显示的即是终端上运行的进程的ID) 以及与进程相关联的端口号,连接端口号从8600端口依次往下增加,8700是DDMS接收所有连接终端返回信息的端口,即是base端口。Devices面板顶端从左往右有多个按钮,下面一一分析这些按钮的功能
1. Debug: 实现使用DDMS对代码进行调试,使用该功能的前提是IDE中具有该运行进程的源代码,否则该按钮为灰色,功能无法使用.
2. Update heap: 实现对进程中的堆进行更新的操作。只有当选择这个按钮后,在右侧的功能面板中的heap选项卡中就能够看见当前进程的堆使用情况:
点击Cause GC 可以触发虚拟机的垃圾回收机制。
3. Dump HPROF file: 将当前进程堆使用情况生成文档,使用这个功能可以更加详细的分析当前堆的情况,有利于查找内存泄等问题。
4. Cause GC: 触发垃圾回收机制,可以点击后查看当前进程的堆使用情况
5. Update thread: 这个功能与update heap一样,当点击了这个按钮才能在右侧面板的thread选项卡中查看当前进程的所用的线程运行状态
6. Start Method Profiling: 开始进行方法分析。这个功能比较重要,后面单独写文章分析
7. Stop: 终止当前选中的进程。
8. Screen Capture: 截屏按钮,捕获当前设备的屏幕状态,该功能具有一定的延时
2.2 功能面板
功能面板从左到右有多个选项卡分别是:
1. Threads: 这个不必多说,表示当前进程中的所有线程状态。
2. Heap: 表示当前进程堆使用情况。
3. Allocation Tracker: 分配跟踪器,后面单独写文章分析
4. NetWork Statistics: 网络分析功能。
5. File Explorer: 浏览终端的文件系统,进行文件相关操作。在这里面可以进行将外部文件导入到终端中,或者将终端文件导出,或者删除终端文件,具体操作是右上角三个按钮:
文件操作还是比较重要的,比如一个应用涉及到了SQLite数据库使用,此时可以使用这个功能,导出数据库文件单独分析
6. Emulator Control: 可以实现往模拟器中打电话,发送短信,发送地理位置坐标等功能。有了AndroidStudio 如果启动了模拟器,可以直接在模拟器上实现相关信息的发送而不需要借助于DDMS
7. System Information: 这个选项卡里面可以查看终端的CPU负载以及内存使用情况。具体的试过就知道了。
2.3 LogCat and Console
这一部分就是系统运行产生的日志信息以及终端打印的信息。比较关心的还是LogCat。
这里的LogCat 与AndroidStudio中的LogCat是一样的。使用LogCat可以根据程序中的运行日志判断当前程序运行的状态。终端设备一般运行较多的进程,每个进程运行都有大量的日志产生。因此一般需要使用过滤器过滤其他进程信息。过滤器在Saved Filter中的以添加过滤器:
如果指定要观察某一个进程的日志信息,那过滤器就使用PID(进程ID)进行过滤即可,进程ID可以在Devices面板中得到,过滤的等级根据自己代码中写的等级酌情考虑,这样就能够实现只是观察一个进程的日志信息。
DDMS 使用小结的更多相关文章
- 【转】android SDK中的ddms使用详解
一.查看线程信息1.展开左侧设备节点,选择进程: 2.点击更新线程信息图标: 注意:如果你没有运行或调试程序的话,这些图标是不可用的! 3.右侧选择“Threads”标签: 二.查看堆栈信息1.展开左 ...
- 从零开始编写自己的C#框架(26)——小结
一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...
- Python自然语言处理工具小结
Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...
- java单向加密算法小结(2)--MD5哈希算法
上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...
- iOS--->微信支付小结
iOS--->微信支付小结 说起支付,除了支付宝支付之外,微信支付也是我们三方支付中最重要的方式之一,承接上面总结的支付宝,接下来把微信支付也总结了一下 ***那么首先还是由公司去创建并申请使用 ...
- iOS 之UITextFiled/UITextView小结
一:编辑被键盘遮挡的问题 参考自:http://blog.csdn.net/windkisshao/article/details/21398521 1.自定方法 ,用于移动视图 -(void)mov ...
- K近邻法(KNN)原理小结
K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出 ...
- scikit-learn随机森林调参小结
在Bagging与随机森林算法原理小结中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结.本文就从实践的角度对RF做一个总结.重点讲述scikit-learn中RF的调参注 ...
- Bagging与随机森林算法原理小结
在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...
随机推荐
- sklearn的train_test_split
train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签. 格式: X_train,X_test, y_train, y_test ...
- 【车联网T-BOX】基于CANoe实现的远程服务业务自动化测试方案
为满足项目过程中不同阶段绝大部分测试需求,更方便快捷构造测试场景,支持异常场景测试.更早介入,不依赖周边ECU的稳定情况,专注于被测ECU.更经济,不加油,不充电,时间节省,物料节省等维度考虑.我们需 ...
- 1.使用frp穿透内网
1.前因后果 1.1弃用ngrok 为节约服务器成本,花了500多块买了一个华为云得1G 1核心 5M得云服务器.然后用ngrok来穿透内网.一直用得还 但是今天在弄nginx得时候发现 ngrok ...
- tomcat各文件夹及作用
1.bin目录:这个文件夹包含的是启动/关闭tomcat的脚本 2.conf目录:主要是用来存放一些Tomcat的配置文件,都是一些.xml部署文件,其中重要的有: server.xml:是Tomca ...
- 用代码如何检测一个android程序是否在运行
/** * 检测一个android程序是否在运行 * @param context * @param PackageName * @return */ public static boolean is ...
- 宜人贷项目里-----正则匹配input输入月份规则
在标签上可以直接进行校验如下,如果只调数字键盘type=number不好用可以用type=tel <input name="creditDate" oninput=" ...
- 九度oj 1003 A+B 2010年浙江大学计算机及软件工程研究生机试真题
题目1003:A+B 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:12812 解决:5345 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号",&qu ...
- Bash编程(3) 命令行解析与扩展
$@表示脚本输入的全部参数,在bash脚本中,若$@增加引号("$@"),则包含空格的参数也会被保留,若不增加引号($@),则包含空格的参数会被拆分. 例: # sa脚本内容如下: ...
- Windows加密API的层次
Windows平台下的应用程序可以分为托管的.NET程序和本机的Win32(以及Win64)两大类..NET有着类似于JAVA的虚拟机和二进制码托管运行环境,提供了在不同Windows平台上的代码可携 ...
- [java源码解析]对HashMap源码的分析(一)
最近有空的时候研究了下HashMap的源码,平时我用HashMap主要拿来当业务数据整理后的容器,一直觉得它比较灵活和好用, 这样 的便利性跟它的组成结构有很大的关系. 直接开门见山,先简要说明一下H ...