#yyds干货盘点#Android简介Android专题1

Posted 坚果前端

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#Android简介Android专题1相关的知识,希望对你有一定的参考价值。

android简介

Android是一个基于​​Linux内核​​​与其他​​开源软件​​​的​​开放源代码​​​的​​移动操作系统​​​,由​​谷歌​​​成立的​​开放手持设备联盟​​持续领导与开发。

Android Inc.于2003年10月由​​安迪·鲁宾​​​、​​利奇·米纳尔​​​、​​尼克·席尔斯​​​、​​克里斯·怀特​​​在​​加州​​​​帕罗奥图​​​创建。Android最初由​​安迪·鲁宾​​​等人开发制作,最初开发这个系统的早期方向是创建一个​​数字相机​​​的先进操作系统,但是后来发现相机市场规模不够大,加上智能手机发展趋势快速成长,于是Android成为一款面向智能手机的操作系统。于2005年7月11日Android Inc.被​​美国​​​科技企业Google收购[​​15]​​​[​​16]​​。

2007年11月,Google与84家硬件制造商、软件开发商及电信营运商成立​​开放手持设备联盟​​​来共同研发Android,随后,Google以​​Apache免费开放源代码许可证​​的授权方式,发布了Android的源代码,开放源代码加速了Android普及,让生产商推出搭载Android的智能手机,Android后来更逐渐拓展到平板电脑及其他领域上

2010年末数据显示,仅正式推出两年的Android操作系统在市场占有率上已经超越称霸逾十年的​​诺基亚​​​​Symbian​​系统,成为全球第一大智能手机操作系统

在2014年​​Google I/O​​开发者大会上Google宣布过去30天里有10亿台活跃的Android设备,相较于2013年6月则是5.38亿

2017年3月,Android全球网络流量和设备超越​​Microsoft Windows​​,正式成为全球第一大操作系统

截至2021年8月,根据​​StatCounter​​​统计,除了美国、加拿大、挪威、瑞典、丹麦、瑞士、科索沃、日本、台湾和澳大利亚外,其他所有国家和地区都把Android作为首选​​智能手机​​操作系统

平台架构

Android大致可以分为4层架构:Linux内核层、系统运行库层、应用框架层和应用层。

#yyds干货盘点#Android简介【Android专题1】_android

目前已经是android11,android12预览版也已上线

Android 11 可让您轻松搞定重要事务。该操作系统会根据您使用手机的方式进行优化,能够把您的手机变成强大的家居设备控制器,还能让您更轻松地管理对话、隐私设置等。

Android 11 的亮点

  • 对话
  • 内容截取
  • 有联想功能的工具
  • 无障碍功能
  • 设备控制器
  • 隐私权与安全
  • 支持 Android 11 的手机

接下来就让我们了解一下Android的系统架构

Linux 内核

Android 平台的基础是 Linux 内核。例如,​​Android Runtime (ART)​​ 依靠 Linux 内核来执行底层功能,例如线程和低层内存管理。

显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。

硬件抽象层 (HAL)

​硬件抽象层 (HAL)​​​ 提供标准界面,向更高级别的 ​​Java API 框架​​​显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如​​相机​​​或​​蓝牙​​模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

Android Runtime

对于运行 Android 5.0(API 级别 21)或更高版本的设备,每个应用都在其自己的进程中运行,并且有其自己的 ​​Android Runtime (ART)​​​ 实例。ART 编写为通过执行 DEX 文件在低内存设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少。编译工具链(例如 ​​Jack​​)将 Java 源代码编译为 DEX 字节码,使其可在 Android 平台上运行。

ART 的部分主要功能包括:

  • 预先 (AOT) 和即时 (JIT) 编译
  • 优化的垃圾回收 (GC)
  • 在 Android 9(API 级别 28)及更高版本的系统中,支持将应用软件包中的 ​​Dalvik Executable 格式 (DEX) 文件转换为更紧凑的机器代码​​。
  • 更好的调试支持,包括专用采样分析器、详细的诊断异常和崩溃报告,并且能够设置观察点以监控特定字段

