Android Dalvik虚拟机是否通过仿生Libc与HAL/内核层通信?

Android Dalvik虚拟机是否通过仿生Libc与HAL/内核层通信?,android,android-ndk,hal,Android,Android Ndk,Hal,在给定的android堆栈中 不包括在库层使用NDK工具包编写的应用程序, 我了解到,在应用层编写的任何应用程序都必须在自己的进程中运行,在自己的Dalvik VM实例中运行,如下所示: 根据上面的进程堆栈,我看到Dalvik运行时正在通过仿生Libc库与HAL/内核层进行通信 我的问题: Dalvik VM不能在不使用仿生Libc库接口的情况下访问HAL/内核层吗?当涉及到C语言时,我发现您有些困惑 毕竟,bionic只是android的标准C库 首先,你的答案是否定的。 尽管仿生libC在其

在给定的android堆栈中

不包括在库层使用NDK工具包编写的应用程序, 我了解到,在应用层编写的任何应用程序都必须在自己的进程中运行,在自己的Dalvik VM实例中运行,如下所示:

根据上面的进程堆栈,我看到Dalvik运行时正在通过仿生Libc库与HAL/内核层进行通信

我的问题:


Dalvik VM不能在不使用仿生Libc库接口的情况下访问HAL/内核层吗?

当涉及到C语言时,我发现您有些困惑

毕竟,bionic只是android的标准C库

首先,你的答案是否定的。 尽管仿生libC在其图表中并不低于Dalvik,但事实是Dalvik使用libC助手函数来执行一些被视为操作系统服务的任务。 比如:

字符串处理、数学计算、输入/输出处理、内存分配和其他一些操作系统服务


不确定你是否看过2008年的谷歌IO演讲:虚拟机不需要做libc没有提供的任何事情。它确实可以访问NDK中不一定公开的某些功能,例如ashmem helpers。@fadden这个问题不能回答为是或否吗?那为什么呢?