gpt4 book ai didi

android - 是否可以仅使用 C 在 android 上编写应用程序?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:45 27 4
gpt4 key购买 nike

现在稍等片刻,然后再将其标记为重复,因为这是一个非常具体的问题。

我不是在问您是否可以使用另一种语言编写应用程序,该语言是使用 NDK 的绑定(bind);我想知道的是:

  1. 在硬件层面,dalvik 如何与 Android 设备上的 Linux 内核交互?

据我了解,(1) 的答案是因为 android 基本上是一个 Linux 系统,所以这是通过系统调用完成的。也就是说,在某种程度上,davlik/art VM 必须通过 C API 与 C Linux 内核交互。

  1. 如果您在设备上拥有 root 权限,为什么您不能从 native 系统二进制文件执行相同的操作?

所以,这当然是一个痛苦的经历,但是技术上有什么理由可以完全用 C 编写应用程序,而不使用 android 运行时?

(注意:不是没有运行时;显然,运行时必须存在才能执行设备初始化等各种操作;但独立的二进制文件不与运行时交互).

(我能想到造成这种情况的几个原因,特别是运行时需要对各种硬件进行独占硬件访问,但我找不到任何关于它的具体文档)

最佳答案

这是可能的,这就是守护进程在 Android 上的工作方式(例如 RILD)。但是,您无法访问 Android 设施(图形、位置等),因为没有来自 C 的 API。

请注意,为了与 Android API 对话,您的进程需要是 zygote 的子进程。如果您从 ADB shell 或 init 生成一个进程,您将不是 zygote 的 fork(),也不会直接访问 JVM。

关于android - 是否可以仅使用 C 在 android 上编写应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25174932/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com