一、前言

程序优化在做过线上bug处理布局层级优化项目依赖版本更新重复合并删除使用资源删除冗余的库,避免因为一个类而引入一个库的问题leakcanary(参考链接:https://square.github.io/leakcanary/)内存检测处理lint(参考链接:https://developer.android.google.cn/studio/write/lint?hl=zhcn)静态代码检测后。如果想要继续优化,那么就需要使用其他工具了。比如开启严格模式StrictMode,该模式会将相关异常信息输出控制台或者弹出对话框。亦或者使用Profiler工具进行进行检测(需要注意的是Profiler只能解决一部分问题,不能解决所有问题)

需要注意的是本篇文章采用了Android Studio新版的UI进行操作,具体开启方式Preferences->Appearance & Behavior ->New UI然后勾选Enable new UI重启Android Studio。开发工具版本

Android Studio Giraffe | 2022.3.1 Patch 4
Build #AI-223.8836.35.2231.11090377, built on November 14, 2023
Runtime version: 17.0.6+0-17.0.6b829.9-10027231 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

目前为最新版开发工具
测试工具为红米K60,版本为Android13
官方文档所说Profiler工具监控UI在Android11、12、13上面的UI有不同的结果这里需要注意版本不同带来的问题

如需打开 Profiler 窗口,请依次选择 View > Tool Windows > Profiler,或点击工具栏中的 Profile 图标 在这里插入图片描述

二、页面卡顿排查方式

1、耗时操作的监控

可以选择采取以下方式启动应用
在这里插入图片描述
或者常规方式启动使用以下方式打开监控工具
在这里插入图片描述
打开选择CPU栏目打开
在这里插入图片描述
然后选择Java/Kotlin Method Sample (legacy)进行记录Java/Kotlin Method Trace测试时候记录数据无法打开,所以没办法进行测试,后续可以打开的时候再进行尝试需要注意的是对数据记录时间不能过长,否则会导致文件过大无法打开。所以只对关键操作进行记录分析即可记录完后点击Stop进行完成分析
在这里插入图片描述
记录完成后会自动打开,效果如下
在这里插入图片描述
选择左侧main选项卡进行确定然后查看Flame Chart结果如下
在这里插入图片描述

其中右侧火焰图的绿色格子内容开发者可以尝试修改的地方。调用顺序从上往下为,应用函数系统函数调用顺序鼠标光标悬停在某个方格上面可以看到函数调用时长。然后开发者可以根据此进行相关代码修改。当然即使如此能修改的绿色格子也不足十分之一。

2、页面卡顿的监控

这里选择System Trace进行记录
在这里插入图片描述
记录完后的页面如下
在这里插入图片描述
然后选择All Frames->Janky Frames
在这里插入图片描述
可以通过点击Frame Duration进行选择排序查看耗时最长的Frame的ID,如果该选项卡下面没有内容,表示应用没有页面卡顿。根据此帧在左侧Janky Frames选项卡中进行查找该帧。
在这里插入图片描述
锁定后按动键盘上的M放大或者屏幕右上角的放大缩小按钮放大缩小。
然后查看具体帧的渲染时间,当然不是所有帧都能提供有效信息,那么就只能针对可以修改的地方进行修改
在这里插入图片描述
Profiler本文只记录部分用法,其余用法查看官网自己研究

三、参考链接

  1. 应用性能指南
  2. 使用布局检查器和布局验证工具调试布局
  3. StrictMode
  4. 功耗优化 · 方案篇 · Android功耗优化指导规范
  5. Android Profiler

原文地址:https://blog.csdn.net/Mr_Tony/article/details/134592176

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17951.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注