卖不甜枣 发表于 5 天前

【Android】底子架构(具体先容)

https://i-blog.csdnimg.cn/direct/3357b6e69cc54e928177953cbb2d9ccd.png
目录
前言
一、Android
1.1 什么是 Android?
1.2 开发优势
1.3 特性
1.4 Android 应用步伐
1.5 Android 的汗青
二、Android 架构
2.1 Linux 内核层 (Linux Kernel)
作用
主要组件
示例
2.2 硬件抽象层(Hardware Abstraction Layer,HAL)
作用
主要模块
2.3 库和 Android 运行时层 (Libraries and Android Runtime)
库 (Libraries)
作用
主要库
Android 运行时 (Android Runtime)
组成
作用
示例
2.4 应用框架 (Application Framework)
主要组件
示例
2.5 应用步伐 (Applications Layer)
作用
示例
三、工作原理
3.1 高层次工作原理
3.2 具体流程示例
四、总结

前言

Android 利用体系是一个复杂的体系,由多层构成,每一层都起着特定的作用。明白这些层次及其作用,有助于全面掌握 Android 的工作原理。
本文将具体先容 Android 的五大层次,并深入分析每一层次的作用。

一、Android

1.1 什么是 Android?

Android 是一个开源的,基于 Linux 的移动设备利用体系,如智能手机宁静板电脑。Android 是由谷歌及其他公司领导的开放手机同盟开发的。
Android 提供了一个同一的应用步伐开发方法,这意味着开发职员只必要为 Android 举行开发,这样他们的应用步伐就可以或许运行在不同搭载 Android 的移动设备上。
谷歌在2007年发布了第一个测试版本的 Android 软件开发工具包(SDK),第一个商业版本的 Android 1.0,则发布于2008年9月。
2012年6月27日,在谷歌I/O大会上,谷歌宣布发布了 Android 版本4.1 Jelly Bean。 Jelly Bean 是一个在功能和性能方面的渐进的更新,主要目的是改进用户界面。
Android 源代码是根据自由和开放源码软件答应证。谷歌发布的大部分代码遵循 Apache 答应证2.0版,Linux 内核的变革遵循 GNU 通用公共答应证版本2。
1.2 开发优势



[*]开放源代码
[*]浩繁开发者及强大的社区
[*]不断增长的市场
[*]国际化的 App 集成
[*]低廉的开发成本
[*]更高的乐成几率
[*]丰富的开发环境
1.3 特性

Android 是一款与 Apple 4GS 竞争的功能强大的利用体系,并支持一些巨大的特性。以下列举出部分功能:
https://i-blog.csdnimg.cn/direct/98660e2b5ec447098f28c2263462f23b.png
1.4 Android 应用步伐

Android 应用步伐一般利用 Android 软件开发工具包,接纳 Java 语言来开发。
一旦开发完成,Android 应用步伐可以轻易的打包,并在诸如 Google Play 和亚马逊应用商店上出售。
Android 在天下各地190多个国家有数以百万计的移动设备。这是任何移动平台和快速增长的最大的安装底子。全球天天有凌驾100万个新的 Android 设备被激活。
1.5 Android 的汗青

Android 的代码名称如今从 A 排到了 L,分别是 Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat and Lollipop。让我们按顺序相识 Android 的汗青。


[*]纸杯蛋糕 (Cupcake)
[*]甜甜圈 (Donut)
[*]闪电泡芙 (Eclair)
[*]冻酸奶 (Froyo)
[*]姜饼 (Gingerbread)
[*]蜂巢 (Honeycomb)
[*]冰淇淋三明治 (Ice Cream Sandwich)
[*]果冻豆 (Jelly Bean)
[*]奇巧 (KitKat)
[*]棒棒糖 (Lollipop)
https://i-blog.csdnimg.cn/direct/5794e42cccbb4735aa0dbe1d6ca74cc3.png

二、Android 架构

Android 利用体系是一个软件组件的栈,在架构图中它大抵可以分为五个部分和四个主要层。
https://i-blog.csdnimg.cn/direct/f9e44317f0ee413a9af8191d5720029c.png
2.1 Linux 内核层 (Linux Kernel)

