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 使用情况,例如JDWPProfile SaverStudio:VMStatsStudio: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

相关推荐
dancing9991 天前
Android Studio中Gradle 7.0上下项目配置及镜像修改
android·ide·android studio
刘洋浪子1 天前
Android Studio中Gradle中Task列表显示不全解决方案
android·ide·android studio
LuXi_foryou2 天前
错误: 程序包org.junit不存在 import org.junit.Test;
junit·android studio
Mckay882 天前
android studio导入项目
android·ide·android studio
百锦再2 天前
MK米客方德SD NAND:无人机存储的高效解决方案
人工智能·python·django·sqlite·android studio·无人机·数据库开发
笨鸭先游3 天前
Android Studio的jks文件
android·ide·android studio
gys98953 天前
android studio开发aar插件,并用uniapp开发APP使用这个aar
android·uni-app·android studio
早上好啊! 树哥5 天前
android studio开发:设置屏幕朝向为竖屏,强制应用的包体始终以竖屏(纵向)展示
android·ide·android studio
bubiyoushang8885 天前
深入探索Laravel框架中的Blade模板引擎
android·android studio·laravel
androidwork7 天前
Kotlin与Android Studio开发环境配置指南
开发语言·kotlin·android studio