Android sdk 软件栈
16lz
2021-01-23
Android的虚拟机dalvik vm
android 软件栈的总体结构
dilvik vm 获取生成的java类文件,将他们组合成一个或多个dilvik可执行的文件(.dex),他重用多个类文件中重复信息,减小文件的大小。
dilvik vm 使用了另一种汇编代码生成方式,他使用寄存器作为主要的存储数据单元,而不是栈。
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开发最终的应用程序
更多相关文章
- Android清单文件详解(一) ---- 一切从开始
- Android Studio SDK版本兼容问题,拷贝的Android包文件报错
- Android工程源文件结构
- 修改默认配置文件.android.gradle.androidstudio到其他目录
- Android 资源文件使用方法详解