01.   系统简介

1.1  Android 名词

Android 一词的本义指 机器人,同时也是Google2007115宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android

1.2  Logo

Android 的logo 是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线, Android小机器人便诞生了

02.   发展历程

2.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操作系统,HTC Hero(G3)成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称,它被称为Donut(甜甜圈)
  • 每年陆续更新版本.....................................
  • 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 independent 的概念,也让 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 应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用包括以下组件和服务

  1. 丰富、可扩展的视图系统,可用以构建应用的 UI,包括列表、网格、文本框、按钮甚至可嵌入的网络浏览器
  2. 资源管理器,用于访问非代码资源,例如本地化的字符串、图形和布局文件
  3. 通知管理器,可让所有应用在状态栏中显示自定义提醒
  4. Activity 管理器,用于管理应用的生命周期,提供常见的导航返回栈
  5. 内容提供程序,可让应用访问其他应用(例如“联系人”应用)中的数据或者共享其自己的数据

    开发者可以完全访问 Android 系统应用使用的框架 API

系统应用

Android 随附一套用于电子邮件、短信、日历、互联网浏览和联系人等的核心应用。平台随附的应用与用户可以选择安装的应用一样,没有特殊状态。因此第三方应用可成为用户的默认网络浏览    器、短信 Messenger 甚至默认键盘(有一些例外,例如系统的“设置”应用)。系统应用可用作用户的应用,以及提供开发者可从其自己的应用访问的主要功能。例如,如果您的应用要发短信,您  无需自己构建该功能,可以改为调用已安装的短信应用向您指定的接收者发送消息。

05   应用组件

Android开发四大组件

活动 (Activity)

  • Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。
  • 一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间Android的应用 可以进行相互跳转。

服务 (Service )

  • Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行, 只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。
  • 举个例子,打开一个音乐播放器的程序,这个时候若想上网了,那么,打开Android浏览器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继 续一首接着一首的播放。其实这个播放就是由播放音乐的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服务。

Android开发-Android操作系统简介相关推荐

  1. Android开发——Android手机屏幕适配方案总结

    0. 前言 Android的屏幕适配,即使得某一元素在Android不同尺寸.不同分辨率的手机上具备相同的显示效果,这个问题一直以来都是我们Android开发者不得不面对的问题.本文参考了很多前人的博 ...

  2. Android开发-Android studio自带模拟器使用中文拼音输入法

    Android开发-Android studio自带模拟器使用中文拼音输入法 搜狗输入法下载 搜狗输入法安装 修改模拟器语言 搜狗输入法下载 上篇文章中我们在Android studio中创建了X86 ...

  3. Android开发环境配置简介

    http://developer.51cto.com/art/200908/145145.htm 摘要:本文介绍了Android开发环境配置时需要了解的事项.Android开发环境目前只支持XP(32 ...

  4. Android开发——Android四大组件

    Activity 技巧:当你想查找系统已有的某界面对应的清单文件中<action-name>.<data>.<category>等信息时,你可以先打开模拟器, 打开 ...

  5. Android开发-Android使用指定的浏览器作为默认浏览器

    1 简介: 在Android设备上,在打开网页时,可以使用指定的浏览器来打开.本篇描述了这个功能的实现方法. 2 原理 我们知道,在Android应用开发时,可以由一个Activity跳转到另外的Ac ...

  6. android开发 android.view.View.OnClickListener和android.content.DialogInterface.OnClickListener冲突...

    android开发中,在导入android.content.DialogInterface.OnClickListener 或者android.view.View.OnClickListener的其中 ...

  7. 基于chromium for android开发Android浏览器

    在上一篇文章<< Chromium for Android开源了 >>中谈到了Google已经完全开源了Chromium for Android,这样我们就完全可以开发与Chr ...

  8. Android开发 Android 软盘 遮一部分EditText

    目录 一.NestedScrollView/ScrollView造成EditText全遮住 windowSoftInputMode属性: 二.EditText被软盘遮住部分 一.NestedScrol ...

  9. Android开发-Android原生与WebView的js交互的实现

    前 言 一般在Android应用的开发过程中,一些核心的业务功能开发往往需要Android原生的开发,一些需要改动比较频繁的功能且不是核心的业务功能往往只需要在Android应用调用一个网页就行了.在 ...

最新文章

  1. 网站优化之如何筛选更正确高质量的关键词?
  2. python设计拼图小游戏_教你用Python自制拼图小游戏,轻松搞定熊孩子
  3. 整数划分问题【递归以及递推求解方式】
  4. Linux环境手动创建oracle10g数据库实践
  5. SAP直接踢人下线 SM04
  6. 指定端口传输_高速数字传输链路测试 - 高速数字电路仿真设计与测试技术发展趋势综述(二)...
  7. 深度学习tensorflow数据流图基础知识点
  8. 多个video标签,控制最多只能一个同时播放
  9. RandomAccessFile 随机存取文件任意位置数据
  10. linux系统如何更改输入法切换快捷键,linux中什么快捷键可实现中英文的切换
  11. 什么是干接点、湿接点、源型、漏型、NPN、PNP
  12. java1.8垃圾回收机制_JAVA垃圾回收机制
  13. 地震后的重建!——AD灾难恢复!
  14. 学术日记#学术道德与人文素养
  15. 读书狂想之《平凡的世界》不平凡的人生
  16. 户外便携吹尘器方案浅析
  17. Chapter 20-APIs(应用程序编程接口)
  18. 前端使用xlsx、file-saver实现自定义excel格式导出(列宽、字体、边框、行高)
  19. ps 选区工具的使用
  20. 传记-《杰克·韦尔奇自传》书中的精髓:杰克·韦尔奇如何利用自己的智慧,推动通用电气从优秀走向卓越的?

热门文章

  1. 电子器件中电弧产生的原理及灭弧方法
  2. JavaScript——Selection
  3. 水果店如何选址,开水果店如何选址
  4. Android手机中热点配置文件保存路径
  5. 路由器JFFS分区(JFFS分区无法正常运行故障排除方案汇总)
  6. 平板电视全攻略 液晶电视VS等离子电视
  7. Linux rime小狼毫输入法 配置
  8. 微信公众平台—— 获取微信服务器IP地址
  9. 489-剖析SGI STL空间配置器
  10. python交互模式如何撤回_在Python交互模式输入什么命令可以退回命令行模式