Android卡顿优化

news/2024/11/24 1:53:12/

卡顿的定义

如果在一个Vsync周期内(60HZ的屏幕上就是16.6ms),按照整个上帧显示的执行的顺序来看,应用UI线程的绘制、RenderThread线程的渲染、SurfaceFlinger/HWC的图层合成以及最终屏幕上的显示这些动作没有全部都执行完成的话,屏幕上就会显示上一帧画面的内容,也就是掉帧,而人的肉眼就可能会感觉到画面卡顿。

卡顿监控
线下监控工具

BlockCanary: 动态检测消息执行耗时。

基于消息机制,向Looper中设置Printer,监控dispatcher到finish之间的操作,满足耗时阀值dump堆栈、设备信息,以通知形式弹出卡顿信息以供分析。
在这里插入图片描述其中最核心的两步是在调用msg.target.dispatchMessage(msg),进行消息的分发前记录时间T1,调用msg.target.dispatchMessage(msg)进行消息分发后记录时间T2,如果T2-T1大于设置的卡顿阈值就会打印当前方法调用堆栈以及显示其他相关提示或打印日志;
blockcanary充分的利用了Loop的机制,在MainLooper的loop方法中执行dispatchMessage前后都会执行printer的println进行输出,并且提供了方法设置printer。通过分析前后打印的时差与阈值进行比对,从而判定是否卡顿。

创建AppBlockCanaryContext:

class AppBlockCanaryContext : BlockCanaryContext() {
}

在application中初始化blockCanary:

BlockCanary.install(this, AppBlockCanaryContext()).start()

BlockCanary会在发生卡顿(通过MonitorEnv的getConfigBlockThreshold设置)的时候记录各种信息,输出到配置目录下的文件,并弹出消息栏通知(可关闭)。

dump的信息包括:

基本信息:安装包标示、机型、api等级、uid、CPU内核数、进程名、内存、版本号等
耗时信息:实际耗时、主线程时钟耗时、卡顿开始时间和结束时间
CPU信息:时间段内CPU是否忙,时间段内的系统CPU/应用CPU占比,I/O占CPU使用率
堆栈信息:发生卡慢前的最近堆栈,可以用来定位卡慢发生的地方和重现路径

滴滴Dokit接入
https://xingyun.xiaojukeji.com/docs/dokit#/intro
在这里插入图片描述帧率检测:帧率信息提供波形图查看功能,让帧率监控的趋势更加明显。

在这里插入图片描述CPU检测:CPU 使用率信息提供波形图查看功能,让 CPU 监控的趋势更加形象。

在这里插入图片描述卡顿检测:我们做App开发时,可能会遇到卡顿的情况,往往会忽略,而且复现时出现卡顿的概率也挺挺小的。而卡顿功能帮助我们把App出现的卡顿记录下来,锁定 App 出现卡顿的时刻,打印出对应的代码调用堆栈。
在这里插入图片描述线上监控工具
https://www.tingyun.com/tingyun-apm

基调听云APM(应用性能管理)产品能够提供代码级性能监控并对故障快速定位,能够兼容OpenTelemetry框架实现全量采集,支持微服务架构下的应用性能监控和治理。

大致工作流程:
1、首先在客户端(Android、iOS、Web等)采集数据;
2、接着将采集到的数据整理上报到服务器;
3、服务器接收到数据后建模、存储、挖掘分析,让后将数据可视化,供用户使用。

Android APM 的原理其实非常简单,用一句话总结就是:

依据打包原理,在 class 转换为 dex 的过程中,调用 gradle transform api 遍历 class 文件,借助 Javassist、ASM 等框架修改字节码,插入我们自己的代码实现性能数据的统计。以上所有过程都是在编译期完成的。


http://www.ppmy.cn/news/521308.html

相关文章

AI智能曲谱识别|乐谱识别识音SDK|人声数拍SDK|智能钢琴、MIDI音乐、打谱、曲谱乐谱播放识别SDK、音序器、合成器、播放器软件

智域智联科技致力于用“智能化教学 音乐软件模块”及“在线教育AiScore 平台”赋能传统音乐教育,使音乐教 育机构智能化教育转型成为可能。 AifbdScore是一个跨平台的声音识别和评 测库,运用人工智能深度学习算法采集各 种乐器不同音高的时域、频域特征训…

计算机乐谱吃鸡,Capo可自动识别音乐生成乐谱

作为一位音乐和吉他爱好者,Capo这款应用真的放我们非常喜欢。Capo可以让用户对其iTunes媒体库中的所有音乐进行“逆向扫描”,自动生成歌曲的指法谱。此外,对于比较难弹的曲子还可以在不影响其音调的同时放慢音速,以便添加有用的标…

Sauceware Audio Scorch for Mac - 嘻哈说唱音频乐器

Sauceware Audio Scorch是一款精心设计制作的嘻哈说唱音频乐器,包含独特的声音、流派定义效果和内置和弦发生器,可以帮助用户带来更多的声音效果! 专为说唱制作人打造。使用 Scorch,您可以获得独特的声音、流派定义效果和内置和弦…

经典吉他效果器-Native Instruments Guitar Rig Pro v6.2.4 CE-win

Guitar Rig 6 是经典的吉他效果器,以新外观、新放大器、新效果和新机器学习技术回归,为最先进的硬件建模。无限量的温暖、沙砾、嘎吱声和绒毛,以及您可能需要的所有效果。 新的放大器和效果器 三个新建模的精品和复古放大器。我们还添加了来…

pdftomusic pro(音乐谱曲软件) v1.0.4

pdftomusic是一款功能强大且实用的音乐谱曲软件,它可以将PDF音乐表转换为可编辑的乐谱,方便用户对其进行谱曲制作的操作,另外,该软件支持从任何音乐符号程序创建的Adobe PDF文件中提取音频数据,然后通过此工具将其转换…

创意和弦生成插件-Audiomodern Chordjam 1.0.0 WiN-MAC

STANDALONE, VSTi, VSTi3, AAX|32bit, 64bit|21.6M 要求:Mac OS X 10.12 or higher | Windows 7 or higher Chordjam 是一款创新型的和弦生成插件,也可以独立运行,可通过直观的用户指导功能随机构建和弦与和…

Overloud TH-U Complete for Mac - 吉他谱曲软件

Overloud TH U mac】版是一套由Overloud制作的吉他谱曲软件。Overloud TH U for Mac为用户准备了89个吉他放大器和4低音放大器,吉他柜50个,低音柜2个,18个麦克风型号,是一款音乐爱好者不容错过的软件。它可以让你改变前和功率管的…

Guitar Pro 8吉他新版功能特性简介

Guitar Pro 8简介 Guitar Pro吉他软件为帮助所有吉他爱好者学习、绘谱、创作而设计——包含吉他的现有指法及音色,能了解各类线谱,看谱练吉他,对谱听示范,记录初创声音。在做弹拨乐器的滑音、倚音、推弦、揉弦、泛音、摇把、闷音…