android - 什么是 Android,他们为什么要创建一个新的 VM?

标签 android

Android's embedded OS relies on the Linux kernel for core system services but is not embedded Linux and thus standard utility libraries like for example GNU C are not supported. The Java framework is used to write Android applications but Android is not Java. Standard Java libraries such as Swing are not supported.Android has a Virtual Machine known as Dalvik, so when the Java class files are generated, this are translated to Dalvik Executable files known as .dex files. From this point this files are not treated as java bytecode but as .dex files.

所以我有三个问题:

  1. 现在我知道 Android 不是什么了, 那么,Android 是什么?
  2. 是什么 核心系统服务?
  3. 他们为什么选择 .dex 文件 基于 Java 字节码?我的意思是为什么 他们把工作翻译或 合并 .class 文件到 .dex 文件?

最佳答案

What is Android?开发者网站上的文章最好地描述了什么是 Android。

Why did they choose .dex files upon java bytecode? i mean why did they took the work to translate or combine .class files to .dex files?

那是因为他们需要更高效的虚拟机。他们的名为 DalvikVM 的虚拟机针对低内存需求进行了优化。

您可以阅读有关 DalvikVM 的更多信息在此维基百科条目中。请务必检查该页面上的外部链接部分。

关于android - 什么是 Android,他们为什么要创建一个新的 VM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109501/

相关文章:

android - 分页库 : Saving data in the DB doesn't trigger the UI changes

android - Activity 与 View 。与 SurfaceView 和交互

android - 如何在保存之前在 android 相机预览应用程序中旋转图像?

android - 如何在 Flutter 应用程序中正确设置 redirect_uri?

android - 您能指出这段代码中 ListView 的问题吗?

android - Qt 蓝牙服务器不能与 QCoreApplication 一起工作

android - android中第二次观察viewmodel返回null

java - 运行android项目时出现NoClassDefFoundError

java - 读取android :scheme programmatically的值

android - Genymotion 2.7 模拟器拒绝连接到 ADB