由上至下,依次为应用层、Framework层、系统运行库和安卓运行时、硬件抽象层、Linux内核。
应用层,即可见可操作的APP,平时的软件开发大都是在这一层。
Framework层,即提供给应用层的API调用和依赖,包括Activity、Fragment、View、PackageManager、ActivityManager、Service、Window等等。
系统运行库,即以C++/C的开发的为framework提供的服务,包括openGL、webkit(网络库)、sqlite(轻型数据库)、mediaFramework(多媒体库包括语音视频编码解码)、libc(转为linux嵌入式系统提供的c语言函数库)、FreeType(字体库引擎).
安卓运行时,包括核心库和ART虚拟机,核心库包含了java的核心库的大部分功能,保证开发者可以使用java进行开发,art在5.0之前是dalvik。dalvik是运行时(just-in-time)运行时字节码进行编码解释成机器码,art是预编码(ahead-of-time),即在安装时将字节码解释为机器码保存在本地,运行时直接拿本地机器码就行了,提高运行速度。
硬件抽象层,将硬件厂商驱动的控制逻辑放到该层,启动保护厂商的作用和驱动的分层。
Linux内核,该层为linux系统,开源。
网友评论