Android有“主机”操作系统吗?

我正在学习Android考试,而我无法理解的一件事是Android Dalvik VM / Linux Kernel make up.我的理解是,在典型的机器上,操作系统位于内核之上,这是:

hardware > kernel > OS > applications

但在Android上它看起来像这样:

hardware > kernel > Dalvik VM > app
                  > Dalvik VM > app

如果这是对的,这是否意味着内核和应用程序之间唯一的东西是Dalvik VM,而且基本上没有像Windows那样的“Android操作系统”?

解决方法:

操作系统的定义有些模糊,但内核肯定是操作系统的一部分.我认为人们普遍认为操作系统不仅仅运行在内核之上.

定义的模糊性是关于有多少非内核软件被认为是操作系统的一部分而不是另一个库/服务/服务器.台式机和我的Android手机都运行Linux,但通常会被认为运行不同的操作系统.

libc是桌面操作系统的一部分吗?可能是的,因为它提供了针对操作系统的应用程序所期望的API,而libc内部实际上是执行内核的系统调用. Dalvik VM是Android OS的一部分吗?可能是的,因为所有Android应用程序都包含只能由Dalvik VM执行的代码.

删除libc并且没有可以运行的应用程序,因为没有实用的软件直接针对Linux内核接口.删除Dalvik VM并且不会运行任何Android应用程序.因此,这些重要部分可能应该被命名为操作系统的一部分.

那么一些程序可以不用的基本部分呢?它变得模糊.如果您考虑操作系统提供并仲裁对多个程序之间的硬件等公共资源的访问,那么您应该考虑用户空间程序和执行相同操作的库,或者是访问内核接口的标准方法,就像操作系统的一部分一样.

上一篇:android – 为什么我们需要将* .odex文件放在/ system / app下,即使我们已经有/ data / dalvik-cache了?


下一篇:本机代码可以导致Android中Java代码中的内存损坏吗?