Android的虚拟机dalvik vm

Android sdk 软件栈_第1张图片

android 软件栈的总体结构


dilvik vm 获取生成的java类文件,将他们组合成一个或多个dilvik可执行的文件(.dex),他重用多个类文件中重复信息,减小文件的大小。

dilvik vm 使用了另一种汇编代码生成方式,他使用寄存器作为主要的存储数据单元,而不是栈。

Android sdk 软件栈_第2张图片


Android SDK软件栈的详细结构


Android的核心是linux内核:

主要负责驱动程序、资源访问、电源管理、完成其他操作系统等。

但是Android上基本上的应用程序都是java开发的,在dilvik vm运行的。

linux内核上是的这层:许多的c/c++库

OpenGL 、WebKit、freetype、SSL、 libc(c运行时库)、SQLite、媒体等;

WebKit库负责浏览器的直接,chrome和safari用着就是webkit的支持;freetype库负责字体支持;SQLite是在设备上使用的关系型数据库;

上层的应用程序大部分都是通过dilvik vm去访问这些底层的库的,就是一个是大门一样,都从这儿进去。dilvik vm经过优化,可以运行多个vm实例。当访问核心库时,每个java应用程序都会获得自己的vm实例。

在往上,就是Android java API,他的主要库包括电话、资源、位置、UI、contentprovider(数据)、包管理器(安装、安全等)。我们程序员就是使用此API开发最终的应用程序



更多相关文章

  1. Android清单文件详解(一) ---- 一切从开始
  2. Android Studio SDK版本兼容问题,拷贝的Android包文件报错
  3. Android工程源文件结构
  4. 修改默认配置文件.android.gradle.androidstudio到其他目录
  5. Android 资源文件使用方法详解

随机推荐

  1. 【php】json、时间戳
  2. phpstorm多行快捷操作操作,筛选相似内容
  3. js做的一个日历
  4. Springboot docker jenkins 自动化部署并
  5. JavaScript实现简单的日历
  6. 多人构图时如何画?三人人物构图教程!
  7. js简单日历
  8. js日历,纯手工,多多指正
  9. 《长津湖》即将成中国影史票房冠军
  10. laravel 商城实战开发