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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VMware workstation的安装

VMware workstation安装: 1.双击VMware-workstation-full-9.0.0-812388.exe 2.点击next进行安装 选择安装方式 Typical:典型安装 Custom:自定义安装 选择程序安装位置 点击change选择程序安装位置,然后点击next 选择是否自动…

D-Star 寻路算法

D-Star 寻路算法 下面简写 D-Star 为 D* D算法:D 算法”的名称源自 Dynamic A Star,最初由Anthony Stentz于“Optimal and Efficient Path Planning for Partially-Known Environments”中介绍。它是一种启发式的路径搜索算法, 适合面对周围环境未知或者…

借助 Terraform 功能协调部署 CI/CD 流水线-Part2

在第一部分的文章中,我们介绍了3个步骤,完成了教程的基础配置: 使用 Terraform 创建 AWS EKS Infra在 EKS 集群上部署 ArgoCD 及其依赖项设置 Bitbucket Pipeline并部署到 ECR Repo 本文将继续完成剩余的步骤,以实现 Terraform 编…

低代码与AI:构建面向未来的智能化应用

引言 在当今数字时代,技术的快速发展为各行各业带来了前所未有的机遇和挑战。企业和组织面临着如何迅速开发和交付高质量应用的需求,同时还需要应对日益复杂的业务需求和用户期望。在这样的背景下,低代码与人工智能(AI&#xff0…

Oracle事务槽wrap#上限问题

问题背景: 近期遇到了一个Oracle回滚段事务ID达到上限的问题,应用前台语句操作失败,出现ORA-01558: out of transaction IDs in rollback segment _SYSSMU10_4119033733$报错。 问题分析: 第一次遇到该报错,先到Oracle mos上查了…

[CISCN2019 华东南赛区]Web11

模块注入题,这类题一般拥有固定的payload。 界面大概就是这么个样子 返回了IP地址,提示getip,xff等。 这是smarty模板。很明显了,这个模板存在xff处的命令执行。抓取数据包并添加字段 X-Forwarded-For:{{system(ls)}} cat /fla…

【数据结构和算法初阶(C语言)】队列实操(概念实现+oj题目栈和队列的双向实现,超级经典!!!)

1. 队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表, 队列具有先进先出 FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为…

基于嵌入式的智能交通信号灯管理系统的设计与实现

项目介绍 有目共睹电子设备已经席卷了整个人类生活,他们不断改善着人们的起居住行,这也就促进了嵌入式人工智能的快速发展。 本课设模拟系统分为软硬件两部分组成。硬件部分是由两位8段数码管和LED灯构成的显示系统和控制电路等组成,能较好的…

疫情网课管理系统|基于springboot框架+ Mysql+Java+Tomcat的疫情网课管理系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 ​编辑 学生功能模块 管理员功能 教师功能模块 系统功能设计 数据库E-R图设计 lun…

JVM 相关知识点记录

文章目录 前言哪些内存需要回收方法区的垃圾回收垃圾收集算法垃圾收集器年轻代进入老年代条件内存担保机制FullGC 触发时机GC日志解析日志参数 前言 JVM包含内容: 类装载子系统(Class Load SubSystem)运行时数据区(Run-Time Data Areas) 堆栈 局部变量表操作数栈动…

YOLOV5 部署:QT的可视化界面推理(创建UI,并编译成py文件)

1、前言 之前用YOLOV5 做了一个猫和老鼠的实战检测项目,本章将根据之前训练好的权重进行部署,搭建一个基于QT的可视化推理界面,可以检测图片和视频 本章使用的数据集和权重参照:YOLOV5 初体验:简单猫和老鼠数据集模型训练-CSDN博客 可视化界面如下: 2、安装Pyside6 本…

如何理解闭包

闭包是编程语言中一个重要的概念,特别是在函数式编程中常常会遇到。以下是对闭包的理解: 1. 定义: 闭包是一种函数,它引用了在其定义范围之外的自由变量(非全局变量),并且这些引用的变量在函数…

二叉树最长路径问题(x+1,x++,++x 问题详解)

首先遇到的问题是&#xff0c;在二叉树求最短路径中&#xff0c;DFS参数x的传入导致的结果不同问题 #include<iostream> #include<iomanip> #include<cstring> using namespace std; int maxi; char path[1000],ans[1000]; typedef struct BiTLnode{char da…

上海亚商投顾:沪指三连阴 创新药、资源回收概念逆势走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日冲高回落&#xff0c;深成指、创业板指午后跌超1%&#xff0c;临近尾盘跌幅有所收窄。创新药板块…

牛客-DP38 【模板】二维差分

【模板】二维差分_牛客题霸_牛客网 (nowcoder.com) b站有视频&#xff1a;讲解前缀和和差分 二维差分_哔哩哔哩_bilibili 注意&#xff1a;差分的过程叫差分&#xff0c;而不仅仅是d[]这个数组&#xff0c;其他数组经行了差分的操作&#xff0c;就也是差分啊&#xff01;&…

搭建Docker私有仓库registry

下载registry registry是Docker官方提供的仓库镜像 拉取镜像&#xff0c;不指定版本默认拉取最新版本镜像。 docker pull registry Using default tag: latest latest: Pulling from library/registry 79e9f2f55bf5: Pull complete 0d96da54f60b: Pull complete 5b27040df4…

算法---滑动窗口练习-3(水果成篮)

水果成篮 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;水果成篮 2. 讲解算法原理 算法的主要思想是使用滑动窗口来维护一个包含最多两种水果的子数组。定义两个指针 left 和 right 分别表示窗口的左边界和右边界。还定义了一个数组 hash 来记录水…

数据结构的美之链表和树

有种感觉叫做&#xff0c;不同的场景&#xff0c;应用不同的数据结构和算法&#xff0c;可以大大滴优化增删改查以及存储方面等等的性能。笔者这里呢也是在最近复习准备面试的时候&#xff0c;去阅读源码&#xff0c;觉得设计这种数据结构和引用的人真的是非常牛逼&#xff0c;…

Unity Timeline学习笔记(3) - SignalTrack信号轨道和自定义带参数的Marker信号和轨道

信号轨道&#xff0c;顾名思义就是运行到某处发送一个信号。 普通用法 普通用法就是没有任何封装的&#xff0c;个人感觉特别难用&#xff0c;但是有必要理解一下工作原理。 添加信号 我们添加一个信号资源 生成后可以看到资源文件&#xff0c;这个是可以拖到SignalTrack上…

2 Redis的安装与配置

这里是要将 Redis 安装到 Linux 系统中。 1.1 Redis 的安装 1.1.1 克隆并配置主机 修改主机名&#xff1a;/etc/hostname修改网络配置&#xff1a;/etc/sysconfig/network-scripts/ifcfg-ens33 1.1.2 安装前的准备工作 &#xff08;1 &#xff09;安装 gcc &#xff08;2…