ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【Android】Android体系性学习——Android体系架构 [打印本页]

作者: 刘俊凯    时间: 2024-8-12 12:02
标题: 【Android】Android体系性学习——Android体系架构
媒介

部门内容参考《Android进阶解密》 – 刘望舒
1. Android版本

官方链接:https://developer.android.com/studio/releases/platforms
内里有各个版本的官方文档,有些新功能的用法在这内里。
现在做安卓11,偶然候必要向下兼容
2. AOSP 和 ATV

Android体系根据是否必要认证分为AOSP体系和ATV体系。

2.1 AOSP

界说:AOSP是指Android开源项目,它是由Google发起并维护的一个开源软件项目,旨在提供一个开放、自由、可定制的移动操作体系。
特点:AOSP是Android的原始代码库,包括Android操作体系的焦点代码、应用程序框架、体系应用和工具等。它是开放源代码的,任何人都可以访问、查看和下载AOSP的源代码,并根据必要进行修改和定制。
用途:AOSP作为Android操作体系的基础,被广泛用于移动设备、平板电脑、智能手表、智能电视、汽车娱乐体系等各种设备。开发者可以基于AOSP构建自己的Android发行版,或者为特定设备进行定制开发。
更多表明:
2.2 ATV

界说:Android TV是一种Android操作体系的变种,专门设计用于智能电视和媒体播放器。它是AOSP的一个派生版本,经过了针对大屏幕电视的定制和优化。
特点:Android TV保留了Android操作体系的焦点特性,如Android应用程序生态体系、多媒体播放功能、网络毗连和互联网访问等。但它还具有专门针对电视观看体验的用户界面和交互方式,包括遥控器支持、大屏幕适配、焦点导航等。
用途:Android TV被广泛应用于智能电视、电视机顶盒、媒体播放器和游戏机等娱乐设备。用户可以通过Android TV访问各种应用程序,观看视频内容、播放游戏、浏览互联网等,从而将智能功能引入电视屏幕。
3. Android机顶盒硬件原理框图及Android机顶盒不支持的功能


第一章 Android体系架构

1.1 Android平台架构

官方文档:https://developer.android.com/guide/platform
Android体系架构分为五层:从上到下依次是应用层、应用架构层、体系运行库层、硬件抽象层和Linux内核层,如图:

1.1.1 应用层(System Apps)

体系内置的应用程序以及非体系级的应用程序都属于应用层,负责与用户进行直接交互,通常都是用Java进行开发的。
1.1.2 应用框架层(Java API Framework)

API (Application Programming Interface)
应用框架层为开发人员提供了开发应用程序所必要的API,我们寻常开发应用程序都是调用这一层所提供的API,固然也包括体系应用。这一层是由Java代码编写的,可以称为Java Framework。下面来看这一层所提供的主要组件:

1.1.3 体系运行库层

从Android体系框架图上可以看出,体系运行库层分为两部门,分别是 C/C++ 程序库和 Android 运行时库,下面分别进行介绍:
(1)原生C/C++程序库

(2)Android运行时库
运行时库又分为焦点库和ART(5.0体系之后,Dalvik虚拟机被ART取代)。焦点库提供了Java语言焦点库的大多数功能,如许开发者可以使用Java语言来编写Android应用。相较于JVM,Dalvik虚拟机是专门为移动设备定制的,答应在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。而替代Dalvik虚拟机的ART 的机制与Dalvik 差异。在Dalvik下,应用每次运行的时候,字节码都必要通过即时编译器转换为机器码,这会拖慢应用的运行服从,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。
1.1.4 硬件抽象层(HAL / HIDL)

硬件抽象层是位于操作体系内核与硬件电路之间的接口层,其目标在于将硬件抽象化,为了保护硬件厂商的知识产权,它隐蔽了特定平台的硬件接口细节,为操作体系提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。 从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。通俗来讲,就是将控制硬件的动作放在硬件抽象层中。
1.1.5 Linux内核层

Android 的焦点体系服务基于Linux 内核,在此基础上添加了部门Android专用的驱动。体系的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。
Android体系的五层架构就讲到这,了解以上的知识对以后分析体系源码有很大的资助。
1.2 Android体系源码目次

学习Android体系源码,必要把握体系源码目次。可以访问下面的毗连来阅读体系源码
https://android.googlesource.com/
至于Android体系源码目次可以参考:
Android体系五层架构
1.2.1 整体结构

各个版本的源码目次根本是雷同的,如果是编译后的源码目次,会多一个out文件夹,用来存储编译产生的文件。Android 11 的体系目次如下:

可以看出,体系源码分类清楚,并且内容庞大且复杂。接下来分析packages中的内容,也就是应用层部门
1.2.2 应用层部门

应用层位于整个Android体系的最上层,开发者开发的应用程序以及体系内置的应用程序都是在应用层。源码根目次中的packages目次对应着体系应用层。它的目次结构如表
暂时无法在飞书文档外展示此内容
从目次结构可以发现,packages目次存放着体系焦点应用程序、第三方的应用程序和输入法等等,这些应用都是运行在体系应用层的,因此packages目次对应着体系的应用层。

1.2.3 应用框架层部门

应用框架层是体系的焦点部门,一方面向上提供接口给应用层调用,另一方面向下与C/C++程序库以及硬件抽象层等进行衔接。 应用框架层的主要实现代码在/frameworks/base和/frameworks/av目次下,此中/frameworks/base目次结构如表

1.2.4 C/C++程序库部门

体系运行库层(Native)中的 C/C++程序库的范例繁多,功能强大,C/C++程序库并不完全在一个目次中,这里给出几个常用且比力重要的C/C++程序库地点的目次位置。

讲完 C/C++程序库部门,剩下的部门我们已经给出:Android运行时库的代码放在art/目次中。硬件抽象层的代码在hardware/目次中,这一部门是手机厂商改动最大的一部门,根据手机终端所采用的硬件平台会有差异的实现。
1.3 源码阅读

这里有Android10 的源码:https://www.androidos.net.cn/android/10.0.0_r6/xref
Android 7.1 到 Android 13 的体系源码:http://aospxref.com
下载源码:https://source.android.google.cn/docs/setup/download?hl=zh-cn
源码提交:https://android.googlesource.com/platform/manifest
https://blog.csdn.net/cjohn1994/article/details/127467165

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4