android studio调试工具DDMS对当前应用线程分析字段含义

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31588719/article/details/79940505

最近在公司开发项目时候,由于后台给的是WebService接口,一般的请求框架都不能请求。如OkHttp,NoHttp,但是Retrofit可以,只是感觉有些麻烦,于是自己封装了一个简单的线程池,结合soap来完成接口请求这块。本以为自己的线程池封装的没有问题,结果用DDMS分析当前线程的时候,发现创建很多的现线程。。。咳咳,跑题了,主要是说下DDMS这个好用的调试工具分析线程时候的一些字段含义。。

打开DDMS,选择当前程序,有的同学会发现如图,选择了Thread会发现右边一片空白,并没有出现当前程序线程状态,只有一行英文。


那是因为你没勾选一个选项。看下图,依次点击左上角的Window------>Preference-------->Android-------->DDMS------>Thread updates enabled....把这个勾选上,保存后重新打开DDMS就可以看到了当前线程情况了.



1.ID:这个是虚拟机分配的唯一线程ID. 在 Dalvik, 该数字是一个从3开始的奇数。

2.Tid : Linux 线程 ID. 进程中主线程的ID, 会同进程的ID相匹配.

3.Status : 见名之意,这个是线程的状态,状态有好多种,其中守护进程会附带一个’*’.

    状态信息列表如下:

  1. running – executing application code  – 正在执行应用程序
  2. sleeping – called Thread.sleep()  – 执行了Thread.sleep() 方法
  3. monitor – waiting to acquire a monitor lock – 在正等待获取一个监听锁
  4. wait – in Object.wait() – 在Object.wait() 方法中
  5. native – executing native code  – 执行了原生代码
  6. vmwait – waiting on a VM resource – 正在等待一个虚拟机资源
  7. zombie – thread is in the process of dying  – 该线程已死
  8. init – thread is initializing (you shouldn’t see this) – 线程正在初始化 (你不会看到这个)
  9. starting – thread is about to start (you shouldn’t see this either) – 线程正在启动中 (这个你也不会看

4.utime:执行用户代码的累计时间,单位是ms

5.stime : 执行系统代码的累计时间,单位是ms

6.Name : 线程的名字

结语,幸好分析了一下当前应用的线程状况,发现的创建的很多多余的线程,十分浪费资源,耗电,影响app的流畅。

猜你喜欢

转载自blog.csdn.net/qq_31588719/article/details/79940505
今日推荐