如何捕获/记录Android应用程序发出的api调用(函数调用)?

如何捕获/记录Android应用程序发出的api调用(函数调用)?,android,api,logging,Android,Api,Logging,我已经在AVD(仿真器)Android上安装了一个应用程序 有没有一种方法可以让我了解应用程序在运行时进行的api调用(函数调用) 在AVD(仿真器)上玩它 是否有一种方法可以记录/捕获应用程序在与之交互时发出的所有api调用(函数调用) 是否有人知道通过api调用(函数调用)捕获应用程序流的工具 例如,如果有一个混乱的应用程序,那么典型的操作将是 [1] launch app [2] write message [3] send message so I want to capture th

我已经在AVD(仿真器)Android上安装了一个应用程序

有没有一种方法可以让我了解应用程序在运行时进行的api调用(函数调用) 在AVD(仿真器)上玩它

是否有一种方法可以记录/捕获应用程序在与之交互时发出的所有api调用(函数调用)

是否有人知道通过api调用(函数调用)捕获应用程序流的工具

例如,如果有一个混乱的应用程序,那么典型的操作将是

[1] launch app
[2] write message
[3] send message

so I want to capture the api calls corresponding to when [1] i.e when the 
app is launched.
then log/capture api calls when [2] i.e write message. finally what api calls were made
when I do [3] i.e hit send button.

您可以通过以下方式在命令提示符下捕获应用程序启动的所有活动:

adb logcat | grep "ActivityManager"

如果您引用的是您编写的应用程序,则可以使用Log类将消息记录到logcat


您还可以使用跟踪工具查看设备中发生了什么,并推断api调用。

回答可能太晚了,但我使用了跟踪工具,它工作得很好。您也可以直接从这里查看偏好值。

应用程序不是我写的。我已经爬过游戏商店并下载了应用程序,所以我认为你运气不好。即使是跟踪工具(列出每个方法调用及其执行时间)也需要一个可调试的应用程序来连接。如果你真的很幸运,你正在检查的应用程序已上载到PlayStore,并设置了可调试标志。如果我反编译该应用程序,该怎么办?我正在考虑使用apktool、dex2jar工具进行反编译。但是我想我最终会有很多错误,因为这些工具没有准确地输出源代码。你可以在Android的调试器上使用某种调试器,在执行代码行时让你暂停执行(如果你知道你的API调用在哪里),我在Android运行时检查方面没有这样的经验。我从未使用过APKtool,但您可以尝试一下,看看是否能够将可调试标志添加到清单中。然后你可以使用跟踪工具。如果我没有应用程序的源代码,这会起作用吗。我从play store(apk)下载了一些应用程序。我没有他们的源代码是的,。在android中启动任何应用程序,只需在您的命令提示符下运行此命令,日志将显示完整的活动流程…转到您的命令提示符..键入adb设备..在那里您可以看到列出的您的模拟器…然后运行上面的命令,只需查看日志..它将告诉您packagename,后跟活动名称…这将只捕获一小部分活动所需信息。@adcom:谢谢,这是一个有用的工具。但我要看的是api调用(函数调用)。有没有办法得到它?你找到你想要的东西了吗?没有,请阅读下面的评论。我想我找到了一些可能有用的东西。你有Skype吗?我们可以试试看