Android NDK开发详解之调试和性能分析的系统跟踪概览

Android NDK开发详解之调试和性能分析的系统跟踪概览

    • 系统跟踪指南

“系统跟踪”就是记录短时间内的设备活动。系统跟踪会生成跟踪文件,该文件可用于生成系统报告。此报告有助于您了解如何最有效地提升应用或游戏的性能。

有关进行跟踪和性能分析的全面介绍,请参阅 Perfetto 文档中的跟踪 101 页面。

Android 平台提供了多种不同的跟踪记录获取途径:

Android Studio CPU 和内存分析器
系统跟踪实用程序
Perfetto 命令行工具(Android 10 及更高版本)
Systrace 命令行工具
在您与应用互动时,Android Studio CPU 性能分析器可实时检查应用的 CPU 使用情况和线程活动。您还可以检查方法跟踪记录、函数跟踪记录和系统跟踪记录中的详细信息。内存分析器可让您大致了解与触摸事件、activity 更改和垃圾回收事件相关的内存用量。

系统跟踪实用程序是一款 Android 工具,用于将设备活动保存到跟踪文件中。在搭载 Android 10(API 级别 29)或更高版本的设备上,跟踪文件会以 Perfetto 格式保存,如本文档后面部分所示。在搭载较低版本 Android 系统的设备上,跟踪文件会以 Systrace 格式保存。

Perfetto 是 Android 10 中引入的平台级跟踪工具。这是适用于 Android、Linux 和 Chrome 的成熟开源跟踪项目。与 Systrace 不同,它提供数据源超集,可让您以协议缓冲区二进制流形式记录任意长度的跟踪记录。您可以在 Perfetto 界面中打开这些跟踪记录。

Systrace 是平台提供的旧版命令行工具,可记录短时间内的设备活动,并保存在压缩的文本文件中。该工具会生成一份报告,其中汇总了 Android 内核中的数据,例如 CPU 调度程序、磁盘活动和应用线程。Systrace 适用于 Android 4.3(API 级别 18)及更高版本的所有平台版本,但建议将 Perfetto 用于运行 Android 10 及更高版本的设备。
在这里插入图片描述

图 1. Perfetto 跟踪记录视图示例,其中显示了与某个应用之间大约 20 秒的互动情况。
在这里插入图片描述
图 2. Systrace HTML 报告示例,其中显示了与某个应用之间时长为 5 秒的交互情况。

这两份报告都提供在给定时间段内,Android 设备的系统进程总体情况。该报告还检查了捕获到的跟踪信息,以突出显示发现的问题(例如界面卡顿或耗电量高)。

Perfetto 和 Systrace 可交互使用:

在 Perfetto 界面中打开 Perfetto 文件和 Systrace 文件。在 Perfetto 界面中使用旧版 Systrace 查看器打开 Systrace 文件(使用 Open with legacy UI 链接)。
使用 traceconv 工具将 Perfetto 跟踪记录转换为旧版 Systrace 文本格式。
注意:Systrace 和 Perfetto 不会收集有关应用进程中代码执行情况的详细信息。如需详细了解您的应用正在执行哪些方法及其占用了多少 CPU 资源,请使用 Android Studio 中的 CPU 性能分析器。

系统跟踪指南

如需详细了解系统跟踪工具,请参阅以下指南:

使用 CPU 性能分析器检查 CPU 活动
展示如何在 Android Studio 中分析应用的 CPU 使用情况和线程活动。
System Tracing 系统应用
介绍如何在任何搭载 Android 9(API 级别 28)或更高版本的设备上直接捕获系统跟踪记录。
Systrace 命令行参考文档
定义可传递到 Systrace 命令行界面的不同选项和标志。
使用 ADB 运行 Perfetto
介绍如何运行 perfetto 命令行工具来捕获跟踪记录。
运行 Perfetto
外部文档,介绍如何构建和运行 perfetto 命令行工具来捕获跟踪记录。
Perfetto 界面
Perfetto 网页版跟踪记录查看器可打开 Perfetto 跟踪记录并显示完整报告。您还可以使用旧版界面选项在此查看器中打开 Systrace 跟踪记录。
浏览 Systrace 报告
列出典型报告的各个元素,提供用于浏览报告的键盘快捷键,并介绍如何识别性能问题的类型。
定义自定义事件
介绍如何对代码的特定部分应用自定义标签,以便更轻松地在 Systrace 或 Perfetto 中分析根本原因。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

groovy下载与安装

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy也可…

Servlet 初始化参数(web.xml和@WebServlet)

1、通过web.xml方式 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://xmlns.jcp.org/xm…

3-性能分析-android-基于Choreographer渲染机制详解

3-性能分析-android-基于Choreographer渲染机制详解 一:主线程运行机制的本质1> 引入 Vsync 之前2> 引入 Choreographer二: Choreographer 简介1> 从 Systrace 的角度来看 Choreogrepher 的工作流程2> Choreographer 的工作流程三:Choreographer 处理一帧的逻辑…

mysql---索引

概要 索引&#xff1a;排序的列表&#xff0c;列表当中存储的是索引的值和包含这个值的数据所在的行的物理地址 作用&#xff1a;加快查找速度 注&#xff1a;索引要在创建表时尽量创建完全&#xff0c;后期添加影响变动大。 索引也需要占用磁盘空间&#xff0c;innodb表数据…

科技战再次升级!国内前沿科技行业影响悬而未决

&#xff08;图片来源&#xff1a;网络&#xff09; 美国与中国的科技贸易战正在升级&#xff0c;美国总统拜登发布行政命令限制美国对半导体和微电子、量子信息技术和人工智能等特定行业的跨国投资。在此前美国对中国芯片相关出口的一系列限制之后&#xff0c;又增加了此项新…

