Android traceview - Android 3.2与4.1的行为

时间:2013-08-15 14:41:07

标签: android android-traceview

这个问题与traceview提供的数据列的含义无关 - 我想我明白了。

在Android 3.2设备和Android 4.1设备上捕获的traceview中查看跟踪时,我注意到了一些事情。我的问题是这些是否是针对较新的Android版本所做的已知改进,或者它们是否是设备的限制,或者它们不是工件但实际上是有意义的。

我正在比较的两个设备/操作系统

  • 三星Galaxy Tab 10.1,内置2核,运行Android 3.2
  • 谷歌Nexus 7平板电脑,4核,运行Android 4.1

我注意到的第一件事是,对于使用Android 3.2在Samsung Galaxy Tab上捕获的痕迹,没有“实时”列,只有“CPU时间”列。有谁知道为什么?

我注意到的第二件事是,尽管带有Android 3.2的三星Galaxy Tab有两个内核,但traceview线程活动行用于从Samsung Galaxy Tab always show only one thread running at any exact point in time获取捕获。而for the Google Nexus 7, multiple threads are shown running simultaneously

为两个设备运行的应用程序是一个测试应用程序,它启动一些线程,然后每个线程,包括主UI线程,循环计算Fibonacci序列一段时间。在Samsung Galaxy Tab或任何其他具有2个内核的设备上,没有理由不能同时运行其中两个线程。此外,当有2个线程与只有1个线程时,每个线程执行固定数量计算所花费的时间大致相同 - 因此2个线程必须真正按预期同时执行。然后当2核设备上有3个线程时,每个线程进行计算所需的时间增加了50%,这正是我所期望的。

所以,我认为这只是运行Android 3.2的三星Galaxy Tab 10.1上的跟踪捕获限制。在具有大量调用的“真实”应用程序的此设备上,traceview似乎显示两个线程同时运行但如果我一直放大,则活动实际上是交错的,并且永远不会同时显示为活动的两个线程。 / p>

0 个答案:

没有答案