赞
踩
安卓手机APP开发__平台的架构
目录
安卓是一个开源的,基于Linux的软件栈,它创建一个设备和形式因素的很宽的矩阵。
下图展示了安卓平台的所有的主要的组件
Figure 1. The Android software stack.
安卓平台的基础是Linux内核。例如,安卓的运行时依赖于Linux内核的功能。
例如,线程和底层的内存管理。
使用Linux内核让安卓利用了关键的安全特性,让设备制造商针对一个知名的
Linux内核来开发硬件驱动。
硬件抽象层(HAL)提供了标准的接口,来向高层的Java API框架提供硬件设备的功能。
硬件抽象层(HAL)由多个库的模块组成,每一个库模块都为一个特定的硬件组件类型
实现了一个接口,例如,照相机或者是蓝牙模块。当框架的API做了一个调用,来读取
硬件设备时,安卓系统加载了那个硬件组件的库模块。
对于设备运行在安卓版本5.0 (API 级别 21)或者更高时,每一个APP运行在它自己的
进程中,在安卓的运行时中有自己的实例。安卓运行时是被写成在在很少的内存上运行
时多个虚拟机器,方法是执行Dalvik可执行格式的文件(DEX),这是一个字节码的格式
针对安卓进行了特殊的设计,对于很少的内存中运行进行了优化。构建工具是d8,它编译
Java源代码为DEX字节码,这个字节码能运行在安卓的平台上。
安卓运行时的一些主要的特性包括如下的内容:
预先编译和即时编译
优化过的垃圾回收
在安卓版本9以及更高,一个APP软件包的DEX的优化
有更紧揍的机器码的文件
更好的调试支持,包括一个专用的采样检查器,详细的诊断异常和崩溃报告,
为了监视特定的域的检查点的设置能力
在安卓5之前,Dalvik是安卓的运行时。如果你的APP在安卓运行时运行的很好,
那么它也能在Dalvik运行的好,但是相反可能是不行的。
安卓也包括了一些核心的运行时库,它提供了Java编程语言的绝大部分的功能,
包括了java8的特性,这也是Java API 框架所使用的。
许多核心的安卓系统组件和服务,例如安卓运行时,和硬件抽象层都从原生的代码构建出来的,
需要由C和C++写的原生的代码库.安卓平台提供Java框架API来提供这些原生库中的功能给APP
例如,你能通过使用安卓框架的Java OpenGL API来读取OpenGL ES,进而支持在你的APP中
绘制和操纵2D和3D的图形.
如果你正在开发一个APP,需要有C或者是C++的代码,你能使用安卓的NDK来直接读取这些原生的
平台代码库中的一些功能.
通过使用Java编写的API,你能利用安卓操作系统的所有的特性集.这些API形成了你需要的
构建代码块,用来创建安卓的APP,通过简化核心代码的重用,模块化系统组件和服务,包括
如下的内容:
一个富于扩展的视图系统,你能用这个系统来构建一个APP的用户界面,包括列表,表格,文本框
按钮,甚至是一个内嵌的网络浏览器.
一个资源管理器,提供对非代码资源的读取,例如本地化的字符串,图形,和布局文件
一个通知管理器,它能在一个状态条中显示所有的APP的定制化的告警信息.
一个活动管理器,它管理APP的生存周期和提供一个常用的导航返回栈.
内容提供器,它允许一个APP从其它的APP那里读取数据,例如通讯录APP,
或者是共享它们自己的数据.
安卓带来了一系列的核心的APP,例如,电子邮件,短消息,日历,网络浏览器,通讯录,等.
平台自带的APP与用户选择安装的APP之间没有特殊的状态.所以,第三方APP能成为用户的
默认的浏览器,短消息,甚至是默认的键盘.一些例外是有的,例如,系统设置APP.
系统APP功能都作为用户的APP,与开发者自己的APP一样提供关键的功能.例如,如果你
要你的APP发送短消息,你不需要自己构建这个功能.你能调用任何一个短消息的APP,来
发短消息到你指定的收件人.
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。