天道酬勤,学无止境

Does Android systrace require root access?

I am trying to run systrace on a non-rooted device. It always gives the following error if any of the trace events is selected:

Unable to find trace start marker 'TRACE:': error opening /sys/kernel/debug/tracing/events/cpufreq_interactive/enable: No such file or directory

If no trace event is selected, it works, but the trace is not very usweful.

Does systrace requires root access?

Note that I am running systrace directly from Eclipse (DDMS) on Windows-7.

标签

评论

According to systrace.py --help, the following traces require root access:

  • -d, --disk: trace disk I/O (requires root)
  • -u, --bus-utilization: trace bus utilization (requires root)
  • -w, --workqueue: trace the kernel workqueues (requires root)

The other options don't specify that a root access is required.

This said, I can use some of the traces (such as --cpu-freq), but I am unfortunately interested in --cpu-load which gives me the very same error as you mentioned.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 在设备上运行Android systrace(Running Android systrace on device)
    问题 我无法运行名为systrace.pl的Android SDK工具,因为出现以下错误: error opening /sys/kernel/debug/tracing/options/overwrite: No such file or directory 实际上,/ sys / kernel / debug / tracing目录甚至根本不存在。 一些研究表明,我需要使用以下命令启用debugfs: mount -o rw,remount -t debugfs none /sys/kernel/debug 之后在那儿运行mount表示debugfs正在运行: #mount ... /sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0 ... 我在开发人员设置菜单中启用了跟踪(所有项目)。 我在三星Galaxy S3上使用了ROM 4.1.1。 Android上的systrace上有很多文章,但似乎没有什么方法可以解决在/ sys / kernel / debug / tracing中实际上没有生成文件的问题。 回答1 看一下这个文件: 在Android 4.3及更高版本上进行跟踪要在Android 4.3和更高版本的设备上运行跟踪,请执行以下操作: Make sure the device is
  • 无法查看由Android SDK中的Systrace工具生成的HTML跟踪报告(Unable to view HTML trace report generated by Systrace tool in Android SDK)
    问题 我正在尝试使用Android SDK中的Systrace工具生成跟踪报告,但无法在浏览器中查看报告。 它为空白,不包含任何信息。 我在一些论坛上读到需要在Chrome浏览器中打开报告,我也使用Chrome打开了报告,但报告为空白。 我已经从开发人员选项中启用了USB调试,并且设备正在运行Android 4.2,并且我正在使用Android SDK中的DDMS工具生成跟踪。 http://developer.android.com/tools/help/systrace.html 回答1 首先,如果有人在OS X或Windows上使用Chrome v50.0 +,请尝试此操作。 打开chrome浏览器,然后转到“ chrome:// tracing” 在“跟踪”页面中,单击“加载”,然后选择systrace生成的html文件。 其次,我认为这是Google确认的错误。 看起来这是因为现代版本的Chrome已弃用Object.observe函数[1] [2]。 有关更多信息,请参见https://code.google.com/p/android/issues/detail?id=57135 回答2 我也有在Linux上运行chrome的问题。 看来他们在执行javascript绘制结果的过程中存在错误。 检查JavaScript控制台。 我的说。 未捕获的TypeError
  • 都9102年了,Android 冷启动优化还是只会老三样吗
    性能优化一直都是一个 Android 开发者逃不过的话题,启动优化则更是重中之重。启动速度可以直接影响一个 App 的留存率和转化率,没有人会希望自己点击之后还要等一会才打开。 但是当我一番调研后发现,网上大部分启动优化相关的文章,套路都差不多,我称之为老三样。 什么是老三样? 将启动页主题背景设置成闪屏页图片 这么做的目的主要是为了消除启动时的黑白屏,给用户一种秒响应的感觉,但是并不会真正减少用户启动时间,仅属于视觉优化。 主页面布局优化 1)通过减少冗余或者嵌套布局来降低视图层次结构 2)用 ViewStub 替代在启动过程中不需要显示的 UI 控件 Application 和 主 Activity 的 onCreate 中异步初始化某些代码 因为在主线程上进行资源初始化会降低启动速度,所以可以将不必要的资源初始化延迟,达到优化的效果。但是这里要注意懒加载集中化的问题,别用户启动时间快了,但是无法在界面上操作就尴尬了。 老三样并不说是不管用或者过时了,只是这三种优化方式都是非常基础的方式,当你的启动优化遇到了瓶颈,是不能够再通过这三种方式突破的。 而且只会基础的优化方式,并不会在履历中展现出优势。 所以今天说说在老三样的基础优化之上还有哪些可行的方案。 进阶方案一 通过 systrace 查找耗时代码 具体步骤 1)清空手机后台 2)在命令行执行 python $ANDROID
  • Android Camera简单整理(四)-Android Camera性能Debug经验
    针对手机厂商相机性能优化部分进行重点总结记录 Android Camera性能Debug经验 一.相机性能场景二.相机性能debug工具及方案建议1.dumpsys media.camera1.1 qcom机器1.2 mtk机器 2.systrace3.perfetto4.SimplePerf,火焰图5.Android sudio profile6.Qcom Perfdump工具7.Cpu dump工具8. CpuFloat & PerfMon+ Apk9.查看视频文件丢帧情况工具10.perflock 及 thermal Debug11.内存监控11.1 procrank11.2 top11.3 ION内存信息11.4 Gpu内存信息 12.GAPID 三.基础知识补充 一.相机性能场景 类别场 景耗时重点建议启动类热启动App代码优化精简显示,内存预分配,cpu perflock boost冷启动本质上做成热启动,一般都让相机在后台被杀后过几分钟自动重启,由于是系统平台应用,做到这点不是很难切换类模式切换要经过开关Camera过程cpu perflock boost,减少无用初始化,耗时久的可考虑并行化初始化前后置切换要经过开关Camera过程同一型号手机可能摄像头马达不一样,滚珠式或弹簧式,在弹簧式马达下电关闭相机时如果一下子收回会有摄像头撞击的声音,因此一般让其分步下电
  • 你想要的Android性能优化系列:启动优化 !
    文章目录 一、概述二、应用启动流程介绍三、优化核心思想四、时间检测4.1 Displayed4.2 adb shell4.3 reportFullyDrawn()4.4 代码打点4.5 AOP(Aspect Oriented Programming) 打点 五、分析工具介绍5.1 Traceview5.2 Systrace 六、启动优化方案6.1 视觉优化6.2 异步初始化6.3 延迟初始化6.4 Multidex预加载优化6.5 页面数据预加载6.6 页面绘制优化 七、总结 一、概述 手机桌面点击一个应用,用户希望应用能 及时响应、快速加载。启动时间过长的应用可能会令用户失望。这种糟糕的体验可能会导致用户在 Play 商店针对您的应用给出很低的评分,甚至完全弃用您的应用。 本篇就来讲解如何分析和优化应用的启动时间。首先介绍启动过程机制,然后讨论如何检测启动时间以及分析工具,最后给出通用启动优化方案。 二、应用启动流程介绍 根据官方文档,应用有三种启动状态:冷启动、温启动、热启动。 冷启动 冷启动是指应用从头开始启动:系统进程在冷启动后才创建应用进程。发生冷启动的情况包括应用自设备启动后或系统终止应用后首次启动。例如,通过任务列表手动杀掉应用进程后,又重新启动应用。 热启动 热启动比冷启动简单得多,开销也更低。在热启动中,系统的所有工作就是将您的 Activity 带到前台
  • 优化启动时间
    本文档提供了有关改进特定 Android 设备的启动时间的合作伙伴指南。启动时间是系统性能的重要组成部分,因为用户必须等待启动完成后才能使用设备。对于较常进行冷启动的汽车等设备而言,较短的启动时间至关重要(没有人喜欢在等待几十秒后才能输入导航目的地)。 Android 8.0 支持一系列组件的多项改进,因而可以缩短启动时间。下表对这些性能改进(在 Google Pixel 和 Pixel XL 设备上测得)进行了总结。 组件改进引导加载程序 通过移除 UART 日志节省了 1.6 秒通过从 GZIP 更改为 LZ4 节省了 0.4 秒设备内核 通过移除不使用的内核配置和减少驱动程序大小节省了 0.3 秒通过 dm-verity 预提取优化节省了 0.3 秒通过移除驱动程序中不必要的等待/测试,节省了 0.15 秒通过移除 CONFIG_CC_OPTIMIZE_FOR_SIZE,节省了 0.12 秒I/O 调整 正常启动时间节省了 2 秒首次启动时间节省了 25 秒init.*.rc 通过并行运行 init 命令节省了 1.5 秒通过及早启动 zygote 节省了 0.25 秒通过 cpuset 调整节省了 0.22 秒启动动画 在未触发 fsck 的情况下,启动动画的开始时间提前了 2 秒,而触发 fsck 时启动动画则大得多通过立即关闭启动动画在 Pixel XL 上节省了 5
  • 触摸/释放屏幕时,Galaxy Note 2上的Android线程性能/优先级(Android thread performance/priority on Galaxy Note 2 when screen is touched/released)
    问题 我有一个适用于Android的OpenGL游戏。 触摸屏幕时,它以60fps的良好速度运行。 当我松开手指时,它会回落到30fps左右。 触摸事件/释放是否会提高/降低线程的优先级?如果是,我该如何复制它以使其保持恒定的60fps。 到目前为止,这似乎仅是Galaxy Note 2的问题。 回答1 我假设您正在使用onDrawFrame和setRenderMode(RENDERMODE_CONTINUOUSLY) 。 30和60FPS表示在设备屏幕刷新时调用onDrawFrame的实现。 大多数显示器以60Hz刷新,从而为您提供60FPS。 Galaxy Note 2可能具有某些省电功能,当屏幕上没有任何触摸时,屏幕刷新频率会限制为30Hz。 检查是否有任何方法可以禁用此功能。 AFAIK,OpenGL ES没有为屏幕刷新率指定标准,尽管FPS有所不同,您将需要一个节流功能来确保您的游戏运行/感觉相同(即,以相同的速度)。 回答2 是的。 观察这种现象的最佳方法是使用启用了“ freq”标记的systrace。 您可能需要一台有根设备,并且肯定需要一台启用了systrace的设备。 systrace将记录各种组件的时钟频率变化。 它因设备而异,但通常可以获取每核CPU时钟和GPU内存速率。 您可能会看到其中的一些帧速率下降的同时大幅下降。
  • 史上最全Android渲染机制讲解(长文源码深度剖析)
    前言 渲染机制是Android操作系统很重要的一环,本系列通过介绍应用从启动到渲染的流程,揭秘Android渲染原理。 问题 1.vsync如何协调应用和SurfaceFlinger配合来完成UI渲染、显示,App接收vsync后要做哪些工作? 2.requestLayout和invalidate区别? 3.performTraversals到底是干什么了? 4.surfaceflinger怎么分发vsync信号的? 5.app需要主动请求vsync信号,sw sync才会分发给app? 6.surfaceview显示视频的时候,视频会一直频繁刷新界面,为什么整个UI界面没有卡顿? 7.app是如何构建起上面这套机制的? 如果对于上面的几个问题没有非常确认、清晰的答案可以继续看下去,本文通过详细介绍渲染机制解答上面的问题。 Vsync信号 Android在“黄油计划”中引入的一个重要机制就是:vsync,引入vsync本质上是要协调app生成UI数据和SurfaceFlinger合成图像,app是数据的生产者,surfaceflinger是数据的消费者,vsync引入避免Tearing现象。vsync信号有两个消费者,一个是app,一个是surfaceflinger,这两个消费者并不是同时接收vsync,而是他们之间有个offset。 vsync-offset引入原因 上面提到hw
  • Android Systrace 跟踪文件格式(Android Systrace Trace File Format)
    问题 Android systrace工具,通过 ADB 调用atrace工具。 但是,我不太了解跟踪文件的格式。 显然它与 linux ftrace工具非常相似,但有一些不同。 主要区别在于它不使用System.Map文件,但它将所有信息都包含在跟踪文件中。 此外,还有新的 B|E 条目是 android 特定的。 在 Android 源代码中有一些关于这种格式的信息:http://androidxref.com/4.1.1/xref/external/chromium-trace/src/tracing/linux_perf_importer.js 但是,在该文档中,我们可以看到该格式属于 Linux Perf Tool。 我不这么认为,linux perf 作为输出提供了一种非常不同的格式......(除非一些特殊的配置处于活动状态......) 我的问题是:有谁知道我在哪里可以找到有关使用 adb 的atrace工具生成的 android 跟踪文件的官方文档? 您熟悉这种格式吗? # tracer: nop # # entries-in-buffer/entries-written: 66427/66427 #P:2 # # _-----=> irqs-off # / _----=> need-resched # | / _---=> hardirq/softirq # |
  • Android 性能优化必知必会(2020-5-16)
    做了这么久性能相关的工作,也接触了不少模块,说实话要做好性能这一块,真心不容易.为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以做好 在学习的过程中,除了看源码,我还接触到了很多互联网上已有的知识,各位前辈们,将他们的知识和经验倾囊相授,让我少走了很多弯路. 我在自己的笔记里面存了很多很优秀的技术文章和技术文档,现在我决定将这些放到网上,让每一个想进入 Android 系统开发和优化这个领域的人,能通过阅读这篇文章,快速入门. 同时也算是我对知识的一个梳理,查漏补缺,终身学习 这篇文章记录了 Android 性能优化所必须掌握的知识,涵盖性能优化相关的方方面面(当然如果读者同学你也有很棒的私藏文章,也可以加入到这篇文章里面).部分文章可能需要特殊的技巧才能看到,希望你已经掌握了这一部分技巧。另外附送Android 开发者学习路线(2020 版本) 这篇文章会持续更新,最新更新时间:2020-04-27. 更多 Android 相关知识文章可以去个人博客 优化心得和经验 系列视频 Android Performance Patterns给 App 提速:Android 性能优化总结 移动端性能监控方案 Hertz Android 性能优化后续Android性能优化之虚拟机调优Android UI
  • (一百八十三)学习TraceView
    参考: Android 性能优化:使用 TraceView 找到卡顿的元凶 Android性能优化(一)之启动加速35% PS:启动加速总结一下就是能懒加载的懒加载,不能懒加载的看能不能放异步,异步线程合理分配优先级。 1. 使用 Android Studio 生成 trace 文件 Android Monitor已经过时了,现在用的profile 之前有学习过,但好久不用忘了。。。 https://blog.csdn.net/sinat_20059415/article/details/80584621 突然发现之前参考的文档其实就是搬运的开发文档,也是,自己摸索哪有这么全 https://developer.android.google.cn/studio/profile/cpu-profiler 2.使用 DDMS 生成 trace 文件 jiatai@jiatai:~/Android/Sdk/tools$ sudo ./monitor OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 Error Loading DDMS Preferences ddms已经过时了 3.Systrace 如果要收集详细的系统级数据
  • Android性能优化系列:启动优化
    文章目录 1 应用启动类型1.1 冷启动1.2 温启动1.3 热启动 2 查看启动耗时2.1 adb命令查看2.2 Logcat Displayed查看启动耗时2.3 手动记录启动耗时2.3.1 Application.attachBaseContext()2.3.2 Activity.onWindowFocusChanged()?draw? 2.4 AOP记录方法耗时 3 启动耗时分析工具3.1 CPU Profiler3.2 TraceView3.2.1 TraceView的操作步骤3.2.2 TraceView使用注意事项3.2.3 TraceView的缺点和使用场景 3.3 Systrace3.3.1 Systrace环境安装3.3.2 Systrace的操作步骤3.3.3 Systrace的优点使用场景 4 Application初始化的启动优化途径4.1 异步加载:子线程/线程池、TaskDispatcher4.1.1 子线程/线程池4.1.2 异步启动器TaskDispatcher 4.2 延迟加载:IdleHandler4.3 其他启动优化方案 5 UI的启动优化途径5.1 修改启动主题背景5.2 UI渲染布局优化5.3 异步inflate 1 应用启动类型 应用的启动类型分为三种: 冷启动 温启动 热启动 三种类型启动耗时时间从大到小排序:冷启动 > 温启动 >
  • 深入探索Android启动速度优化
    前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。 一、启动优化的意义 如果我们去一家餐厅吃饭,在点餐的时候等了半天都没有服务人员过来,可能就没有耐心等待直接走了。 对于App来说,也是同样如此,如果用户点击App后,App半天都打不开,用户就可能失去耐心卸载应用。 启动速度是用户对我们App的第一体验,打开应用后才能去使用其中提供的强大功能,就算我们应用的内部界面设计的再精美,功能再强大,如果启动速度过慢,用户第一印象就会很差。 因此,拯救App的启动速度,迫在眉睫。下面,我们来逐步深入探索提升Android App启动速度的奥秘。 二、应用启动流程 1 、应用启动的类型 冷启动 从点击应用图标到UI界面完全显示且用户可操作的全部过程。 特点 耗时最多,衡量标准 启动流程 Click Event -> IPC -> Process.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl 热启动 因为会从已有的应用进程启动,所以不会再创建和初始化Application,只会重新创建并初始化Activity。 特点 耗时较少 启动流程 LifeCycle -> ViewRootImpl ViewRootImpl
  • Unable to view HTML trace report generated by Systrace tool in Android SDK
    I am trying to generate trace reports with Systrace tool in the Android SDK, but I cant view the report in the browser. It is blank and does not contain any information. I read in some forums that I need to open the report in Chrome browser, I opened it with Chrome as well but the report is blank. I have enabled USB Debugging from the Developer Options and device is running Android 4.2 and I am using DDMS tool from the Android SDK to generate the traces. http://developer.android.com/tools/help/systrace.html
  • Android系统稳问题总结01
    这篇做为稳定性分析的开篇,但我不知道下篇什么时候写。因为前几天突然想到这些就记录下来。我觉得这里记录的会比具体的分析方法更有用,分析方法总能在网上找到的。 什么是稳定性问题 分析Android问题时,经常会遇到一些稳定性问题。什么是稳定性问题呢,我归结有以下特点, 非必现问题,或没有找到复现路径的问题。其实没有非必现问题,只有找不到复现方法。系统越复杂这类问题越多,因为软件路径太多了。 应用的死机重启。这类问题不能简单的归结为应用问题,毕竟应用是跑在系统上的。当应用开发人员无法分析出问题时,可能就会认为是稳定性问题。 系统死机重启。Android开发还是偏重应用的,这样导致系统开发人员较少。很多时候碰到这类问题就找不到分析方法,也就归到稳定性上。起始这类问题与Linux系统上的分析方法并没有太大却别,只不过深入底层的人越来越少了。 原生代码的问题。Android原生代码也是有bug的,因为这部分代码没人动,也就很少有人研究。最后又归到稳定性上。 性能问题。有时性能问题也会归到稳定性上,例如正常情况下某应用启动很快,在某种情况下启动很慢,这很可能就是性能导致的。我认为性能问题和稳定性问题不能混为一谈,二者的分析方法有很大差别。 没人愿意深入研究的问题。各模块都不承认是自己的问题,相互扯皮。因为没有人从系统角度上来分析问题,也不进行深入研究,觉得还是归到稳定性好些。
  • 在Windows 7上使用Jelly Bean 4.1模拟器在ADB中运行systrace工具时出错(Error running systrace tool in ADB using a Jelly Bean 4.1 emulator on Windows 7)
    问题 如何运行systrace以显示其html输出? 看完Google I / O 2012演讲“无论是黄油还是糟”,我都无法使用运行Jelly Bean 4.1的模拟器使systrace在Windows 7上正常工作。 我做了以下事情: 安装了Python 2.7,并将安装文件夹添加到了我的PATH中运行以下命令: C:\android-sdk\platform-tools\systrace>python systrace.py (使用旧版SDK: C:\android-sdk\tools\systrace>python systrace.py ) 但是我在cmd中收到以下错误: Traceback (most recent call last): File "systrace.py", line 212, in <module> main() File "systrace.py", line 124, in main ready = select.select([adb.stdout, adb.stderr], [], [adb.stdout, adb.stderr]) select.error: (10093, 'Either the application has not called WSAStartup, or WSAStartup failed') 笔记:
  • 【安卓开发系列 -- APP】APP 性能优化 -- 启动优化
    【安卓开发系列 -- APP】APP 性能优化 -- 启动优化 【1】APP 启动优化的必要性 原因 : 用户希望应用能够及时响应并快速加载,启动时间长的 APP 不能满足该期望; 启动太慢的结果 : 体验效果差,用户流失,产品失败; 【2】启动流程以及分类 【2.1】开机启动流程 注意,该流程图所示的启动过程为系统创建并启动应用的过程,一般不需要优化; 【2.2】冷启动 冷启动指应用从头开始启动,系统进程在冷启动后才创建应用进程,发生冷启动的情况包括应用自设备启动后或系统终止应用后首次启动; 冷启动特点 : 耗时最多,衡量 APP 启动时间的标准 冷启动流程 : 加载并启动 APP -> 启动后立即为该 APP 显示一个空白启动窗口 -> 创建 APP 进程(创建应用程序对象) -> 创建主线程,创建主 Activity -> 加载布局并绘制 click event -> IPC -> Process.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl 【2.3】热启动 热启动中系统所有的工作便是将 Activity 带到前台,若应用中所有的 Activity 仍驻留在内存中, 则应用可以无须重复对象初始化、布局扩充和呈现; 热启动速度 : 最快 【2.4】温启动
  • Android Systrace Trace File Format
    Android systrace tool, calls atrace tool via ADB. However, I don't understand very well the format of the traces file. Apparently it is very similar to linux ftrace tool with some differences. The main difference is that is doesn't uses a System.Map file but it includes all that information into the trace file. Also, there are new B|E entries that are android specific. There is some information about this format in Android Source Code at: http://androidxref.com/4.1.1/xref/external/chromium-trace/src/tracing/linux_perf_importer.js However, in that documentation we can read that the format
  • 深入探索Android启动速度优化
    前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。 在性能优化的整个知识体系中,最重要的就是稳定性优化,在上一篇文章 《深入探索Android稳定性优化》 中我们已经深入探索了Android稳定性优化的疆域。那么,除了稳定性以外,对于性能纬度来说,哪个方面的性能是最重要的呢?毫无疑问,就是应用的启动速度。下面,就让我们扬起航帆,一起来逐步深入探索Android启动速度优化的奥秘。 一、启动优化的意义 如果我们去一家餐厅吃饭,在点餐的时候等了半天都没有服务人员过来,可能就没有耐心等待直接走了。 对于App来说,也是同样如此,如果用户点击App后,App半天都打不开,用户就可能失去耐心卸载应用。 启动速度是用户对我们App的第一体验,打开应用后才能去使用其中提供的强大功能,就算我们应用的内部界面设计的再精美,功能再强大,如果启动速度过慢,用户第一印象就会很差。 因此,拯救App的启动速度,迫在眉睫。 二、应用启动流程 1 、应用启动的类型 应用启动的类型总共分为如下三种: 冷启动热启动温启动 下面,我们来详细分析下各个启动类型的特点及流程。 冷启动 从点击应用图标到UI界面完全显示且用户可操作的全部过程。 特点 耗时最多,衡量标准。 启动流程 Click Event -> IPC -> Process.start ->
  • Running Android systrace on device
    I'm unable to run the Android SDK tool called systrace.pl because I get errors like: error opening /sys/kernel/debug/tracing/options/overwrite: No such file or directory And indeed the /sys/kernel/debug/tracing directory doesn't even exist. A little research showed I need to enable debugfs with the following command: mount -o rw,remount -t debugfs none /sys/kernel/debug Running mount there afterwards indicates the debugfs is running: #mount ... /sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0 ... And I have trace enabled (all items) in the developer settings menu. I'm using the