Android apitrace无法运行

时间:2013-02-03 08:27:25

标签: android opengl-es

我想在android上使用apitrace项目。我跟着the instructions from the readme file

但是在创建的地方没有任何痕迹。 我运行这个命令

adb shell TRACE_FILE=/data/test.trace LD_PRELOAD=/data/egltrace.so am start -n APP_NAME

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

我尝试按照apitrace原始发行版的 Dalvik.markdown 中的说明进行操作,但没有成功。

说明说明要设置两个属性:wrap._process_name_debug.apitrace.procname。根据这些指示,前者必须设定为LD_PRELOAD=/data/egltrace.so。启动应用程序时,我仍然不会在logcat中生成任何跟踪或任何与apitrace相关的消息。

通过将LD_PRELOAD指令放在脚本中并将其用作包装器,我获得了更多成功。这是我使用的脚本,名为 /data/apitrace.sh

LD_PRELOAD=/data/egltrace.so exec $@

您还可以设置TRACE_FILE环境变量以指定应将跟踪文件写入的路径。否则它将是_ / data / app_process.trace_。例如:

TRACE_FILE=/data/apitraces/mytrace.trace LD_PRELOAD=/data/egltrace.so exec $@

我相信apitrace负责在文件名中添加数字以防止覆盖现有文件。所以你将拥有 mytrace.trace mytrace.1.trace ,等等。

所以有了这个脚本,我就像这样设置属性:

adb shell setprop wrap._process_name_ /data/apitrace.sh
adb shell setprop debug.apitrace.procname _process_name_

然后我启动了该应用程序。我在logcat中看到如下内容:

I/dalvikvm( 5980): Exec: /system/bin/sh -c /data/apitrace.sh /system/bin/app_process /system/bin --application '--nice-name=_process_name_' com.android.internal.os.WrapperInit 25 17 'android.app.ActivityThread'
D/apitrace( 5991): apitrace: loaded
D/apitrace( 5991): apitrace[5991]: enabled for _process_name_
D/apitrace( 5991): apitrace: tracing to /data/app_process.trace

我正在使用CyanogenMod 10.1.3,它基于Android 4.2.2。