Android studio 性能调试

一、概述

        Android studio 的Profiler可用来分析cpu和memory问题,下来进行说明介绍

二、Android studio CPU调试

从开发模拟器或设备中启动应用程序;

在 Android Studio 中,通过选择View > Tool Windows > Profiler启动分析器。

应用程序启动后,单击 + 分析器中的按钮以查看下拉菜单。选择设备,然后在其他可分析进程下选择应用程序的条目。

选择监测CPU,可以看到线程和CPU占用信息

官网解释:

  1. 事件时间线:显示应用程序中在生命周期中不同状态之间转换的活动,并指示用户与设备的交互,包括屏幕旋转事件。有关在运行 Android 7.1(API 级别 25)及更低版本的设备上启用事件时间线的信息,请参阅 启用高级分析。
  2. CPU 时间线:显示应用程序的实时 CPU 使用情况(占总可用 CPU 时间的百分比)以及应用程序正在使用的线程总数。时间线还显示其他进程(例如系统进程或其他应用程序)的 CPU 使用情况,因此您可以将其与应用程序的使用情况进行比较。您可以通过沿着时间线的水平轴移动鼠标来检查历史 CPU 使用率数据。
  3. 线程活动时间线:列出属于您的应用程序进程的每个线程,并使用下面列出的颜色沿着时间线指示其活动。记录跟踪后,您可以从此时间线中选择一个线程,以在跟踪窗格中检查其数据。
    • 绿色:线程处于活动状态或准备好使用 CPU。也就是说,它处于正在运行或可运行状态。
    • 黄色:线程处于活动状态,但正在等待 I/O 操作(例如磁盘或网络 I/O),然后才能完成其工作。
    • 灰色:线程正在休眠,不消耗任何 CPU 时间。当线程需要访问尚不可用的资源时,有时会发生这种情况。线程要么进入自愿睡眠状态,要么内核将线程置于睡眠状态,直到所需的资源可用。

    CPU Profiler 还报告 Android Studio 和 Android 平台添加到应用程序进程中的线程的 CPU 使用情况,例如JDWP、 Profile SaverStudio:VMStats、 Studio:PerfaStudio:Heartbeat(尽管线程活动时间线中显示的确切名称可能有所不同)。Android Studio 会报告此数据,以便您可以确定线程活动和 CPU 使用率实际上是由应用代码引起的。

三、Android studio Memory调试

选择监测memory:

官网说明:

  • Java: Memory from objects allocated from Java or Kotlin code.
  • Native: Memory from objects allocated from C or C++ code.

    Even if you're not using C++ in your app, you might see some native memory used here because the Android framework uses native memory to handle various tasks on your behalf, such as when handling image assets and other graphics—even though the code you've written is in Java or Kotlin.

  • Graphics: Memory used for graphics buffer queues to display pixels to the screen, including GL surfaces, GL textures, and so on. (Note that this is memory shared with the CPU, not dedicated GPU memory.)

  • Stack: Memory used by both native and Java stacks in your app. This usually relates to how many threads your app is running.

  • Code: Memory that your app uses for code and resources, such as dex bytecode, optimized or compiled dex code, .so libraries, and fonts.

  • Others: Memory used by your app that the system isn't sure how to categorize.

  • Allocated: The number of Java/Kotlin objects allocated by your app. This does not count objects allocated in C or C++.

    When connected to a device running Android 7.1 and lower, this allocation count starts only at the time the Memory Profiler connected to your running app. So any objects allocated before you start profiling are not accounted for. However, Android 8.0 and higher includes an on-device profiling tool that keeps track of all allocations, so this number always represents the total number of Java objects outstanding in your app on

四、Android studio logcat调试

点击如下红框进行logcat调试:

过滤条件:

//输入package:(输入一个p就会有提示的) ,+ 你的包名 package:com.test.test

// 输入level: ,后面加上等级,如info,debug,warning等 // 当等级为Info时,过滤Info及以上的日志 level:debug

// 输入tag: ,后面跟上你要过滤的TAG,此功能同老版本的AS tag:TAG

// 输入message: +过滤的关键字 message:KW

 详细可 参考官网:

Profile your app performance  |  Android Studio  |  Android Developers

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/540058.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp遇到的问题

【uniapp】小程序中input输入框的placeholder-class不生效解决办法 解决:写在scope外面 uniapp设置底部导航 引用:https://www.jianshu.com/p/738dd51a0162 【微信小程序】moveable-view / moveable-area的使用 https://blog.csdn.net/qq_36901092/…

