当前位置: 首页 > news >正文

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

相关文章:

Android studio 性能调试

一、概述 Android studio 的Profiler可用来分析cpu和memory问题,下来进行说明介绍。 二、Android studio CPU调试 从开发模拟器或设备中启动应用程序; 在 Android Studio 中,通过选择View > Tool Windows > Profiler启动分析器。 应…...

java8特性 stream流中map函数的使用

map 函数的作用就是针对管道流中的每一个数据元素进行转换操作。 例如 将集合中的每一个字符串&#xff0c;全部转换成大写&#xff01; List<String> collect alpha.stream().map(String::toUpperCase).collect(Collectors.toList()); //上面使用了方法引用&#xf…...

【Emgu CV教程】9.5、形态学常用操作之形态学梯度

文章目录 一、相关概念1.什么叫形态学梯度2.形态学梯度的函数 二、演示1.原始素材2.代码3.运行结果 一、相关概念 1.什么叫形态学梯度 形态学梯度&#xff0c;就是用膨胀的原始图像减去腐蚀的原始图像&#xff0c;所以它的特性就是去除前景物体的内部区域&#xff0c;只得到前…...

算法笔记之蓝桥杯pat系统备考(2)

算法笔记之蓝桥杯&pat系统备考&#xff08;1&#xff09; 文章目录 五、数学问题5.2最大公约数和最小公倍数5.2.1最大公约数5.2.2最小公倍数 5.3分数的四则运算5.3.1分数的表示与化简5.3.2分数的四则运算5.3.3分数的输出 5.4素数&#xff08;质数&#xff09;5.4.1[素数的…...

基于SpringBoot+Druid实现多数据源:注解+编程式

前言 本博客姊妹篇 基于SpringBootDruid实现多数据源&#xff1a;原生注解式基于SpringBootDruid实现多数据源&#xff1a;注解编程式基于SpringBootDruid实现多数据源&#xff1a;baomidou多数据源 一、功能描述 配置方式&#xff1a;配置文件中配置默认数据源&#xff0c…...

已解决org.apache.zookeeper.KeeperException.BadVersionException异常的正确解冲方法,亲测有效!!!

已解决org.apache.zookeeper.KeeperException.BadVersionException异常的正确解冲方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 总结 博主v&#xff1a;XiaoMing_Java 问题分析 在使用Apache ZooKeeper进行…...

数据结构:堆

堆的概念 1.堆是一个完全二叉树 2.小堆(任何一个父亲<孩子),大堆(任何一个父亲>孩子) 堆的结构 物理结构:数组 逻辑结构:二叉树 #pragma once #include<assert.h> #include<iostream> typedef int HPDataType; typedef struct Heap {HPDataType* _a;int…...

CSS中三栏布局的实现

三栏布局一般指的是页面中一共有三栏&#xff0c;左右两栏宽度固定&#xff0c;中间自适应的布局&#xff0c;三栏布局的具体实现&#xff1a; 利用绝对定位&#xff0c;左右两栏设置为绝对定位&#xff0c;中间设置对应方向大小的margin的值。 .outer {position: relative;h…...

Linux搭建我的世界(MC)整合包服务器,All the Mods 9(ATM9)整合包开服教程

Linux使用MCSM面板搭建我的世界(Minecraft)整合包服务器&#xff0c;MC开服教程&#xff0c;All the Mods 9(ATM9)整合包搭建服务器的教程。 本教程使用Docker来运行mc服&#xff0c;可以方便切换不同Java版本&#xff0c;方便安装多个mc服版本。 视频教程&#xff1a;https:…...

让数据在业务间高效流转,镜舟科技与NineData完成产品兼容互认

近日&#xff0c;镜舟科技与NineData完成产品兼容测试。在经过联合测试后&#xff0c;镜舟科技旗下产品与NineData云原生智能数据管理平台完全兼容&#xff0c;整体运行高效稳定。 镜舟科技致力于帮助中国企业构建卓越的数据分析系统&#xff0c;打造独具竞争力的“数据护城河”…...

2.1HTML5基本结构

HTML5实际上不算是一种编程语言&#xff0c;而是一种标记语言。HTML5文件是由一系列成对出现的元素标签嵌套组合而成&#xff0c;这些标签以<元素名>的形式出现&#xff0c;用于标记文本内容的含义。浏览器通过元素标签解析文本内容并将结果显示在网页上&#xff0c;而元…...

设置浏览器显示小于12px以下字体

问题 我们在项目开发过程中有时候会遇到设计师给的小于12px的字体&#xff0c;IE、火狐浏览器、移动端等小于12px的字号大小还是可以正常显示的&#xff0c;但是谷歌浏览器上显示字体最小为12px&#xff0c;css设置font-size&#xff1a;10px&#xff0c;运行代码显示结果仍然…...

web蓝桥杯真题:成语学习

代码&#xff1a; //TODO 点击文字后&#xff0c;在idiom从左到右第一个空的位置加上改文字 getSingleWord(val) {let index this.idiom.indexOf() //从左往右查询空字符串this.$set(this.idiom, index, val) //响应式更新 },// TODO 校验成语是否输入正确答案 confirm…...

外包干了5天,技术明显退步。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入南京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…...

Vue:自定义消息通知组件

一、效果描述 在JS中使用一个Message函数&#xff0c;弹出一个自定义的消息框。 效果体验&#xff1a;缓若江海凝清光 二、实现方式 1.新建一个消息组件 2.新建一个js文件&#xff0c;新建一个需要导出函数 3.在函数中新建一个Vue实例&#xff0c;并将消息组件挂载上去。…...

2023 收入最高的十大编程语言

