android系统架构

安卓运行架构:

linux运行:

关于内核:

① Android采用Linux作为内核

② Android对Linux内核做了修改,目的是适应在移动设备上使用

③ Android开始作为Linux的一个分支,后来由于无法并入Linux的主开发树,已被Linux Kernel小组从开发树中删除

Android内核是有标准的Linux内核修改而来的,继承了Linux内核的诸多优点,保留了Linux内核的主题框架,同时Android按照移动设备的要求,在文件系统、内存管理、进程间通信机智和电源管理方面进行了修改,添加了相关的驱动程序和必要的新功能。Android在很大程度上保留了Linux的基本架构,因此Android的应用型和扩展性更强。

关于HAL

Android是在Linux内核基础上运行的,提供的核心系统服务包括安全、内存管理、进程管理、网络组和驱动模型等内容。在硬件层和系统中其他软件之间添加了硬件抽象层(HAL)。
HAL主要用于屏蔽硬件实现(厂商利益)

运行时与native

Android系统的系统层面的底层是Linux,中间加上Dalvik的Java虚拟机,表面层上面是Android运行库。每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为他分配的专有实例。

Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)。Java编译器将Java源码转为.class文件,.class文件又被内置的dx工具转化为.dex格式文件,这种文件在Dalvik虚拟机上注册并运行。

Android系统的应用软件都是运行在Dalvik上的Java软件,而Dalvik是运行在Linux上的

官方图:

一个程序的过程:

待清楚后补充