目录
1、Android操作系统简介
学习目标
-
系统简介
-
发展历程
-
发行版本
-
体系架构
-
系统结构
-
应用组件
-
平台优势
01、系统简介
1.1 Android 名词
-
Android 一词的本意指”机器人“,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软甲构成。
-
Android 一词最早出现于法国作家利尔亚当在1886年发表的科幻小说《未来夏娃》中。他将外表像人的机器取名为 Android。
1.2 Logo
-
Android 的 logo 是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,于是安卓小机器人便诞生了。
02、发展历程
2.1 历程简介
2003年10月,Andy Rubin 等人创建Android公司,并组建Android团队。
2005年8月17日,Google 低调收购了成立仅2个月的高科技企业及Android及其团队。安迪鲁宾成为Google公司工程部的执行副总裁,继续负责Android项目。
2008年,在 Google I/O 大会上,谷歌提出了AndroidHAL架构图;在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android1.0系统,这是Android系统最早的版本。
2009年9月,谷歌Android1.6的正式版,并且推出了搭载Android1.6正式版的手机HTC Hero(G3),凭借着出色的外观设计以及全新的Android1.6操作系统,HTC Hero(G3)成为当时全球最受欢迎的手机。Android1.6也有一个有趣的甜品名称,它被称为Dount(甜甜圈)
每年陆续的版本更新......
2019年,Android 10
03、发行版本
3.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 10
11
按照惯例,Android 11 可能会在2020年3月份放出(开发版),谷歌I/O大会上正式发布。
04、体系架构
采用了分层的架构
Android系统架构,如下
Linux内核
-
Android 平台的基础是 Linux 内核。例如,Android Runtime(ART)依靠 Linux 内核来执行底层功能,例如线程和底层内存管理。使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序
硬件抽象层(HAL)
-
Android 的 HAL(硬件抽象层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android Framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 Kernel independen的概念,也让 Android Framework 的开发能在不考量驱动程序的前提下进行发展
Android Runtime
-
对于运行 Android 5.0(API 级别 21)或更高版本的设备,每个应用都在其自己的进程中运行,并且有自己的 Android Runtime(ART)实例。ART 编写为通过执行 DEX 文件在低内存设备上运行多个虚拟机,DEX文件是一种专门为 Android 设计的字节码格式,经过优化,使用的内存很少。编译工具链(例如 Jack)将 Java 源代码编译为 DEX 字节码,使其可在 Android 平台上运行
原生C/C++库
-
许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写的原生库。Android 平台提供的 Java 框架 API 以向应用显示其中部分原生库的功能。例如,您可以通过 Android 框架的 Java OpenGL API 访问 OpenGL ES,以支持在应用中绘制和操作 2D 和 3D 图形。如果开发的是需要 C 或 C++ 代码的应用,可以使用 Android NDK 直接从原生代码访问某些原生平台库
Java API 框架
-
您可以通过 Java 语言编写的 API 使用 Android OS 的整个功能集。这些 API 形成创建 Android 应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用包括以下组件和服务:
05、应用组件
Android开发四大组件
-
活动(Activity)
-
Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。
-
一般一个Android应用是由多个Activity组成的。这多个Activity的应用可以进行相互跳转。
-
-
服务(Service)
-
Service 是Android系统中的一种组件,它跟Activity的级别差不多,但是他不能够自己运行,只能后台运行,并且可以和其他组件进行交互。Service是没有界面的长生命周期代码。
-
-
广播接收器(BroadcastReceiver)
-
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。
-
-
内容提供者(Content Provider)
-
Content Provider 是 Android 提供的第三方应用数据的访问方案
-
在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。Android当然不会真的把每一个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。
-
06、平台优势
开发性
-
在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
-
开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益是正是丰富的软件资源。开放的平台也会带来更大的竞争,如此一来,消费者将可以用更低的价位购得心仪的手机
丰富的硬件
-
这一点还是与Android平台的开发性相关,由于Android的开发性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步,甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用,联系人等资料可以方便地转移。
方便开发
-
Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正式留给Android的难题之一。
Google应用
-
在互联网的Google已经走过的10年历史中,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。