在所有层的最底下,Android平台的底子是Linux内核,Linux 内核是 Android 利用体系的基石,负责底层硬件抽象、内存管理、进程管理、安全性等核心功能。
它提供了基本的体系功能,好比进程管理,内存管理,设备管理(如摄像头,键盘,显示器)。同时,内核处理所有 Linux 所擅长的工作,如网络和大量的设备驱动,从而避免兼容大量外围硬件接口带来的不便。
   好比ART虚拟机最终调用底层Linux内核来执行功能。Linux内核的安全机制为Android提供相应的保障,也答应设备制造商为内核开发硬件驱动步伐。
作用


[*]硬件驱动: 提供各种设备驱动步伐,如显示驱动、音频驱动、相机驱动等。
[*]内存管理: 管理体系内存,为应用步伐分配内存资源。
[*]进程管理: 负责进程和线程的调理与管理。
[*]安全机制: 提供基本的安全特性,如文件体系权限、用户权限管理等。
[*]省电优化: 通过电源管理框架,实现设备省电优化。
主要组件



[*]驱动步伐: 设备驱动,用于控制硬件。
[*]电源管理: 管理设备的电源状态,实现节能策略。
[*]安全保卫: SE Linux 安全模块,提供体系安全掩护。
[*]输入管理: 处理键盘、触摸屏、传感器等输入设备。
示例



[*]驱动步伐: 包括显示驱动、摄像头驱动、Wi-Fi 驱动等,用于利用具体硬件设备。
[*]电源管理: 举例来说,设备进入就寝模式时,通过电源管理降低能耗。

步伐库
在 Linux 内核层的上面是一系列步伐库的集合,包括开源的 Web 浏览器引擎 Webkit ,着名的 libc 库,用于仓库存储和应用数据共享的 SQLite 数据库,用于播放、录制音视频的库,用于网络安全的 SSL 库等。
2.2 硬件抽象层(Hardware Abstraction Layer,HAL)

硬件抽象层 (HAL) 提供了一组标准接口,使上层软件可以或许轻松地与物理硬件举行通信。开发 HAL,硬件制造商与设备的具体利用方法保持同等。
作用


[*]硬件抽象: 封装硬件细节,通过定义标准接口,提供与硬件通信的抽象方法。
[*]设备兼容: 答应 Android 利用体系在不同硬件设备上运行而无需改变上层应用。
[*]模块化计划: 各个硬件模块独立实现,易于维护和升级。
主要模块



[*]摄像头 HAL: 提供摄像头利用接口,实现摄像头预览、照相、视频录制等功能。
[*]音频 HAL: 提供标准音频接口,实现音频的录制和播放。
[*]蓝牙 HAL: 提供蓝牙设备通信的接口。
2.3 库和 Android 运行时层 (Libraries and Android Runtime)

这是架构中的第三部分,自下而上的第三层。这一层包含了大量的核心库和 Android 运行时。
库为体系提供了底子功能。而 Android 运行时则是驱动应用步伐的引擎,同时提供一系列核心的库来为 Android 应用步伐开发者利用标准的 Java 语言来编写 Android 应用步伐。
   这个部分提供名为 Dalvik 虚拟机的关键组件,类似于 Java 虚拟机,但专门为 Android 计划和优化。


[*]Dalvik 虚拟机使得可以在 Java 中利用 Linux 核心功能,如内存管理和多线程。
[*]Dalvik 虚拟机使得每一个 Android 应用步伐运行在自己独立的虚拟机进程。
库 (Libraries)

作用


[*]核心功能: 提供各种底子功能,如图形渲染、数据库访问、网络连接等。
[*]性能优化: 提供高效的低层实现,提升应用性能。
主要库



[*]Surface Manager: 管理显示子体系和窗口合成。
[*]Media Framework: 提供播放和录制音视频的功能。
[*]SQLite: 关系数据库,用于当地数据存储。
[*]OpenGL ES: 2D 和 3D 图形渲染引擎。
[*]WebKit: 浏览器引擎,用于显示网页内容。
[*]libc: 标准 C 库,提供底子的体系调用。
Android 运行时 (Android Runtime)

组成


[*]Core Libraries: 提供 Java 编程语言的核心功能。
[*]ART/Dalvik 虚拟机: ART(Android Runtime)和 Dalvik 是 Android 的虚拟机,为应用提供运行环境。
作用


