Computer Resources:硬件资源
Kernel:内核
Shell:shell是系统的用户界面,提供了用户与内核进行交互操作
的一种接口。它接收用户输入的命令并把它送入内核去执行,是
一个命令解释器
Programs/Utilities/Tools:库函数、工具等
File systems:文件系统是文件存放在磁盘等存储设备上的组织方
法。Linux系统能支持多种目前流行的文件系统,如EXT2、
EXT3、 FAT、 FAT32、 VFAT和ISO9660。
User Application: Linux应用,标准的Linux系统一般都有一套被
称为应用程序的程序集,它包括文本编辑器、编程语言、X
Window、办公套件、Internet工具和数据库等
Linux系统一般由4个组成部分:内核Kernel、shell、文件系统和
应用程序。内核、shell和文件系统一起组成了基本的操作系统结
构,它们让用户可以管理文件、运行程序并使用系统。
Linux开机后,内核启动,激活内核空间,抽象硬件、初始化硬件
参数等,运行并维护虚拟内存、调度器、信号及进程间通信
(IPC)。
内核启动后,再加载Shell和用户应用程序,用户应用程序使用
C\C++编写,被编译成机器码,形成一个进程,通过系统调用
(Syscall)与内核系统进行联通。进程间交流需要使用特殊的进
程间通信(IPC)机制。
享学课堂
看完了Linux架构,我们再来一起看看Android系统架构。
Android的系统非常复杂和庞大,底层以Linux内核为基础,上层
采用带有虚拟机的JAVA层,通过JNI技术,将上下层打通。
先来看一张Google提供经典Android架构图,从上往下依次为应
用层(System Apps)、应用框架层(Java API Framework)、
运行层(系统Native库和Android运行时环境)、硬件抽象层
(HAL)、Liunx 内核(Marco Kernel)。每一层都有对应的进程、系
统库。
享学课堂
享学课堂
应用层(System Apps)
该层中包含所有的Android应用程序,包括电话、相机、日历等,
我们自己开发的Android应用程序也被安装在这层;大部分的应用
使用JAVA开发,现在Google也开始力推kotlin进行开发
应用框架层(Java API Framework)
这一层主要提供构建应用程序是可能用到的各种API,Android自
带的一些核心应用就是使用这些API完成的,开发者也可以通过使
用API来构建自己的应用程序。
运行层
1)系统Native库
每个Android应用都有一个专有的进程,这些进程每个都有一个
Dalivik虚拟机实例,并在该实例中运行。
Android包含一些C/C++库,这些库能被Android系统中不同的组
件使用
2)Android运行时环境
Android包括了一个核心库,该核心库提供了Java编程语言核心库
的大多数功能。虚拟机也在该层启动。
享学课堂