android - 是否有任何 Android 函数调用只进行一两个特定的系统调用?

标签 android c linux-kernel

我想针对 Android 应用程序中的某些特定代码行跟踪系统调用,并使用 strace系统调用 Hook ,我可以得到针对 APK 的系统调用列表。

我想知道是否有任何函数调用或其他任何我们已经知道确切数量的系统调用的东西,以便我可以将其放在我感兴趣的代码行之前和之后?

最佳答案

您尝试做的事情的麻烦在于您的一步通过Java VM与底层系统分离。它可以在你的脚下做各种与系统调用相关的事情,而你的应用程序无法控制。

在非 Android 世界中,最常用的系统调用是“gettimeofday”,因为它永远不会被库函数缓存,并且很容易看到发生的情况。然而,正如您在上一个问题中指出的那样,这要困难得多,因为虚拟机正在自行进行 gettimoufday 调用(很可能是出于会计目的)。因此,您需要选择一个会导致系统调用但不太可能被虚拟机正常调用的 android 函数。通过 API 查看的一些候选人包括:

祝你好运。

关于android - 是否有任何 Android 函数调用只进行一两个特定的系统调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314335/

相关文章:

java - 使用 JSON 和 PHP 从 SQL 数据库(无 MYSQL DB)(在 android 中)获取数据

c - 接受安全/面向 future 的方式来解析/proc/%d/stat?

c++ - 调度程序是一个单独的进程还是仅在其他进程的上下文中运行

java - 从MainActivity启动Intent,从Intent返回后如何更改Mainactivity上的内容

javascript - 如何在 React-Native 复选框中更改背景颜色透明?

c - select(2) 保证能够无阻塞地写入文件的数据量是多少

c - ERESTARTSYS 在编写 linux 驱动程序时使用了什么?

linux - 如何获得 CFS 带宽控制 linux 补丁?

java - 创建新项目后出现Android Studio错误时刻

c - 两个不同的文件但相同的描述符?