APP下载

基于Android平台的体系研究

2023-09-03梅嘉欣翟高粤

客联 2023年5期

梅嘉欣 翟高粤

摘 要:Android是一个基于Linux的开放、免费的操作系统,主要应用于移动终端,如智能手机、平板电脑等。它是由30多家科技公司和移动电话公司组成的开放手机联盟开发。安卓尽量让用户体验到最好的服务质量,并让开发人员获得更开放的水平,以便更方便地进行软件开发。因此,可以通过Android开发功能更便捷的移动应用程序。本文主要介绍Android平台的体系结构。

关键词:Linux;Android;移动开发

“Android”一词本意是指机器人,但我们现在知道它是谷歌推出的开源手机操作系统。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,被称为第一个真正面向移动终端的开放移动软件。作为谷歌移动互联网战略的重要组成部分,Android将进一步推动实现谷歌企业“随时随地为每个人提供信息”的目标。

Android是由30多家科技公司包括谷歌、HTC、T-Mobile、高通、摩托罗拉、三星、中国移动和LG在内的手机公司组成的开放手机联盟。开放手机联盟表示,Android平台可以推动移动设备的创新,让用户体验到最好的服务质量。同时,开发人员将获得一个新的开放级别,以获得更方便的协同效应,确保新移动设备的开发速度。因此,Android是第一个完整、开放、免费的手机开发平台。

Android系统有以下5个特点:

●开放:Android是由开放手机联盟的30多家公司开发的,因此谷歌、运营商、设备制造商和开发者之间的合作试图建立一个标准化、开放的手机软件平台,形成移動领域开放的生态系统。

●Android平台上的应用程序之间没有边界,因此它们通过标准API访问移动设备的核心功能。应用程序还可以声明它们的函数,使它们可供其他应用程序使用。

●移动设备上的应用程序是平等的,因此它们可以被替换或扩展,甚至可以修改拨号程序或主界面等核心组件。

●应用程序可以很容易地嵌入到HTML、JavaScript和样式表中,网络内容可以通过WebView控件显示。

●Android是一个完整的多任务环境,因此应用程序可以并行运行。运行时在后台,它们可以生成通知来唤醒睡眠中的程序。

一、Android平台的体系结构

Android架构可以分为四层,从高到低分别是应用层、应用框架层、硬件抽象层和linux内核层,如图1所示。

(一)应用程序层

应用程序层是用Java语言编写并在虚拟机上运行的程序。事实上,谷歌在Android系统中捆绑了一些核心应用程序,如电子邮件客户端、短信、日历、地图、浏览器、联系人管理和其他程序。

(二)应用框架层

应用框架层是指Google发布的核心应用的API。开发人员还可以应用这些框架来开发他们自己的应用程序,这可以简化程序体系结构设计,但必须遵守发展原则。

Android提供以下组件:

●丰富和可扩展的视图:可用于构建应用程序,包括列表、网格、文本框、按钮和嵌入式Web浏览器。

●内容提供者:它允许应用程序访问另一个应用程序的数据或共享其数据。

●资源管理器:它提供对非代码资源的访问,如本地字符串、图形和布局文件。

●通知管理器:应用程序可以在状态栏显示自定义通知。

●活动管理器:管理应用程序的生命周期,也提供常用的导航返回功能。

●窗口管理器:管理所有窗口程序。

●包管理器: Android系统的程序管理。

(三)硬件抽象层

当应用Android应用框架时,Android将通过一些C/ C++库来支持这些组件,以使它们更好地为我们服务。所有Java程序都在Dalvik虚拟机上运行,这些库包含:

●仿生系统C库是C语言的标准库,也是系统的底层库。由Linux系统调用。

●媒体框架:基于PacketVideo,OpenCORE来支持播放和录制多种格式的音频和视频,如MPEG4,MP3,AAC,AMR,JPG,PNG。

●SGL:2D图形引擎库。

●SSL:位于TCP/IP协议和其他应用协议之间,支持数据通信。

●OpenGL ES1.0:支持3D效果。

●SQLite:关系数据库。

●Webkit:Web浏览器引擎。

●FreeType:位图和矢量。

与PC类似,每个Android应用程序都有自己的进程,Dalvik虚拟机只以“.dex”的形式执行可执行文件。因此,在编译完Java程序后,还需要通过SDK中的dx工具将它们转移到“.dex”中才能在虚拟机上运行。

2007年底Google正式发布Android ADK,Dalvik虚拟机首次进入人们的视野。它对内存的高效利用和低速CPU的高性能确实让人刮目相看。Android系统可以简单地完成进程隔离和线程管理。每个Android应用程序对应于底部的一个独立的Dalvik虚拟机实例,其代码在虚拟机解释中执行。综上所述,Dalvik虚拟机具有以下特点:

●专有文件格式.dex:它放弃.class文件并应用新的.dex格式提高了文件解析和搜索速度,并且还支持新的操作代码。

●对索引文件的优化:对索引文件结构进行了优化,进一步提高了索引文件的性能运行性能,包括调整所有字段的字节序列,验证中的所有类.dex文件,并优化一些特定类和方法的操作代码。

●寄存器:与基于栈的虚拟机相比,基于寄存器的虚拟机在硬件和通用性方面较弱,但其代码执行效率较高。

●一个应用程序、一个虚拟机实例、一个进程:每个Android应用程序运行在一个Dalvik虚拟机实例中,每个虚拟机实例是一个独立的进程空间。线程机制、内存分配和管理、互斥锁的实现都依赖于底层操作系统。每个Android应用程序线程对应一个Linux线程,因此虚拟机可以更多地依赖于虚拟机的线程调度和管理机制。不同的应用程序运行在不同的线程空间,不同资源的应用程序由不同的Linux用户运行,最大限度地保护了应用程序的安全性和独立运行。

(四)Linux内核层

Android的核心系统服务是基于Linux2.5内核的,如安全性、内存管理、进程管理、网络协议栈、驱动模型等。Linux内核也是硬件和软件栈之间的抽象层。Android更需要的是与手机驱动相关的驱动如下所示。

●显示驱动:基于Linux的帧缓冲驱动。

●键盘驱动程序:输入设备,键盘的驱动程序。

●Flash存储驱动:基于MTD的Flash驱动。

●摄像头驱动:常用的基于Linux的视频(v412)驱动。

●音频驱动程序:高级Linux声音架构(ALSA)。

●蓝牙驱动:基于IEEE 802.15.1的无线传输技术。

●WiFi驱动:基于IEEE 802.11。

●Binder IPC Driver: Android的专用驱动程序,具有单个设备节点,提供进程间的通信功能。

●电源管理:如电池电量。

二、结论

本文主要介绍了Android平台的体系结构,详细介绍了Android平台的架构组成,并对应用层、应用框架层、硬件抽象层和linux内核层进行了详细的介绍和分析,对于初步接触Android的初学者有一定参考价值。

参考文献:

[1]刘凡馨等. Android移动应用开发基础教程 [M]. 人民邮电出版社,2018.

[2]胡敏等. Android移动应用设计与开发[M].人民邮电出版社, 2021.

[2]劉刚等. Android移动开发基础教程[M].人民邮电出版社, 2019.

作者简介:梅嘉欣(2002—),女,研究方向:软件开发。