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.mzph.cn/news/745888.shtml

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

相关文章

Mac-自动操作 实现双击即可执行shell脚本

背景 在Mac上运行shell脚本,总是需要开启终端窗口执行,比较麻烦 方案 使用Mac上自带的“自动操作”程序,将shell脚本打包成可运行程序(.app后缀),实现双击打开即可执行shell脚本 实现细节 找到Mac上 应用程序中的 自动操作&am…

Selenium 学习(0.20)——软件测试之单元测试

我又(浪完)回来了…… 很久没有学习了,今天忙完终于想起来学习了。没有学习的这段时间,主要是请了两个事假(5工作日和10工作日)放了个年假(13天),然后就到现在了。 看了下…

Apache Maven介绍|Maven安装

Apache Maven是一款流行的Java项目管理和构建工具,用于自动化构建过程,包括编译、测试、打包、依赖管理和发布等工作。以下是Maven安装步骤解析: 在Windows系统中安装Maven 下载Maven: 访问Maven官方网站(https://mav…

git基础命令(二)

目录 git revert 撤消上一次提交的更改但是会创建一个新的提交来撤消该提交所做的更改git show 显示提交详细信息git mv 重命名文件git rm 从工作树和索引中移除文件git clean 从工作树中移除未跟踪文件git checkout 将文件恢复到工作树git reset 撤销更改、移动 HEAD 指针以及…

Layer Normalization 算法 和 Batch Normalization 算法的 python实现

Layer Normalization 算法 import torch from torch import nnclass LN(nn.Module):# 初始化def __init__(self, normalized_shape, # 在哪个维度上做LNeps:float 1e-5, # 防止分母为0elementwise_affine:bool True): # 是否使用可学习的缩放因子和偏移因子super(LN, self…

【大模型系列】图片生成(DDPM/VAE/StableDiffusion/ControlNet/LoRA)

文章目录 1 DDPM(UC Berkeley, 2020)1.1 如何使用DDPM生成图片1.2 如何训练网络1.3 模型原理 2 VAE:Auto-Encoding Variational Bayes(2022,Kingma)2.1 如何利用VAE进行图像增广2.2 如何训练VAE网络2.3 VAE原理2.3.1 Auto-Encoder2.3.2 VAE编码器2.3.3 VAE解码器 3 …

一文解读ISO26262安全标准:术语(二)

一文解读ISO26262安全标准:术语(二) 本文继续补充一些标准中的术语,方便后续文章内容的有效理解。 分支覆盖率 branch coverage 控制流分支覆盖的比率. 100%分支覆盖率意味着100%语句覆盖率,比如,一个if语句…

速盾cdn:服务器ip能直接加cdn吗

速盾CDN(Content Delivery Network)是一种通过在全球各地部署服务器节点,将网站或应用的内容分发到离用户最近的节点上,从而加速网站的访问速度和提升用户体验的技术方案。那么,服务器IP能否直接与CDN配合使用呢&#…

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

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

CASIA-HWDB手写体数据集gnt生成为png格式

👑一、数据集获取 1.1 官方链接获取gnt文件 http://www.nlpr.ia.ac.cn/databases/download/feature_data/HWDB1.1trn_gnt.ziphttp://www.nlpr.ia.ac.cn/databases/download/feature_data/HWDB1.1tst_gnt.zip 1.2 百度网盘获取gnt文件 链接:https://pan.baidu.com/s/1pKa…

c++11 标准模板(STL)(std::locale)(五)用此 locale 的 collate 刻面以字典序比较两个字符串

用以封装文化差异的多态刻面的集合 std::locale 类型对象是不可变平面的不可变索引集。 C 输入/输出库的每个流对象与一个 std::locale 对象关联,并用其平面分析及格式化所有数据。另外, locale 对象与每个 std::basic_regex 对象关联。 locale 对象亦可…

Redis 的并发竞争问题是什么?如何解决这个问题?了解 Redis 事务的 CAS 方案吗?

目录 一、面试官心理分析 二、面试题剖析 一、面试官心理分析 这个也是线上非常常见的一个问题,就是多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了;或者是多客户端同时获取一个 key,修改值之后再写回…

KKVIEW: 远程控制软件哪个好用

远程控制软件哪个好用 随着科技的发展和工作方式的改变,远程控制软件越来越受到人们的关注和需求。无论是在家中远程办公,还是技术支持人员为远程用户提供帮助,选择一款高效稳定的远程控制软件至关重要。在众多选择中,有几款远程…

51-30 World Model | 自动驾驶的世界模型:综述

24年3月,澳门大学和夏威夷大学联合发布的工作,World Models for Autonomous Driving: An Initial Survey。花时间反复看了几遍,刚开始觉得世界模型没用,空洞无序,根本不可能部署到实车上,后面逐渐相信&…

idea 导入项目

idea 导入项目并运行 导入设置设置 jdk查看maven 设置 导入 在项目首页 或者 file 选择 open, 然后选择项目根路径 设置 设置 jdk 查看maven 设置

[Python学习]变量存储逻辑和垃圾回收机制(GC)

一、引子 首先,我们从两个例子入手垃圾回收机制: a 1000 b 2000 a b a 100 b 200 a b 这两段代码的功能都是“把b变量的值赋值给a变量”,但是在Python的底层逻辑上,这两段代码的实现过程确是有所不同的。 过程:第一段代码…

基于java实用的音乐软件微信小程序的设计与实现【附项目源码】分享

基于实用的音乐软件微信小程序的设计与实现: 源码地址:https://download.csdn.net/download/weixin_43894652/88842586 一、引言 随着移动互联网的普及和微信小程序的兴起,音乐类小程序成为了用户随时随地享受音乐的重要工具。本需求文档旨在详细阐述一…

基于单片机的大棚温湿度控制系统设计

摘要:现阶段我国的科学技术方面得到了快速的发展,各项社会事业的发展也都进行了智能化技术的应用,农业事业智能化发展在现如今时代发展进程中变得越来越重要了,如果能够实现对大鹏的温度和湿度进行有效且稳定的控制,能够实现现代的农业大棚高水平的发展,这对于我国整体的…

Python 实现一个简单的中文分词处理?

在Python中,实现一个简单的中文分词处理,我们可以采用基于规则的方法,比如最大匹配法、最小匹配法、双向匹配法等。但更常见且效果更好的是使用现有的分词库,如jieba分词。   以下是使用jieba分词库进行中文分词的简单示例: 安装jieba 首先,你需要安装jieba库。如果你…

【图解物联网】第零章 前言

前言 一、本博文的写作背景 这个寒假(准确的说应该是上个学期),作者通过厚脸皮以及社牛的性格,抱住了一位老师的大腿,并且通过寒假期间突击补习,成功得到老师的赏识,得以进组进一步学习各…