本期共享的是 —— 地球上目前已知超过 200 种可用的编程语言&#xff0c;了解哪些语言在 2023 为开发者提供更高的薪水至关重要。 过去一年里&#xff0c;我分析了来自地球各地超过 1000 万个开发职位空缺&#xff0c;辅助我们了解市场&#xff0c;以及人气最高和收入最高的语…...

Github 2024-03-11 开源项目周报 Top15

根据Github Trendings的统计&#xff0c;本周(2024-03-11统计)共有15个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4TypeScript项目3Jupyter Notebook项目3C#项目1HTML项目1CSS项目1Dart项目1Lua项目1Shell项目1Rust…...

【DAY10 软考中级备考笔记】数据结构 图

数据结构 图 3月11日 – 天气&#xff1a;晴 晚上无线网络突然不能用了&#xff0c;花费好久弄这个&#xff0c;耽误了一些时间 1. 图的定义 这里需要注意完全图的定义&#xff0c;以及完全图的边数 这里需要注意连通图和连通分量的概念。 2. 图的存储结构 图有两种存储结构&a…...

java-ssm-jsp基于java的餐厅点餐系统的设计与实现

java-ssm-jsp基于java的餐厅点餐系统的设计与实现 获取源码——》公主号&#xff1a;计算机专业毕设大全...

蓝桥杯(1):python排序

1 基础 1.1 输出 1.1.1 去掉输出的空格 print("Hello","World",123,sep"") print("hello",world,123,sep) print(hello,world,123) #输出结果 #HelloWorld123 #helloworld123 #hello world 123 1.1.2 以不同的方式结尾 print(&quo…...

茉莉花插件:3分钟搞定Zotero中文文献管理的完整指南

茉莉花插件&#xff1a;3分钟搞定Zotero中文文献管理的完整指南 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 还在为Zotero无法…...

EinDecomp:基于爱因斯坦求和与张量关系代数的自动张量并行分解算法

1. 项目概述&#xff1a;从张量计算的并行困境到EinDecomp的破局思路如果你深度参与过大规模机器学习模型的训练或高维科学计算&#xff0c;一定对“并行”这个词又爱又恨。爱的是&#xff0c;它几乎是处理海量数据和复杂模型的唯一出路&#xff1b;恨的是&#xff0c;为了实现…...

保姆级教程:用Python+Plotly可视化分析ROS机器人地图分区算法(附代码)

从零实现ROS地图分水岭算法&#xff1a;PythonPlotly动态可视化实战当你第一次看到机器人构建的二维栅格地图时&#xff0c;那些黑白相间的像素块可能只是冰冷的数字矩阵。但在地图分区算法的视角下&#xff0c;每个像素的高度值都代表着"水位"的涨落&#xff0c;而整…...

别再为DBSCAN调参发愁了!用Python的sklearn轻松上手OPTICS聚类(附实战代码)

用OPTICS算法告别DBSCAN调参噩梦&#xff1a;Python实战全解析当面对不规则形状或密度不均的数据集时&#xff0c;密度聚类算法往往能大显身手。DBSCAN作为其中最著名的代表&#xff0c;却让无数数据科学家又爱又恨——它的表现极度依赖两个关键参数ε和MinPts的选择&#xff0…...

基于注意力机制LSTM的孟加拉语新闻生成式摘要模型构建与实践

1. 项目概述&#xff1a;为什么孟加拉语新闻摘要值得投入&#xff1f;每天&#xff0c;我们都被海量的信息所淹没。对于孟加拉语使用者而言&#xff0c;从新闻网站获取信息时&#xff0c;常常需要花费大量时间阅读长篇文章&#xff0c;才能提取出核心事件。传统的抽取式摘要方法…...

LLM多智能体驱动微服务自治:从架构设计到Sock Shop实战评估

1. 项目概述&#xff1a;当微服务遇见大模型&#xff0c;自管理不再是空谈在云原生和微服务架构成为主流的今天&#xff0c;我们运维工程师面对的早已不是几台物理服务器&#xff0c;而是一个由成百上千个容器化服务实例构成的、动态且复杂的生态系统。服务间的调用链路像一张错…...

EasyMLServe:一键部署机器学习模型,自动生成REST API与GUI界面

1. 项目概述与核心痛点做机器学习项目&#xff0c;尤其是搞科研的同行们&#xff0c;肯定都经历过这个阶段&#xff1a;模型在Jupyter Notebook里跑得挺好&#xff0c;准确率也达标了&#xff0c;论文也发了&#xff0c;但接下来呢&#xff1f;怎么让隔壁生物实验室的同事、或者…...

2026年5月4日 OCS技术方案路线选择与优劣深度调研报告

OCS技术方案路线选择与优劣深度调研报告 核心结论 光电路交换&#xff08;OCS&#xff09;正从Google的"独家方案"演变为AI算力网络的通用基础设施。Google TPU v8i采用的Boardfly架构首次将OCS引入大规模MoE推理场景&#xff0c;标志着OCS应用从训练侧向推理侧的跨…...

多云安全态势:管理多个云环境的安全状态

多云安全态势&#xff1a;管理多个云环境的安全状态 一、多云安全态势概述 1.1 多云安全态势的定义 多云安全态势是指在多个云环境中评估和管理安全状态的过程。它通过统一的安全策略和监控&#xff0c;确保多个云平台的安全性和合规性。 1.2 多云安全态势的价值 统一安全&…...

从零入门 OpenAI Codex|登录、权限、终端、记忆配置全实操

我先来简单介绍一下Codex。 Codex是 OpenAI 推出的 AI 编程模型与工具系列。Codex 最初于 2021 年作为 OpenAI API 的一部分发布&#xff0c;基于 GPT 架构专门针对代码数据进行了训练。2024 至 2025 年间&#xff0c;OpenAI 推出了独立的 Codex CLI命令行工具&#xff0c;使其…...