首页 > 其他分享 >Android开发-Android操作系统简介

Android开发-Android操作系统简介

时间:2023-03-21 10:34:43浏览次数:46  
标签:操作系统 Linux 简介 平台 API 应用 Activity Android

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 HeroG3,凭借着出色的外观设计以及全新的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服务。
 

标签:操作系统,Linux,简介,平台,API,应用,Activity,Android
From: https://www.cnblogs.com/lysboke/p/17239033.html

相关文章

  • 自己动手从零写桌面操作系统GrapeOS系列教程——20.汇编语言读硬盘实战
    学习操作系统原理最好的方法是自己写一个简单的操作系统。本讲我们设计一个简单的读硬盘实验。通过一定的方法使硬盘第二个扇区的前3个字节依次为1、2、3,最后3个字节依......
  • Linux操作系统之tcpdump抓包工具详解
    前言①tcpdump工具简介:tcpdump是Linux操作系统中的字符界面的数据抓包分析软件。tcpdump可以将网络中传送的数据包完全截获下来提供分析②tcpdump是一个用于截取网络分......
  • redis-SpringCache-简介
    整合&体验@Cacheable引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>......
  • Android Studio通过jdbc连接MySQL
    1、下载MySQL-connector-jave.jar包地址如下:https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.46 2、将jar包移到如图所示的位置,然后右键addasl......
  • ArcGIS Runtime for Android 3 Hello World
    本文分享如何一个新建项目HelloWorld,并重点说明如何模拟调试。一、新建项目现在的软件越来越方便,选择模板,直接新建项目即可。输出路径为自定义的D:\Android\Project......
  • Spring Http Invoker使用简介
    [color=red]SpringHTTPinvoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用(意味着可以通过防火墙),并使用java的序列化机制在网络间传递对象。这需要在......
  • Android studio学习笔记
    wrap_content内容有多少,它的宽度有多少match_parent匹配父空间,上一级宽度多少,这一级多少使用宽度长度自定义的时候最好用dp,因为Android屏幕碎片化比较严重,在不同的系统......
  • Android资源的使用之String
    Android允许定义多个字符串资源文件在res/values中<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="hello">HelloWorld!</string><stringnam......
  • android ImageButton示例
    packagecom.xiaohang;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.Dialog;importandroid.app.AlertDialog.Builder;impo......
  • Android 之 下拉框(Spinner)的使用
    获得被选中的选项的文本,Index,IDStringvalue=spinner.getSelectedItem().toString();intindex=spinner.getSelectedItemPosition();......