热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

最近在公司开发项目时候,由于后台给的是WebService接口,一般的请求框架都不能请求。如OkHttp,NoHttp,但是Retrofi

最近在公司开发项目时候,由于后台给的是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的流畅。


推荐阅读
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 近来有一个需求,是需要在androidjava基础库中插入一些log信息,完成这个工作需要的前置条件有编译好的android源码具体android源码如何编译,这 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • Question该提问来源于开源项目:react-native-device-info/react-native-device-info ... [详细]
author-avatar
手机用户2602907455
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有