android studio systrace,Android Systrace 基础知识 -- Systrace 简介

本文是 Systrace 系列文章的第一篇,主要是对 Systrace 进行简单介绍,介绍其简单使用方法;如何去看 Systrace;如何结合其他工具对 Systrace 中的现象进行分析。

本系列的目的是通过 Systrace 这个工具,从另外一个角度来看待 Android 系统整体的运行,同时也从另外一个角度来对 Framework 进行学习。也许你看了很多讲 Framework 的文章,但是总是记不住代码,或者不清楚其运行的流程,也许从 Systrace 这个图形化的角度,你可以理解的更深入一些。

系列文章目录

Systrace 简介

Systrace 基础知识 - Systrace 预备知识

Systrace 基础知识 - Why 60 fps ?

Systrace 基础知识 - SystemServer 解读

Systrace 基础知识 - SurfaceFlinger 解读

Systrace 基础知识 - Input 解读

Systrace 基础知识 - Vsync 解读

Systrace 基础知识 - Vsync-App :基于 Choreographer 的渲染机制详解

Systrace 基础知识 - MainThread 和 RenderThread 解读

Systrace 基础知识 - Binder 和锁竞争解读

Systrace 基础知识 - CPU Info 解读

正文

Systrace 是 Android4.1 中新增的性能数据采样和分析工具。它可帮助开发者收集 Android 关键子系统(如 SurfaceFlinger/SystemServer/Kernel/Input/Display 等 Framework 部分关键模块、服务,View系统等)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。

Systrace 的功能包括跟踪系统的 I/O 操作、内核工作队列、CPU 负载以及 Android 各个子系统的运行状况等。在 Android 平台中,它主要由3部分组成:

内核部分:Systrace 利用了 Linux Kernel 中的 ftrace 功能。所以,如果要使用 Systrace 的话,必须开启 kernel 中和 ftrace 相关的模块。

数据采集部分:Android 定义了一个 Trace 类。应用程序可利用该类把统计信息输出给ftrace。同时,Android 还有一个 atrace 程序,它可以从 ftrace 中读取统计信息然后交给数据分析工具来处理。

数据分析工具:Android 提供一个 systrace.py( python 脚本文件,位于 Android SDK目录/platform-tools/systrace 中,其内部将调用 atrace 程序)用来配置数据采集的方式(如采集数据的标签、输出文件名等)和收集 ftrace 统计数据并生成一个结果网页文件供用户查看。 从本质上说,Systrace 是对 Linux Kernel中 ftrace 的封装。应用进程需要利用 Android 提供的 Trace 类来使用 Systrace.

关于 Systrace 的官方介绍和使用可以看这里:Systrace

Systrace简单使用

使用 Systrace 前,要先了解一下 Systrace 在各个平台上的使用方法,鉴于大家使用Eclipse 和 Android Studio 的居多,所以直接摘抄官网关于这个的使用方法,不过不管是什么工具,流程是一样的:

手机准备好你要进行抓取的界面

点击开始抓取(命令行的话就是开始执行命令)

手机上开始操作(不要太长时间)

设定好的时间到了之后,会将生成 Trace.html 文件,使用 Chrome 将这个文件打开进行分析

一般抓到的 Systrace 文件如下format,png

Command Line Usage

命令行形式比较灵活,速度也比较快,一次性配置好之后,以后再使用的时候就会很快就出结果(强烈推荐)

Systrace 工具在 Android-SDK 目录下的 platform-tools 里面,下面是简单的使用方法

$ cd android-sdk/platform-tools/systrace

$ python systrace.py

复制代码

可以在 Bash 中配置好对应的路径和 Alias,使用起来还是很快速的。另外 User 版本所抓的 Systrce 文件所包含的信息,是比 eng 版本或者 Userdebug 版本要少的,建议使用 Userdebug 版本的机器来进行 debug,这样既保证了性能,又能有比较详细的输出结果.

抓取结束后,会生成对应的 Trace.html 文件,注意这个文件只能被 Chrome 打开。关于如何分析 Trace 文件,我们下面的章节会讲。不论使用那种工具,在抓取之前都可以选择参数,下面说一下这些参数的意思:

-h, --help Show the help message.(帮助)

-o  Write the HTML trace report to the specified file.(即输出文件名,)

-t N, --time=N Trace activity for N seconds. The default value is 5 seconds. (Trace抓取的时间,一般是 : -t 8)

-b N, --buf-size=N Use a trace buffer size of N kilobytes. This option lets you limit the total size of the data collected during a trace.

-k

—ktrace= Trace the activity of specific kernel functions, specified in a comma-separated list.

-l, --list-categories List the available tracing category tags. The available tags are(下面的参数不用翻译了估计大家也看得懂,贴官方的解释也会比较权威,后面分析的时候我们会看到这些参数的作业的):

gfx - Graphics

input - Input

view - View

webview - WebView

wm - Window Manager

am - Activity Manager

audio - Audio

video - Video

camera - Camera

hal - Hardware Modules

res - Resource Loading

dalvik - Dalvik VM

rs - RenderScript

sched - CPU Scheduling

freq - CPU Frequency

membus - Memory Bus Utilization

idle - CPU Idle

disk - Disk input and output

load - CPU Load

sync - Synchronization Manager

workq - Kernel Workqueues Note: Some trace categories are not supported on all devices. Tip: If you want to see the names of tasks in the trace output, you must include the sched category in your command parameters.

