Android 系统架构
我为什么要学习安卓开发?因为没有仔细看《培养方案》……以为安卓开发是移动方向才有的课,谁知道我们突然开了这一门课~ 我当时的内心想法是:哦耶~~~~~~废话少说!开始学习!Android系统架构是基于Linux内核的软件平台和操作系统。采用了软件堆层的架构,总共分为五层,如下图所示:如图所示,Android系统架构分为五层,从下到上他们分别是:文章目录Linux Kernel(Lin...
我为什么要学习安卓开发?
因为没有仔细看《培养方案》……以为安卓开发是移动方向才有的课,谁知道我们突然开了这一门课~ 我当时的内心想法是:哦耶~~~~~~废话少说!开始学习!
Android
系统架构是基于Linux内核
的软件平台和操作系统。采用了软件堆层
的架构,总共分为五层,如下图所示:
如图所示,Android
系统架构分为五层,从下到上
他们分别是:
文章目录
Linux Kernel(Linux内核)
Linux Kernel
:即Linux内核
,提供由操作系统内核管理底层基础功能。
它包括:安全性、内存管理、进程管理、网络协议栈、电源管理、驱动模型等等等等。
同时Linux内核
也是硬件和软件栈之间的抽象层,安卓更多的是需要一些与移动设备相关的驱动程序,比如照相机、蓝牙和USB接口驱动等。
HAL(硬件抽象层)
HAL
:即硬件抽象层
,向下屏蔽硬件驱动模块的实现细节,向上提供硬件访问服务。
HAL
包含多个库模块,其中每个模块都为特定类型的组件实现一个界面,例如相机
和蓝牙
模块。
当框架API
要求访问设备硬件时,Android
将为该硬件组件加载库模块。
中间层次
Android Runtime(安卓运行时)
Android Runtime
即安卓运行时,它分为两个部分:
第一个部分:Android Runtime(ART)
在API 21
之前叫做Dalvik虚拟机
,它主要负责运行程序,效率高、占用内存少。
第二个部分:Core Libraries
,即核心库
,它提供了Java
语言核心库中的大部分功能。
Native C/C++ Libraries(原生C/C++库)
开发人员可以通过应用程序框架调用这些库函数,具体的内容……以后学到再说
Java API Freamwork(Java API 框架)
可以通过Java
编写的API
使用Android OS
的整个功能集,这些API
形成创建安卓应用所需的构建块,它们可以简化核心模块化系统组件和服务的重复使用,主要包括以下组件和服务:
Activity Manager
:活动管理器,用来管理应用程序的生命周期,并提供常用的导航返回功能Window Manager
:窗口管理器,用来管理所有的窗口程序Content Providers
:内容提供器,它可以让另一个应用访问另一个应用的数据,或共享他自己的数据View System
:视图管理器,用来构建应用程序,比如列表、表格、文本框及按钮等Notification Manager
:通知管理器,用来设置在状态栏中显示的提示信息Telephony Manager
:电话管理器,用来对联系人及通话记录进行管理Resource Manager
:资源管理器,用来提供非代码资源的访问,比如本地字符串、图形及布局文件等等Location Manager
:位置管理器,用来提供使用者当前位置等信息,如GPS定位等
System Apps(系统应用)
Android
随附一套用于电子邮件、短信、日历、互联网浏览和联系人等的核心应用。平台随附的应用与用户可以选择安装的应用一样,没有特殊状态。因此第三方应用可成为用户的默认网络浏览器、短信 Messenger 甚至默认键盘(有一些例外,例如系统的“设置”应用)。
系统应用可用作用户的应用,以及提供开发者可从其自己的应用访问的主要功能。例如,如果您的应用要发短信,您无需自己构建该功能,可以改为调用已安装的短信应用向您指定的接收者发送消息。
更多推荐
所有评论(0)