[*]内存管理: 提供自动内存管理机制,如垃圾接纳 (Garbage Collection)。
[*]性能优化: 提供即时编译 (Just-In-Time, JIT) 和提前编译 (Ahead-Of-Time, AOT),提升应用运行服从。
[*]多进程支持: 提供独立的进程空间,包管应用之间互不干扰。
示例



[*]SQLite: 用于存储应用数据的小型关系型数据库。
[*]OpenGL ES: 用于图形渲染的库,让应用可以或许显示复杂的 2D 和 3D 图形。

2.4 应用框架 (Application Framework)

应用框架层以 Java 类的形式为应用步伐提供许多高级的服务,包括提供了可复用的组件和服务。应用步伐开发者被答应在应用中利用这些服务来构建他们的应用步伐。它是一个丰富的 API 集合,简化了应用开发。作用

[*]组件重用: 提供了大量的可复用组件,如 Activity、Service、Content Provider、Broadcast Receiver。
[*]同一接口: 提供同一接口访问体系服务,如视图体系、资源管理、关照管理、位置管理等。
[*]高效开发: 简化复杂功能的实现,使开发者可以更高效地举行开发。
主要组件



[*]Activity Manager活动管理者: 管理应用步伐的生命周期和使命栈,控制应用步伐生命周期和活动栈的所有方面。
[*]Window Manager: 管理窗口显示和布局。
[*]Content Providers内容提供者: 管理应用间共享数据,答应应用步伐之间发布和分享数据。
[*]View System视图体系: 一个可扩展的视图集合,用于构建应用步伐用户界面。
[*]Notification Manager关照管理器: 显示自定义告诫和关照,答应应用步伐显示对话框或者关照给用户。
[*]Resource Manager资源管理器: 访问非代码资源,如字符串、图形。提供对非代码嵌入资源的访问,如字符串,颜色设置和用户界面布局。
示例



[*]Activity: 每一个屏幕或者页面对应一个 Activity,实现用户界面的加载和交互。
[*]Service: 用于执行长时间运行利用,或者执行没有用户界面需求的使命。
2.5 应用步伐 (Applications Layer)

应用层是 Android 体系的最上层,它包括所有的用户应用步伐。
你写的应用步伐也将被安装在这层。这些应用步伐包括如拨号器、信息、浏览器、相机等。用户可以直接与这些应用步伐交互。
作用


[*]用户交互: 提供用户界面和用户所需的功能。
[*]功能实现: 框架层之上的功能具体实现,如打电话、发短信、上网等。
[*]扩展性: 用户可以通过 Google Play 或其他渠道安装第三方应用,扩展设备功能。
示例



[*]体系应用: 拨号器、信息、设置、相机。
[*]第三方应用: WhatsApp、Facebook、Instagram。

三、工作原理

3.1 高层次工作原理


[*]用户交互: 用户通过应用层举行利用,如打开应用、点击按钮。
[*]应用框架: 应用层通过调用应用框架提供的 API 完成各种使命,如更新 UI、获取位置信息等。
[*]运行时和库: 应用框架调用运行时和库提供的功能,如数据库利用、网络请求、图形渲染。
[*]硬件交互: 通过 HAL 层调用相应的硬件功能,如获取摄像头图像、录制音频等。
[*]内核支持: Linux 内核层提供底子支持,如硬件驱动、内存管理、进程调理等,确保体系的稳固运行。
3.2 具体流程示例

例如:用户点击应用中的 "照相" 按钮。

[*]应用层: 用户点击应用中的 "照相" 按钮,触发 Activity 的变乱回调。
[*]应用框架层: Activity 调用应用框架的 Camera API,向体系请求开启摄像头。
[*]HAL 层: 摄像头请求被传递到 HAL 层,通过 HAL 接口与具体的摄像头设备通信。
[*]内核层: 内核层的摄像头驱动步伐负责捕获图像,并将图像数据返回到应用层。
[*]库和运行时: 图像数据通过运行时和库层处理,如举行图像压缩、存储利用等。
[*]最终应用: 图像显示在应用的用户界面上,用户可以看到拍摄的照片。

四、总结

明白 Android 利用体系的层次布局以及每一层的作用,对于掌握 Android 开发至关重要。从应用层到 Linux 内核层,每一层都饰演着特定的角色。通过全面相识这些层次及其工作原理,可以更好地开发高效、稳固的 Android 应用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Android】底子架构(具体先容)