一、Android 操作系统简介
(一)系统简介
1. Android概念
Android
一词的本义指 “机器人
”,同时也是Google于2007年11月5日
宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。- Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l’Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L’ève future)中。
他将外表像人的机器起名为Android。
2. Logo
- Android的logo是由
Ascender
公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图
形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,
Android小机器人便诞生了
(二)发展历程
1. 历程简介
- 2003年10月,
Andy Rubin
等人创建Android公司,并组建Android团队。- 2005年8月17日,Google 低调
收购
了成立仅22个月的高科技企业Android及其团队。安迪鲁宾
成为Google公司工程部副总裁,继续负责Android项目。- 2008年,在
GoogleI/O
大会上,谷歌提出了AndroidHAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0
系统,这也是Android系统最早的版本。- 2009年9月,谷歌发布
Android 1.6
的正式版,并且推出了搭载Android 1.6正式版的手机HTC Hero(G3)
,凭借着出色的外观设计以及全新的Android 1.6操作系统,HTCHero(G3)成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称,它被称为Donut(甜甜圈)
。- 每年陆续更新版本…
- 2019年,Android 10
(三)发行版本
1. 版本简介
1.1
2008年9月发布的Android第一版1.5
Cupcake(纸杯蛋糕)
:2009年4月30日发布1.6
Donut(甜甜圈)
:2009年9月15日发布2.0
2009年10月26日发布。3.0
Honeycomb(蜂巢)
:2011年2月2日发布。4.0
Ice Cream Sandwich(冰激凌三明治)
:2011年10月19日在香港发布。5.0
Android 5.0Lollipop(棒棒糖)
:美国太平洋时间2014年10月15日6.0
Android 6.0Marshmallow(棉花糖)
:2015年9月30日7.0
Android 7.0Nougat(牛轧糖)
:2016年8月22日8.0
Android 8.0Oreo(奥利奥)
:2017 年 8 月 22 日9.0
Android 9.0Pie (派)
:2018 年 5月 9日10.0
Android 10.0 2019年的Android Q
的正式名称是Android 1011
按照惯例,Android 11在2020年9月份正式发布,谷歌I/O大会上正式发布。
(四)体系架构
1. 采用分层架构
2. Linux内核
- Android 平台的基础是 Linux 内核。例如,Android Runtime (ART) 依靠 Linux 内核来执行底层功能,例如线程和低层内存管理。使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序
3. 硬件抽象层(HAL)
- Android 的
HAL(硬件抽像层)
是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把Android framework 与 Linux kernel 隔开
,让 Android 不至过度依赖 Linux kernel,以达成Kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展
4. Android Runtime
- 对于运行 Android 5.0(API 级别 21)或更高版本的设备,每个应用都在其
自己的进程中运行
,并且有其自己的 Android Runtime (ART) 实例。ART 编写为通过执行DEX 文件
在低内存设备上运行多个虚拟机
,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少。编译工具链(例如 Jack)将Java 源代码编译为 DEX 字节码
,使其可在 Android 平台上运行。
5. 原生C/C++库
- 许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写的原生库。Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。例如,您可以通过 Android 框架的 Java OpenGL API 访问 OpenGL ES,以支持在应用中
绘制和操作 2D 和 3D图形
。如果开发的是需要 C 或 C++ 代码的应用,可以使用Android NDK
直接从原生代码访问某些原生平台库
6. Java API框架
- 您可通过以 Java 语言编写的 API 使用 Android OS 的整个功能集。这些 API 形成创建 Android 应
用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用包括以下组件和服务
:
- 丰富、可扩展的视图系统,可用以构建应用的 UI,包括列表、网格、文本框、按钮甚至可嵌入的网络浏览器
- 资源管理器,用于访问非代码资源,例如本地化的字符串、图形和布局文件
- 通知管理器,可让所有应用在状态栏中显示自定义提醒
- Activity 管理器,用于管理应用的生命周期,提供常见的导航返回栈
- 内容提供程序,可让应用访问其他应用(例如“联系人”应用)中的数据或者共享其自己的数据开发者可以完全访问 Android 系统应用使用的框架 API
7. 系统应用
- Android 随附一套用于电子邮件、短信、日历、互联网浏览和联系人等的
核心应用
。平台随附的应用与用户可以选择安装的应用一样,没有特殊状态。因此第三方应用可成为用户的默认网络浏览器、短信 Messenger 甚至默认键盘(有一些例外,例如系统的“设置”应用)。系统应用可用作用户的应用
,以及提供开发者可从其自己的应用访问的主要功能。例如,如果您的应用要发短信,您无需自己构建该功能,可以改为调用已安装的短信应用向您指定的接收者发送消息。
(五)应用组件—Android开发四大组件
1. 活动 (Activity)
- Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的
最频繁
,也是Android 当中最基本的模块之一。 - 一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间Android的应用 可以进行相互跳转。
2. 服务 (Service )
- Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能
后台运行
,并且可以和其他组件进行交互。Service 是没有界面
的长生命周期的代码。 - 举个例子,打开一个音乐播放器的程序,这个时候若想上网了,那么,打开Android浏览器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。
3. 广播接收器 (BroadcastReceiver )
- 在Android 中,Broadcast是一种广泛运用的在
应用程序之间传输信息的机制
。
4. 内容提供者 (Content Provider )
- Content Provider 是Android提供的
第三方应用数据的访问方案
- 在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是
不允许其他直接访问的
。Android当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。
(六)平台优势
- 开发性
- 丰富的硬件
- 方便开发
- Google应用