在 Android 版本 5.0(API 级别 21)之前,Dalvik 是 Android Runtime。如果您的应用在 ART 上运行效果很好,那么它应该也可在 Dalvik 上运行,但​​反过来不一定​​。

Android 还包含一套核心运行时库,可提供 Java API 框架所使用的 Java 编程语言中的大部分功能,包括一些 ​​Java 8 语言功能​​。

原生 C/C++ 库

许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写的原生库。Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。例如,您可以通过 Android 框架的 ​​Java OpenGL API​​​ 访问 ​​OpenGL ES​​,以支持在应用中绘制和操作 2D 和 3D 图形。

如果开发的是需要 C 或 C++ 代码的应用,可以使用 ​​Android NDK​​​ 直接从原生代码访问某些​​原生平台库​​。

这一层通过一些C/C++库为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在这一层还有Android运行时库,它主要提供了一些核心库,允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),它使得每一个 Android应用都能运行在独立的进程中,并且拥有一个自己的虚拟机实例。相较于Java虚拟机,Dalvik和 ART都是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理。

Java API 框架

您可通过以 Java 语言编写的 API 使用 Android OS 的整个功能集。这些 API 形成创建 Android 应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用,包括以下组件和服务:

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

系统应用

Android 随附一套用于电子邮件、短信、日历、互联网浏览和联系人等的核心应用。平台随附的应用与用户可以选择安装的应用一样,没有特殊状态。因此第三方应用可成为用户的默认网络浏览器、短信 Messenger 甚至默认键盘(有一些例外,例如系统的“设置”应用)。

系统应用可用作用户的应用,以及提供开发者可从其自己的应用访问的主要功能。例如,如果您的应用要发短信,您无需自己构建该功能,可以改为调用已安装的短信应用向您指定的接收者发送消息。

应用框架层

这一层主要提供了构建应用程序时可能用到的各种 API,Android自带的一些核心应用就是使用这些API完成的,开发者可以使用这些API来构建自己的应用程序。

最后列出android版本列表,大家可以去查看最新的数据。

​https://developer.android.google.cn/about/versions​

Android简介

Android是一个基于​​Linux内核​​​与其他​​开源软件​​​的​​开放源代码​​​的​​移动操作系统​​​,由​​谷歌​​​成立的​​开放手持设备联盟​​持续领导与开发。Android Inc.于2003年10月由​


​安迪·鲁宾​​​、​​利奇·米纳尔​​​、​​尼克·席尔斯​​​、​​克里斯·怀特​​​在​​加州​​​​帕罗奥图​​​创建。Android最初由​​安迪·鲁宾​​​等人开发制作,最初开发这个系统的早期方向是创建一个​​数字相机​​​的先进操作系统,但是后来发现相机市场规模不够大,加上智能手机发展趋势快速成长,于是Android成为一款面向智能手机的操作系统。于2005年7月11日Android Inc.被​​美国​​​科技企业Google收购​​[15\\]​​​​[16\\]​​。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商成立​


​开放手持设备联盟​​​来共同研发Android,随后,Google以​​Apache免费开放源代码许可证​​的授权方式,发布了Android的源代码,开放源代码加速了Android普及,让生产商推出搭载Android的智能手机,Android后来更逐渐拓展到平板电脑及其他领域上2010年末数据显示,仅正式推出两年的Android操作系统在市场占有率上已经超越称霸逾十年的​


​诺基亚​​​​Symbian​​系统,成为全球第一大智能手机操作系统在2014年​


​Google I/O​​开发者大会上Google宣布过去30天里有10亿台活跃的Android设备,相较于2013年6月则是5.38亿2017年3月,Android全球网络流量和设备超越​


​Microsoft Windows​​,正式成为全球第一大操作系统截至2021年8月,根据​


​StatCounter​​​统计,除了美国、加拿大、挪威、瑞典、丹麦、瑞士、科索沃、日本、台湾和澳大利亚外,其他所有国家和地区都把Android作为首选​​智能手机​​操作系统

