当用户在 android 应用程序中执行某个操作时,有没有办法知道所有函数被调用?

Posted

技术标签:

【中文标题】当用户在 android 应用程序中执行某个操作时,有没有办法知道所有函数被调用?【英文标题】:Is there a way to know what all functions are called when a certain action is done by the user in an android application? 【发布时间】:2020-07-12 23:48:48 【问题描述】:

我是一名初级 android 开发人员,正在尝试修复应用程序中的一些错误。

我使用 Android Studio Debugger 手动设置断点并查看执行情况。直到现在,这个过程对我来说都很好,当我处于一种情况时,我无法弄清楚为什么当我执行某个操作时会打开某个视图(我不知道到底在哪里放置断点)。

这让我想知道当用户在应用程序中执行某个操作时,是否有一种自动方式可以知道幕后发生的事情。 LogCat 是一种方法,但它不会显示所有函数调用。只有一部分。

我想知道是否有办法知道,例如,如果用户点击一个按钮,那么某某函数会按某某顺序调用。

【问题讨论】:

我一般用LogCat或者Toast Message。 如果你不知道在哪里放置你的断点,我不知道 logcat 会有什么帮助......但是你怎么会不知道呢?是在你自己的代码里吗? @Nicolas ,这不是我的代码,我刚刚加入了一份新工作,成为一名 android 开发人员。这是我正在进行的项目。 在each方法中加入一些打印语句或者toast,查看logcat中是否打印。 @k786 你可以为按钮使用监听器。尝试通过更改变量来发布代码,以便我们至少了解问题的要点。 【参考方案1】:

Android 分析器呢?您可以捕获某个操作的概要文件,然后查看所有函数调用堆栈、内存消耗等。

https://developer.android.com/studio/profile/android-profiler

【讨论】:

以上是关于当用户在 android 应用程序中执行某个操作时,有没有办法知道所有函数被调用?的主要内容,如果未能解决你的问题,请参考以下文章

[android开发篇]自定义权限

启动 24 小时计时器,当 24 小时结束时通知用户

Android 服务的限制

android 性能优化JobScheduler使用及源码分析

Android Permission整理

Android Permission整理