【问题标题】:startNativeTracing to profile a native android LibrarystartNativeTracing 分析原生 android 库
【发布时间】:2023-03-21 19:14:01
【问题描述】:

我正在尝试使用 android Debug 类中的 startNativeTracing 方法,但在任何地方都找不到输出。

我在 android ADT 包提供的模拟器中运行我的应用程序,使用命令行选项 -trace ericcv。我在onResume 中调用Debug.startNativeTracing(),在onPause 中调用Debug.stopNativeTracing()

我也尝试过使用f9 来停止和启动跟踪。控制台打印出“开始跟踪”和“停止跟踪”,但我不知道是否创建了跟踪文件,如果是,它在哪里。

我在模拟器 sdcard 使用 adb shell 运行时读取了它,但那里没有任何新内容。如果它有帮助,我会尝试使用这个工具来分析 OpenCV 库,同时它由面部检测样本运行。

更新: 不幸的是,我启动模拟器的地方没有跟踪文件。我注意到 Logcat 中有一条错误消息:“打开跟踪文件时出错:没有这样的文件或目录”。有谁知道本地示踪剂在哪里寻找?我已经尝试创建文件“ericcv.trace”,而“ericcv”是我启动模拟器的目录,但这没有任何作用。 谢谢

【问题讨论】:

标签: android android-ndk profiling native trace


【解决方案1】:

跟踪文件在主机系统上,而不是在模拟设备上。

(编辑)

它位于 AVD 配置目录下。比如我在Linux下这样启动SDK模拟器:

./tools/emulator -trace fubar @Simple-AVD

那么跟踪数据将在$HOME/.android/avd/Simple-AVD.avd/traces/fubar/

获得跟踪后,您需要使用build/envsetup.sh 中定义的tracedmdump shell 函数将输出转换为traceview 格式。 (Some notes about that.)

【讨论】:

  • 不幸的是,我启动模拟器的地方没有跟踪文件。我在问题中添加了一些信息
  • 你说得对,它移动了。我用新位置更新了答案。
  • 找到了!谢谢!我会投票赞成你的答案,但我还没有足够的堆栈代表
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
  • 2011-09-06
  • 1970-01-01
  • 2016-05-10
  • 2021-11-01
  • 1970-01-01
相关资源
最近更新 更多