如何使用strace跟踪adb shell am start myandroidapp

3
我需要在sdk模拟器中跟踪android应用程序,希望你能帮忙。
以下是我的设置:
- 运行Android API 4.03的Android SDK模拟器 - 已连接adb shell到模拟器
我可以使用“adb install filename.apk”安装apk,并使用以下命令运行应用程序:
adb shell am start -a android.intent.action.Main -n com.akproduction.notepad/com.akproduction.notepad.NoteList
但是,当我尝试使用以下命令进行跟踪时(adb shell):
strace am start -a android.intent.action.Main -n com.akproduction.notepad/com.akproduction.notepad.NoteList
却没有任何输出!
请问如何跟踪Android应用程序及其安装的运行时行为?
谢谢,
Jose.
P.S. 测试应用程序位于此处:http://www.appbrain.com/app/ak-notepad/com.akproduction.notepad

请参考以下链接:https://dev59.com/BWfWa4cB1Zd3GeqPkc3y - Paul Donohue
1个回答

1

am 是批处理文件,不能在 strace 中使用。

您需要像这样运行它:

strace -v -fF -tt -s 65535 -o /data/local/tmp/opengl.strace /system/bin/app_process /system/bin com.android.commands.am.Am start -a android.intent.action.MAIN -n demo.opengl.android/.OpenGLDemo

顺便提一下,不要使用从下载链接获取的静态编译的strace二进制文件。

http://benno.id.au/blog/2007/11/18/android-runtime-strace

它将不会输出任何内容。

相反,使用随机存取存储器(ROM)附带的那个。


请注意,这并不会实际跟踪应用程序的进程 - 它只会跟踪发送请求以启动它。要跟踪应用程序进程,您需要通过PID识别它并将strace附加到它上...而且您必须有权限这样做,这意味着要么是root用户,要么具有与应用程序相同的用户ID的shell。 - Chris Stratton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接