upload文件上传漏洞复现

什么是文件上传漏洞: 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。“…

linux sshd_config配置说明

[root01 ssh]# cat sshd_config #######################SSH Base Config################## #######通过OpenSSH工具入xshell连接默认端口 可以改成其他默认是22 PAM 认证过程 1)使用者执行/usr/bin/passwd程序,并输入密码。 2)passwd开…

AntV L7的填充图

本案例使用L7库和Mapbox GL JS绘制填充图。 文章目录 1. 引入 CDN 链接2. 引入组件3. 创建场景4. 绘制填充图4.1. 获取数据4.2. 定义颜色数组4.3. 创建多边形图层4.4. 创建线图层4.5. 添加图层4.6. 绘制填充图代码 5. 演示效果6. 代码实现 1. 引入 CDN 链接 <script src&quo…

什么牌子的台灯好用不伤眼?明基、柏曼、书客护眼台灯深度测评对比

近年来&#xff0c;青少年儿童近视问题越来越严重了&#xff0c;而且近视也在持续升高&#xff0c;不少年纪很小的孩子已经戴上了厚厚的近视眼镜。很多家长会选择给孩子备上一台光源舒适的台灯&#xff0c;不过在这也要提醒大家&#xff0c;在挑选过程中一定要多加留意&#xf…

为什么手机和电视ip地址不一样

在数字化时代&#xff0c;我们每天都会与各种电子设备打交道&#xff0c;其中最常见的就是手机和电视。当我们连接到互联网时&#xff0c;这些设备都会被分配一个独特的IP地址&#xff0c;用于在网络上进行标识和通信。然而&#xff0c;您可能已经注意到&#xff0c;即使手机和…

MQTT.fx实现(MQTT Client)连接物联网平台(ThingsCloud )

目录 概述 1 ThingsCloud平台介绍 2 ThingsCloud创建项目 2.1 创建项目 2.2 创建数据类型 2.3 创建设备类型 3 发布和订阅主题 3.1 发布Topic 3.2 订阅主题Topic 4 使用MQTT.fx 测试ThingsClond 4.1 使用MQTT.fx连接ThingsClond 4.2 MQTT.fx 订阅ThingsCloud Messag…

深度学习_GoogLeNet_4

目标 知道GoogLeNet网络结构的特点能够利用GoogLeNet完成图像分类 一、开发背景 GoogLeNet在2014年由Google团队提出&#xff0c; 斩获当年ImageNet(ILSVRC14)竞赛中Classification Task (分类任务) 第一名&#xff0c;VGG获得了第二名&#xff0c;为了向“LeNet”致敬&#x…

linux中netstat命令详解及常见用法

在Linux使用过程中&#xff0c;需要了解当前系统开放了哪些端口&#xff0c;并且要查看开放这些端口的具体进程和用户&#xff0c;可以通过netstat命令进行简单查询 1.netstat命令各个参数说明 -a 或–all 显示所有连线中的Socket。 -A …

2024-3-13高位分歧

今天的盘面早盘低位的AIGC和信创一致转分歧&#xff0c;低空经济和算力分歧加剧&#xff0c;老周期的每个小龙头资金开始撤离&#xff0c;立航科技 早上还在表演给了昨天接力的老师大肉机会&#xff0c;今天被骗上车的人属于傻白甜了&#xff1b;中电兴发 早上分歧挡刀功臣&…

【AI+CAD】(二)LLM和VLM生成结构化数据结构(PPT/CAD/DXF)

当前LLM和VLM在PPT生成任务上已经小有成效,如ChatPPT。 @TOC 1. PPT-LLM LLM根据用户的instruction生成规范的绘制ppt的API语句:即使是最强的GPT-4 + CoT也只能达到20-30%的内容准确度。 LLM输入:User_instruction(当前+过去)、PPT_content、PPT_reader_API。其中 PPT_rea…

【UE5】持枪状态站立移动的动画混合空间

项目资源文末百度网盘自取 创建角色在持枪状态站立移动的动画混合空间 在BlendSpace文件夹中单击右键选择动画(Animation)中的混合空间(Blend Space) 选择SK_Female_Skeleton 命名为BS_RifleStand 打开 水平轴表示角色的方向&#xff0c;命名为Direction&#xff0c;方…