安卓系统简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
初识安卓系统
1安卓系统
1.1安卓系统简介
安卓系统(Android)是一种由Google 公司和开放手机联盟领导及开发的操作系统,主要用于移动设备,如智能手机和平板电脑。它是基于开放源代码的Linux 内核构建的,并且提供了一套丰富的应用程序接口(API,Application Pro gram Interface,计算机和应用程序之间交互所使用的一套标准,是两者之间信息传输和发送指令的媒介。) 和软件开发工具(SDK,Software Development Kit,为辅助开发特定类别的软件,方便工程师开发使用,对软件的操作系统、软件、硬件、开发工具等一系列开发载体做出的集成),供开发人员在设备上创建自定义应用程序。安卓系统的界面风格通常使用拖动式菜单,并具有丰富的个性化选项,使用户可以调整设备的外观和功能。它也提供了许多内置应用程序,如电子邮件客户端、网络浏览器、通讯录、短信、相机、电话等。
1.2安卓系统的优缺点
安卓系统的优点:1)开源(Open Source,指开放系统的源代码)性,安卓是开源的,这意味着开发人员可以自由地使用和修改源代码,并且不需要支付任何许可费。这使得开发人员能够轻松地创建自定义只读内存(ROM,Read-Only Memory,只读内存)并将其发布到社区中。2)丰富的应用程序生态系统,安卓拥有世界上最大的应用程序生态系统,有许多应用程序和游戏可供选择。3)硬件多样性:安卓支持许多不同的硬件平台,这意味着用户可以在各种不同的设备中使用安卓系统。4)自定义性,安卓提供了丰富的个性化选项,使用户能够调整设备的外观和功能。
安卓系统的缺点:1)安卓系统更新可能不及时,由于安卓系统有许多不同的制造商和设备,因此更新可能会慢于其他操作系统。2)安全性问题,安卓系统过于自由化,冒牌的应用特别多,存在潜藏的安全隐患,例如恶意软件和黑客攻击。3)耗电量较大吗,某些安卓系统设备可能会比其他操作系统的设备更耗电。4)安卓系统对硬件的依赖性较大,可能需要硬件设备的兼容性、性能、配置等各方面满足要求,才能发挥出安卓系统的最大优势。
2. 安卓系统体系结构
2.1 安卓系统结构的内容
图1 安卓系统体系结构
安卓体系结构是指安卓操作系统的组成部分和它们之间的关系。安卓体系结构的示意图见图1。安卓体系结构包括以下几个部分:
1)应用程序层(Applications),这是安卓系统最顶层的部分,是用户最直接使用的部分。它包括所有的应用程序和用户界面,比如图1中的H桌面(Home)、通讯录(Contents)、电话(Phone)和浏览器(Browser)。
2)应用程序框架层(Applicaiton Framework),这一层提供了应用程序层所需的各种服务和功能,也就是上文中提到的API。应用程序运行时所需要的活动管理器(Activity Manager)、窗口管理器(Window Manager)、内容提供者(Content Providers)、视图系统(View system)、通知管理器(Notification Manager)、包管理器(Package Manager)、电话管理器(Telephony Manager)、资源管理器(Resource Manager)、位置管理器(Location Manager)、即时通讯服务(XMPP Service)等功能都由应用程序框架层提供。
3)核心系统库层(Libraries、Android Runtime):这一层提供了底层的系统功能,主要包括原生的C/C++程序库和Android运行时库两部分。原生的C/C++程序库主要包括界面管理器(Surface Manager)、多媒体(Media FrameWork)、关系型数据库引擎(SQLite)、3D绘图库(OpenGL|ES)、字体引擎(FreeType)、浏览器引擎(Webkit)、SGL(2D绘图引擎)、SSL(安全套接字协议)等。Android 运行时库,主要包括核心类库(Core Libraries)和Dalvik虚拟机(Dalvik Virtual
Machine)。对于安卓5.0以上的系统版本,不在使用Dalvik虚拟机运行安卓代码,改为用ART虚拟机运行。
4)操作系统内核层(Linux Kernal):这一层是安卓操作系统的核心部分,负责管理系统的硬件资源和提供系统的底层服务。由于安卓系统是基于Linux操作系统开发的,所以这里的系统内核层指的是Linux内核。考虑到安卓应用程序在运行时核心系统库层通过使用操作系统内核层的驱动来和硬件交互,因此很多专家把硬件分离出来单独作为一层,叫做硬件抽象层(HAL,Hardware Abstract ion Layer),这里不考虑硬件抽象层。操作系统内核层主要由软件驱动构成,包括显示驱动(Display Driver)、相机驱动(Camera Driver)、蓝牙驱动(Blooth Driver)、闪存驱动(Flash Memory Driver)、进程通信驱动(Binder Driver)、通用穿行总线驱动(USB Driver)、小键盘驱动(keypad Driver)、无线网驱动(WiFi Driver)、音频驱动(Audio Drivers)、电源管理器(Power Managemen t)。
2.2 安卓体系结构间的关系
安卓体系结构之间的关系如下:1)应用程序层是最顶层的部分,是用户最直接使用的部分。2)应用程序框架层位于应用程序层之下,负责提供应用程序层所需的各种服务和功能。3)核心系统库层位于应用程序框架层之下,负责提供底层的系统功能。4)操作系统内核层是安卓操作系统的核心部分,位于核心系统库层之下,负责管理系统的硬件资源和提供系统的底层服务。这些部分是层级关系,各个部分之间通过接口相互配合。应用程序层需要调用应用程序框架层提供的服务,应用程序框架层需要调用核心系统库层提供的功能,核心系统库层需要调用操作系统内核层提供的服务。各个部分共同为用户提供完善的移动设备使用体验。
从移动应用程序的代码调用逻辑来看,当用户和应用程序层交互时,安卓代码打包好的应用程序会在Android运行时库运行,实际上实在执行Dex字节码文件。在这个过程中会通过应用程序框架层提供的JAVA API接口实现各种各样的功能和服务。而应用程序框架层提供的JAVA API接口在和调用硬件驱动的时候,又会通过JAVA原生接口(JNI,Java Native Interface)调用核心系统库层的C/C++原生程序库。考虑到C/C++代码操控底层硬件的优势包括:c语言生态丰富,发展较早不需要重复写一些复杂的逻辑,C/C++反编译的难度更大等,因此,C/C++原生程序库会调用系统内核的驱动来和硬件进行交互。在多数情况下,重要的业务逻辑会放在C/C++中。