`

DDMS查看Threads情况

 
阅读更多
DDMS查看Threads情况
原文地址:http://www.cnblogs.com/flyme/archive/2011/08/26/2154270.html
     有时候程序运行出现死锁或者信号量卡死是很纠结的问题,单看代码很难分析定位问题,这时候可以借助DDMS来查看threads的运行情况,一目了然。
     手机连接上USB,确保adb连通,然后启动Eclipse里的DDMS,这时候应该手机就正常连接上了
         
   就如上图中显示的,只要连接上了就可以查看某个进程里的所有线程的活动了; 下面具体解释下Threads标签页里给出的每个字段的意思:
ID:   虚拟机分配的唯一的线程ID,在Dalvik里,它们是从3开始的奇数。
Tid:linux的线程ID号
Stauts:线程状态,比较多,有下面的一些
             running:  正在执行程序代码
             sleeping:执行了Thread.sleep()
             monitor:等待接受一个监听锁。
             wait::Object.wait(),等待被其他线程唤醒
             native:正在执行native代码,
             vmwait:等待虚拟机,(这个不是很懂,高手指教,这个状态在什么情况下发生)
             zombie:线程在垂死的进程
             init:线程在初始化(我们不可能看到)
             starting:线程正在启动(我们不可能看到)
utime:执行用户代码的累计时间
stime:执行系统代码的累计时间
name:线程的名字

另外,右侧每个Thread选中之后可以在下面看到Refresh按钮,这个点了之后,可以看到线程的函数执行,结合Status可以知道目前情况;而出现问题时某个线程一般会变为monitor状态,这时候就要特别留意他,并refresh下,检查他的执行情况 ,再回头结合代码,一般都能找到问题出在什么地方;

【PS】,该文比较适合容易重现的问题;
分享到:
评论

相关推荐

    ddms 文件提取版 ,设置环境变量后 cmd - > ddms 即可

    1. **设备管理**:DDMS可以连接到运行Android系统的模拟器或物理设备,允许开发者查看设备状态,包括内存使用情况、电池状态、网络流量等。 2. **进程和线程监控**:开发者可以通过DDMS查看应用程序的进程和线程,...

    ddms单文件提取版

    在实际使用中,开发者可以通过"ddms单文件提取版"快速查看和分析应用的运行状态,比如通过日志cat来追踪错误信息,通过堆内存分析来优化内存使用,或者通过线程查看来解决线程同步问题。这款工具对于安卓开发者,...

    android_ddms.pdf

    - 在DDMS的主界面上方可以看到名为"Devices"的面板,这里可以查看所有与DDMS连接的终端的详细信息,包括终端ID、操作系统版本等。 - 每个终端正在运行的应用进程也会在此面板中列出,每个进程旁边标有与调试器相连的...

    DDMS 无法显示进程解决方案 mprop

    DDMS(Dalvik Debug Monitor Service)是Android开发者用于调试应用程序的重要工具,它提供了查看设备上的进程、线程、内存使用情况、堆栈跟踪以及接收广播等实用功能。然而,有时在使用过程中,开发者可能会遇到...

    006__android 之DDMS的使用

    DDMS提供了内存监控功能,包括查看堆内存分配、垃圾回收情况和内存泄漏检测。开发者可以使用它来分析内存使用情况,定位内存溢出问题。 4. **日志输出**: DDMS的日志查看器能够收集和显示系统日志(LogCat),这...

    android下如何调试程序,Eclipse使用DDMS

    - **查看线程列表**:通过DDMS可以查看应用程序的所有线程及其状态。 - **分析性能问题**:通过对线程的监控,可以发现潜在的性能瓶颈或死锁问题。 - **调整线程优先级**:某些情况下可能还需要调整线程的优先级以...

    关于在android当中DDMS的作用以及如何使用

    它能够帮助开发者进行一系列的操作,如查看正在运行的应用程序状态、监视CPU和内存使用情况、截取屏幕截图等。对于Android开发者而言,熟练掌握DDMS的使用方法是非常重要的。 #### 二、DDMS的主要功能 1. **进程...

    DDMS加文件出错

    DDMS是Android开发者用来调试应用、查看设备状态和模拟用户行为的一个重要工具,它允许开发者在模拟器或连接的设备上管理文件、查看内存使用情况、跟踪线程以及接收日志输出。 在描述中,虽然信息非常有限,但我们...

    EcliPse安装配置环境 DDMS使用

    EcliPse安装配置环境 DDMS使用 EcliPse是一款功能强大且广泛应用的集成开发环境(IDE),它提供了完善的开发工具和插件,支持多种编程语言。今天,我们将详细介绍如何安装和配置EcliPse环境,特别是使用DDMS...

    ddms_traceView.zip

    总结,"ddms_traceView.zip"中的"ddms5091614144790295234.trace"文件是针对Android应用CPU性能分析的重要工具,通过DDMS和TraceView的使用,开发者能够深入理解应用的运行情况,及时发现和解决性能问题,提升应用的...

    启动eclipse中的DDMS

    讲解如何在eclipse中启动DDMS,能够找到数据库文件等相关信息文件

    通过DDMS获取手机屏幕图片的java源码

    可以直接对手机截屏,速度很快,需要打开DDMS调试。 已包含需要的jar包。 对应的博客地址: http://blog.csdn.net/singleton1900/article/details/15808665

    DDMS简洁版,适合做测试不想安装厚重版软件的同学

    1. **日志查看**:DDMS可以显示来自设备或模拟器的logcat输出,这是开发者追踪应用程序运行时错误和调试信息的重要工具。通过过滤器,开发者可以选择关注特定的日志级别(如错误、警告或信息)或特定的应用程序标签...

    Samsung Galaxy Note3 Eclipse DDMS USB驱动

    这意味着在没有这个特定驱动的情况下,开发者可能无法在他们的电脑上通过Eclipse看到或与他们的Samsung Galaxy Note3手机进行交互。 【标签】"Note3 USB驱动"和"Note3 DDMS"进一步明确了这个驱动程序的作用,它是...

    Android应用源码之6.DDMS视图和Button.zip

    - **堆内存视图**:用于监测应用的内存使用情况,包括Dalvik堆信息,可以看到内存分配、回收的情况,帮助开发者定位内存泄漏问题。 - **线程视图**:展示应用中的所有线程,包括每个线程的状态,如运行、等待、...

    jdk1.8.0_144 for mac 支持DDMS的jdk1.8版本

    它可能在这里被提及,是因为在某些情况下,开发者可能需要结合JDK和IDA来分析或调试Java应用程序的底层机器码,尤其是在处理性能问题或安全漏洞时。 "DDMS"标签再次强调了这个JDK版本对Android开发者的重要性,因为...

    [Android开发从零开始].6.DDMS视图和Button

    在Android应用开发中,理解和掌握DDMS(Dalvik Debug Monitor Service)视图以及Button的使用是至关重要的。本文将深入探讨这两个核心概念,帮助初学者从零开始搭建Android开发的知识框架。 首先,让我们来了解DDMS...

    apn-ddms-filemange

    apn-ddms-filemange

    005_android 之DDMS中logcat的使用

    例如,它可以监控设备的内存使用情况,查看和管理设备上的文件系统,甚至模拟用户的行为,如发送按键事件或模拟位置改变。这些功能对于开发者来说都是非常实用的。 学习`DDMS`中的`logcat`使用,不仅可以提高调试...

Global site tag (gtag.js) - Google Analytics