平台架构

Android大致可以分为4层架构:Linux内核层、系统运行库层、应用框架层和应用层。

#yyds干货盘点#Android简介【Android专题1】_智能手机_02

目前已经是android11,android12预览版也已上线Android 11 可让您轻松搞定重要事务。该操作系统会根据您使用手机的方式进行优化,能够把您的手机变成强大的家居设备控制器,还能让您更轻松地管理对话、隐私设置等。

Android 11 的亮点

  • 对话
  • 内容截取
  • 有联想功能的工具
  • 无障碍功能
  • 设备控制器
  • 隐私权与安全
  • 支持 Android 11 的手机

接下来就让我们了解一下Android的系统架构

Linux 内核

Android 平台的基础是 Linux 内核。例如,​​Android Runtime (ART)​​ 依靠 Linux 内核来执行底层功能,例如线程和低层内存管理。显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。

硬件抽象层 (HAL)

​硬件抽象层 (HAL)​​​ 提供标准界面,向更高级别的 ​​Java API 框架​​​显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如​​相机​​​或​​蓝牙​​模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

Android Runtime

对于运行 Android 5.0(API 级别 21)或更高版本的设备,每个应用都在其自己的进程中运行,并且有其自己的 ​​Android Runtime (ART)​​​ 实例。ART 编写为通过执行 DEX 文件在低内存设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少。编译工具链(例如 ​​Jack​​)将 Java 源代码编译为 DEX 字节码,使其可在 Android 平台上运行。ART 的部分主要功能包括:

  • 预先 (AOT) 和即时 (JIT) 编译
  • 优化的垃圾回收 (GC)
  • 在 Android 9(API 级别 28)及更高版本的系统中,支持将应用软件包中的 ​​Dalvik Executable 格式 (DEX) 文件转换为更紧凑的机器代码​​。
  • 更好的调试支持,包括专用采样分析器、详细的诊断异常和崩溃报告,并且能够设置观察点以监控特定字段

在 Android 版本 5.0(API 级别 21)之前,Dalvik 是 Android Runtime。如果您的应用在 ART 上运行效果很好,那么它应该也可在 Dalvik 上运行,但​​反过来不一定​​​。Android 还包含一套核心运行时库,可提供 Java API 框架所使用的 Java 编程语言中的大部分功能,包括一些 ​​Java 8 语言功能​​。

原生 C/C++ 库

许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写的原生库。Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。例如,您可以通过 Android 框架的 ​​Java OpenGL API​​​ 访问 ​​OpenGL ES​​,以支持在应用中绘制和操作 2D 和 3D 图形。如果开发的是需要 C 或 C++ 代码的应用,可以使用 ​


​Android NDK​​​ 直接从原生代码访问某些​​原生平台库​​。这一层通过一些C/C++库为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。 在这一层还有Android运行时库,它主要提供了一些核心库,允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),它使得每一个 Android应用都能运行在独立的进程中,并且拥有一个自己的虚拟机实例。相较于Java虚拟机,Dalvik和 ART都是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理。

Java API 框架

您可通过以 Java 语言编写的 API 使用 Android OS 的整个功能集。这些 API 形成创建 Android 应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用,包括以下组件和服务:

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

系统应用

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

应用框架层

这一层主要提供了构建应用程序时可能用到的各种 API,Android自带的一些核心应用就是使用这些API完成的,开发者可以使用这些API来构建自己的应用程序。最后列出android版本列表,大家可以去查看最新的数据。​​https://developer.android.google.cn/about/versions​

以上是关于#yyds干货盘点#Android简介Android专题1的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#Linux简介

dpkg使用简介#yyds干货盘点#

Netty 简介《Netty In Action》 #yyds干货盘点#

#yyds干货盘点# 常用的Logic Controllers组件简介

Flutter 找不到 android sdk(图文详解) #yyds干货盘点#

云基础和openstack架构简介 #yyds干货盘点#