-a

—app= Enable tracing for applications, specified as a comma-separated list of package names. The apps must contain tracing instrumentation calls from the Trace class. For more information, see Analyzing Display and Performance.

—link-assets Link to the original CSS or JavaScript resources instead of embedding them in the HTML trace report.

—from-file= Create the interactive Systrace report from a file, instead of running a live trace.

—asset-dir= Specify a directory for the trace report assets. This option is useful for maintaining a single set of assets for multiple Systrace reports.

-e

—serial= Conduct the trace on a specific connected device, identified by its device serial number.

上面的参数虽然比较多,但使用工具的时候不需考虑这么多,在对应的项目前打钩即可,命令行的时候才会去手动加参数:

我们一般会把这个命令配置成Alias,配置如下:

alias st-start='python /sdk/platform-tools/systrace/systrace.py'

alias st-start-gfx-trace = ‘st-start -t 8 gfx input view sched freq wm am hwui workq res dalvik sync disk load perf hal rs idle mmc’

复制代码

这样在使用的时候,可以直接敲 st-start 即可,当然为了区分和保持各个文件,还需要加上 -o xxx.html .上面的命令和参数不必一次就理解,只需要记住如何简单使用即可,在分析的过程中,这些东西都会慢慢熟悉的。

一般来说比较常用的是

-o : 指示输出文件的路径和名字

-t : 抓取时间(最新版本可以不用指定, 按 Enter 即可结束)

-b : 指定 buffer 大小(一般情况下,默认的 Buffer 是够用的,如果你要抓很长的 Trae , 那么建议调大 Buffer )

-a : 指定 app 包名 (如果要 Debug 自定义的 Trace 点, 记得要加这个)

关于我 && 博客

关于我 , 非常希望和大家一起交流 , 共同进步 .

博客内容导航

优秀博客文章记录 - Android 性能优化必知必会

一个人可以走的更快 , 一群人可以走的更远

更多内容可以进入 Android Performance 查看

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[Android Systrace 基础知识 -- Systrace 简介]http://www.zyiz.net/tech/detail-136282.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Systrace是一种用于分析Android系统性能的工具。它可以捕获系统的各种事件和跟踪信息,并将其可视化为时间轴图形,以便开发人员更好地了解系统的行为和性能瓶颈。Systrace可以用于分析应用程序、系统服务和内核模块的性能问题,帮助开发人员优化应用程序和系统性能。Systrace的使用需要一定的技术和经验,但是掌握了基础知识后,可以大大提高开发效率和应用程序性能。 ### 回答2: Android systrace 是一个用于分析和优化 Android 系统性能的工具。它可以帮助开发者检测出系统中的性能问题并提供解决方案。以下是关于 systrace 的一些基础知识: 1. systrace 的作用:systrace 可以跟踪和显示系统的各个组件之间的交互,并提供详细的性能数据。通过分析 systrace 数据,开发者可以定位和解决应用程序在运行过程中遇到的性能瓶颈问题。 2. systrace 的使用方法:通过命令行或 Android Studio 中的性能分析工具可以使用 systrace。开发者可以选择要捕获的系统事件和应用程序组件,然后生成一份包含性能数据的报告。报告中包含的信息有 CPU 使用率、线程活动、绘制时间、电源管理、内存使用等。 3. systrace 的视图:systrace 报告包含多个视图,每个视图都显示不同的性能数据。常用的视图包括 CPU、渲染、电源、内存和启动视图。开发者可以根据需求选择并分析相应的视图。 4. systrace 的优化策略:通过 systrace 分析数据,开发者可以找到系统性能的瓶颈,并通过一些优化策略来提升性能。例如,优化 CPU 使用率、减少线程活动、优化绘制时间、减少内存使用等。 总之,Android systrace 是一种强大的分析工具,能够帮助开发者检测和解决 Android 系统的性能问题。掌握 systrace 的使用方法和相关的性能优化策略,对于开发高质量的 Android 应用程序非常重要。 ### 回答3: Android Systrace是一个用于分析和优化Android系统性能的工具。它通过收集系统的实时跟踪数据来显示对系统资源的使用和各个进程、线程的活动情况进行分析。 使用Systrace前,需要在设备上启用“开发者选项”并连接到计算机上。然后,在命令行中运行"adb shell"进入设备的shell环境,使用"atrace"命令来启动SystraceSystrace会将跟踪数据保存到一个trace文件中。 Systrace可以用于分析多个方面的性能问题,包括CPU使用率、渲染性能、I/O操作、电池使用情况等。通过图形界面或命令行工具,可以查看trace文件并找出性能瓶颈所在。 Systrace的图形界面提供了一些工具和选项来帮助分析性能问题。例如,可以通过选择不同的时间段来查看特定时间段内的性能数据,也可以使用颜色编码和热力图来显示不同进程和线程的活动情况。 在使用Systrace进行性能优化时,需要注意以下几点: 1. 确定关注的性能指标,例如CPU使用率、内存占用等。 2. 分析trace文件时,要注意特定进程和线程的活动情况,找出可能的性能瓶颈。 3. 通过与其他工具(如Android Studio的Profiler)结合使用,可以更全面地分析和优化系统性能。 总之,Android Systrace是一个强大的性能分析工具,能够帮助开发者发现和解决Android系统中的性能问题,提高应用的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值