每日一题(LeetCode)----二分查找(三)

每日一题(LeetCode)----二分查找&#xff08;三&#xff09; 1.题目&#xff08;69. x 的平方根 &#xff09; 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 **注意…

服务器数据恢复-VSAN环境下ESXI虚拟机无法访问的数据恢复方案

一、用户信息&#xff1a; 广东某单位 二、数据恢复环境&#xff1a; 主机操作系统&#xff1a;ESXI 分区类型&#xff1a;VSAN 存储介质清单 &#xff1a;一共8台服务器节点&#xff0c;每节点2个磁盘组&#xff0c;其中1个磁盘组配置1块SSD固态硬盘&#xff0c;4块1.2T机…

【Linux】第七站:vim的使用以及配置

文章目录 一、vim1.vim的介绍2.vim基本使用3.vim的命令模式常用命令4.底行模式 二、vim的配置 一、vim 1.vim的介绍 vim编辑器&#xff0c;用来文本编写&#xff0c;可以写代码 它是一个多模式的编辑器 它有很多的模&#xff0c;不过我们暂时先只考虑这三种模式 命令模式插入模…

【ES专题】ElasticSearch快速入门

目录 前言从一个【搜索】说起 阅读对象阅读导航笔记正文一、全文检索1.1 什么是【全文检索】1.2 【全文检索】原理1.3 什么是倒排索引 二、ElasticSearch简介2.1 ElasticSearch介绍2.2 ElasticSearch应用场景2.3 数据库横向对比 三、ElasticSearch环境搭建3.1 Windows下安装3.2…

VueX环境的搭建

一、安装VueX npm i vuex // Vue3安装该版本 npm i vuex3 // Vue2安装该版本 因为我使用的是Vue2&#xff0c;所以安装的是3版本 二、配置VueX文件 在src目录下创建store文件夹&#xff0c;再创建index.js 在index.js中配置如下代码&#xff1a; // VueX配置文件/…

Linux shell编程学习笔记17:for循环语句

Linux Shell 脚本编程和其他编程语言一样&#xff0c;支持算数、关系、布尔、字符串、文件测试等多种运算&#xff0c;同样也需要进行根据条件进行流程控制&#xff0c;提供了if、for、while、until等语句。 之前我们探讨了if语句&#xff0c;现在我们来探讨for循环语句。 Li…

优先队列----数据结构

概念 不知道你玩过英雄联盟吗&#xff1f;英雄联盟里面的防御塔会攻击离自己最近的小兵&#xff0c;但是如果有炮车兵在塔内&#xff0c;防御塔会优先攻击炮车&#xff08;因为炮车的威胁性更大&#xff09;&#xff0c;只有没有兵线在塔内时&#xff0c;防御塔才会攻击英雄。…

实在智能携手品牌商家,在活动会面中共谋发展

金秋十月&#xff0c;丰收的季节&#xff0c;也是商家们在双11大展拳脚的时刻。为迎战一年一度的双11大促&#xff0c;品牌商家在10月份卯足劲&#xff0c;制定一系列营销方案&#xff0c;争取为店铺带来更多流量和订单。 其中&#xff0c;舍得、同科医药、梅子熟了、宝洁、维…

回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测

回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测 目录 回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.RIME-CNN-SVM霜冰优化算…

大坝水库安全监测终端MCU,智能化管理的新篇章!

我国目前拥有超过9.8万座水库大坝&#xff0c;其中超过95%为土石坝&#xff0c;这些大坝主要是在上世纪80年代以前建造的。这些水库大坝在保障防洪、发电、供水、灌溉等方面发挥了巨大的作用&#xff0c;但是同时也存在一定的安全风险&#xff0c;比如坝体结构破损、坝基渗漏、…

掌握 JavaScript 的基本语法

一、javascript书写位置 JavaScript 可以写在 HTML 页面中的以下三个位置&#xff1a; 内联脚本&#xff1a;将 JavaScript 代码直接写在 HTML 元素的 onclick、onload、onsubmit 等事件属性中。例如&#xff1a; <button onclick"alert(Hello World)">点击我…

【设计模式】第19节:行为型模式之“中介模式”

一、简介 中介模式定义了一个单独的&#xff08;中介&#xff09;对象&#xff0c;来封装一组对象之间的交互。将这组对象之间的交互委派给与中介对象交互&#xff0c;来避免对象之间的直接交互。 中介模式的设计思想跟中间层很像&#xff0c;通过引入中介这个中间层&#xf…

2023年11月1日蜻蜓C影视追剧系统v1.2.2更新-与时俱进调整微信登录授权获取方式-修复无法登陆授权

2023年11月1日蜻蜓C影视追剧系统v1.2.2更新-与时俱进调整微信登录授权获取方式-修复无法登陆授权 问题背景&#xff1a; 小程序用户头像昵称获取规则调整公告官方 微信团队2022-05-09 更新时间&#xff1a;2022年11月9日 由于 PC/macOS 平台「头像昵称填写能力」存在兼容性问…

518抽奖软件,安全稳定,不怕手抖误按键

518抽奖软件简介 518抽奖软件&#xff0c;518我要发&#xff0c;超好用的年会抽奖软件&#xff0c;简约设计风格。 包含文字号码抽奖、照片抽奖两种模式&#xff0c;支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 防误按功能 入口&#xff1a; 主界面上点右…

Unity Profiler 详细解析(二)

Profiler的主要参数详解 1. Memory Profiler Uesd Total : 当前帧的Unity内存&#xff0c;Mono内存&#xff0c;GfxDriver内存&#xff0c;Profiler内存以及额外内存的总和。 Reserved Total&#xff1a; 系统在当前帧申请的总体物理内存 Total System Memory Usage&#xff1…