问题标签 [android-traceview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Can't open saved tracefile in TraceView - fails with "File could not be found"
I want to open a saved .trace file, which I created using Debug.startMethodTracing()
directly from the code. However, after copying it to my PC and trying to open it in DDMS, I get the error "The File [myfile].trace could not be found", which is strange, since I can open and read the file in Notepad without issues.
android - TraceView Eclipse 不工作
我有 ADT,内部版本:v22.0.0-675183。当我尝试使用 TraceView 时,在停止跟踪后出现错误:
有什么问题?
编辑:
当我尝试通过命令行运行它时
编辑 2 即使在空项目中也出现了问题(只是与 Hello world 的活动)。
android - 如何在Android中优先考虑线程/可运行
我正在使用 AsyncTask 在后台为 ListView 的每一行执行一些任务(从磁盘加载数据)。然而,当我使用 TraceView 查看我的不同应用程序线程之间如何共享 CPU 时,我最终会遇到这样一种情况,即主线程几乎消耗所有东西,而每个线程大约有 70 个线程消耗很少的 CPU 时间。此外,这些线程似乎都没有完成,因为行没有正确重新排列(数据没有加载)。
我如何确定与可视化行相对应的任务的优先级:在运行(或停止)与隐藏行相对应的任务之前完成可视化行的任务。
有没有办法做一些事情,比如使用单个线程并优先考虑相应的 Runnable 实例?
android - Android traceview - Android 3.2 与 4.1 上的行为
这个问题与 traceview 呈现的数据列的含义无关——我想我明白这一点。
在查看在 Android 3.2 设备与 Android 4.1 设备上捕获的 traceview 中的跟踪时,我注意到了几件事。我的问题是这些是否是为较新的 Android 版本所做的已知改进,或者它们是否是设备的限制,或者它们是否不是工件但实际上是有意义的。
我正在比较的两个设备/操作系统
- 三星 Galaxy Tab 10.1 2 核,运行 Android 3.2
- Google Nexus 7 平板电脑,4 核,运行 Android 4.1
我注意到的第一件事是,对于使用 Android 3.2 在三星 Galaxy Tab 上捕获的跟踪,没有“实时”列,只有“CPU 时间”列。有谁知道为什么?
我注意到的第二件事是,尽管搭载 Android 3.2 的三星 Galaxy Tab 有两个内核,但从三星 Galaxy Tab 捕获的 traceview 线程活动行始终显示在任何确切时间点都只运行一个线程。而对于 Google Nexus 7,显示多个线程同时运行。
为这两种设备运行的应用程序是一个测试应用程序,它启动一些线程,然后每个线程(包括主 UI 线程)循环一段时间,计算斐波那契数列。没有理由不能在三星 Galaxy Tab 或任何其他具有 2 核的设备上同时运行这两个线程。此外,当有 2 个线程与只有 1 个线程时,每个线程执行固定数量的计算所花费的时间大致相同 - 所以 2 个线程必须真正按预期同时执行。然后当 2 核设备上有 3 个线程时,每个线程进行计算所需的时间增加了 50%,这正是我所期望的。
所以,我认为这只是在运行 Android 3.2 的三星 Galaxy Tab 10.1 上进行跟踪捕获的限制。在此设备上,用于具有大量调用的“真实”应用程序,traceview 似乎显示两个线程同时运行,但如果我一直放大,活动实际上是交错的,并且永远不会有两个线程同时显示为活动的。
android - Android:如何以编程方式分析跟踪文件?
我有一个跟踪文件列表,我需要分析它们。有没有办法在不使用该工具的情况下以编程方式分析它们traceview
?
android - TraceView 文件没有数据
我已经添加了Debug.startMethodTracing("can_act");
inonCreate
和 Debug.stopMethodTracing();
in onDestroy
。跟踪文件的大小为 0KB。
什么地方出了错?
编辑:
它写出一个跟踪文件,但它的大小为 0 KB。我在设备上的自定义相机活动中使用这些方法。我在之后调用它super.onDestroy();
android - Android traceview 生成文件 .trace 有不可读的代码
我已成功使用traceview
工具生成跟踪文件。当我使用 Vim 打开.trace
文件时,我可以看到版本部分、线程部分、方法部分。
但是当我尝试查看数据部分时,它有不可读的代码。我尝试了 Emacs、Sublime Text 2、UltraEdit,但仍然没有成功。
如何读取数据部分?
android - ImageView.setImageResource 是我的 ListView 口吃的罪魁祸首,现在怎么办?
所以我的 ListView 在我的手机上卡顿了,所以我使用 TraceView 来确定罪魁祸首。
正如预期的那样,newView 和 bindView 从我所有的方法调用中花费的时间最多。
- newView() 将所有时间都花在了 inflater.inflate(R.layout.menu_row, parent, false); 称呼
- bindView() 将所有时间都花在 holder.icon.setImageResource(resource);
我对 setImageResource 进行了更深入的研究,调用层次结构是这样的:(所有这些方法都占用了 99% 的 CPU 时间):
- ImageView.setImageResource
- ImageView.resolveUri
- 资源.getDrawable
- Resources.loadDrawable
- Drawable.createFromResourceStream
- BitmapFactory.decodeResourceStream
- BitmapFactory.decodeStream
- BitmapFactory.nativeDecodeAsset(这是self导致最多 cpu 时间的方法)。
我可以做些什么来优化我的 ListView?(我所有的图像的磁盘大小都不超过 15 KB)。
这是我正在设置 xml 的 ImageView:
编辑:我已将 ImageView xml 更改为:
没有提供任何性能提升。
android - Android Traceview 上的关于(上下文切换)
我开始学习Android Traceview 来提高Android 应用程序的性能,有一个概念让我很困惑!在跟踪一个方法直到最深层次之后,在子方法列表中,我看到一个(上下文切换)占用了大部分 CPU 时间。
我的问题是:这是什么意思?为什么我们不能进一步追查它?
让我们看一下这个例子
android - 上下文切换是否会占用大量时间?
我遇到了一个应用程序(同时使用 java 和 C++ 以及 OpenCV)的问题,该应用程序在执行各种任务所需的时间上似乎非常不一致。为了帮助诊断这一点,我在 java 中创建了一个函数(称为one_off_speed_test()
),它只在大约半秒的循环中处理了一系列整数数学问题,然后将所用时间打印到日志中。如果我从内部重复调用此函数,onCreate()
则每次调用所花费的时间非常一致(+= 3%),但如果我从内部调用它onCameraFrame()
,当 OpenCV 从相机准备好图像时调用的函数,然后每个帧中的数学测试所花费的时间变化最多为两倍。我决定在 eclipse/DDMS 中尝试执行采样器,看看我是否能弄清楚发生了什么。我看到,当我点击 时one_off_speed_test()
,它列出了该函数的父母和孩子,以及一行“ (上下文切换) ”。然后在该行上,在标有“ Incl Real Time ”的列下,显示“66%”。现在我在使用 DDMS 方面不是很专家,对上下文切换只有一个模糊的想法,但是从目前的描述来看,是不是我有上下文切换占用大量时间的问题?还是我误解了 DDMS 输出。