安卓底层是基于Linux内核的,上层还包括硬件抽象层。然后就是应用层模块包括Native层,Android运行时环境,JAVA API框架和系统和用户app。
JAVA层通过JNI技术与native层通讯,而native通过syscall系统调用与内核层通讯
linux内核主要的任务就是进行基本的内存管理,进程管理,系统初始化等等工作。
硬件抽象层包含多个模块,框架API请求访问硬件时就会加载相应的模块,例如蓝牙/wifi等。
native主要是一些java层的依赖库,有点类似于windows平台的ntdll.dll,java层通过native与linux内核层通讯。
Android runtime运行时主要包含android虚拟机(Dalvik/ART)。
framework框架层主要包含了通过java语言编写的API接口,这些API可以完成构建和使用android应用程序必须的一些组件,例如activity活动。
应用层包含系统应用和系统应用,这些应用都以apk的形式保存。