- 设备驱动程序层(Linux Kernel):该层主要包括:驱动、内存管理、进程管理、网络协议等组件。
- 执行层c/c++函数库层(Libraries)及Android Runtime:
- Java不能直接访问硬件,要访问硬件,必须使用NDK。NDK是由c/c++语言编写的库(.so文件),该层是对应用程序框架层提供支持的层。
- SSL:Secure Sockets Layer安全套接字层
- libc:C运行时库
- WebKit:负责浏览器支持(Chrome和Safari都使用该库来支持浏览器)
- FreeType:负责字体支持
- 应用程序框架层(Application FrameWork):该层一般都是开发人员直接调用的API。该层主要由Java语言编写。
- 应用程序层(Applications):由运行在Dalvik虚拟机上的app组成。(Dalvik是Google公司为Android专门设计的Java虚拟机,运行Java程序的速度比JVM更快,以此来克服手持设备在内存、处理器速度和功率等方面上的限制)。该层由Java语言编写。
- Dalvik是冰岛一个小镇的名字。Dalvik VM获取生成的java类文件,将它们组合为一个或者多个、Dalvik可执行文件(.dex)。Dalvik VM的目标是找到所有可能的方式来优化JVM性能、内存及电池寿命。
- 采用Dalvik VM的一个结果是,Android中最终的可执行程序代码不是java字节码,而是.dex文件。这意味着无法直接执行java字节码,必须得到java的类文件,然后将它们转换为.dex文件。
如图所示:
本文详细介绍了Android系统的四个层次,从设备驱动程序层的Linux Kernel,到执行层的c/c++函数库和Android Runtime,再到应用程序框架层的API,最后是运行在Dalvik虚拟机上的应用程序层。探讨了Android如何通过NDK访问硬件,以及Dalvik VM在优化性能、内存和电池寿命方面的角色,强调了.dex文件在Android执行过程中的关键地位。

336

被折叠的 条评论
为什么被折叠?



