栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

疯狂Android讲义(一)——第一部分

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

疯狂Android讲义(一)——第一部分

.

备注:下方的*代表这章的重要性。

一、本章内容: 1.Android的发展与简介

        Android并不是Google创造的,而是Android公司创造的,该公司的创始人是Andy Rubin。该公司后来被Google收购,而Andy Rubin也成为了Google公司的Android产品负责人。

        Google于2007年11月5日发布了Android 1.0手机操作系统,但是并没有得到广泛的市场支持。

        2009年5月.Gooole发布了Android 1.5 ,该版本的 Android提供了一个非常“豪华”的用户界面,而且提供了蓝牙连接支持。这个版本的Android吸引了大量开发者的目光。接下来,Android的版本更新得较快,前最新的 Android版本是9.0,这也是本书所介绍的 Android版本。

        Android系统广泛应用于TV、手机、手表,以及各种可穿戴的设备。Android 9.0已经专门提供了TV、Wear等系统镜像。

什么是系统镜像?

        系统镜像是驱动器的精确副本。 默认情况下,系统镜像包含系统运行所需的驱动器。它还包含系统和系统设置、程序及文件。 

        镜像文件是无法直接使用的,需要利用一些虚拟光驱工具进行解压后才能使用。虚拟光驱的原理跟物理光驱一样。
 
       如果硬盘或计算机无法工作,则可以使用系统映像来还原计算机的内容。 从系统映像还原计算机时,将进行完整还原;不能选择个别项进行还原,当前的所有程序、系统设置和文件都将被系统映像中的相应内容替换。

       所谓镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个测试的操作系统、游戏等。
 
       它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。比如说系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。

2.Android 9.x平台架构及特性(**)

        Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件4层组成。它采用一种被称为软件叠层(Software Stack)的方式构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无需任何改变。

        如图所示:Android系统主要由6个部分组成,接下来进行详解。

  2.1 系统 App 层

        Android提供了一系列核心App(应用程序),包括电话拨号应用、电子邮件客户端、日历、相机、联系人等。这些应用程序通常都是用Java编写的。

        普通开发者开发各种App都在这一层。本书也是基于此讲解的。

  2.2 Java API 框架层

        开发Android App就是面向Java API框架层进行开发。Android系统上的每个App都是平等的,都可以调用Android提供的Java  API框架。Java  API框架提供了大量的API供开发者使用。

        Java  API框架除了可以作为App开发的基础之外,也是软件复用的重要手段,任何一个应用程序都可以发布他的功能模块——只要发布时遵守了API框架的规范,其他App就都可以调用这个功能的模块。

  2.3 原生 C/C++ 库  

        Android包含一套被不同组件所使用的C/C++库的集合。下面简单的列出一些原生C/C++库:

WebKit:一个全新的Web浏览器引擎,也为WebView提供支持,WebView完全可以嵌入开发者的自己的程序当中。OpenMAX(开放媒体加速层):其目的在于使用统一的接口,加速处理大量多媒体资料,其中最上层为OpenMAX AL(App Layer),该层代表App和多媒体中间层的标准接口,使得App在多媒体接口上具有良好的可移植性。Libc(系统C库):一个从BSD系统派生的标准C系统库,并且专门为嵌入式Linux设备调整过。Media framework(媒体框架):基于PacketVideo的OpenCORE,这套媒体库支持播放和录制许多流行的音频和视频格式,以及查看静态图片。主要包括MPEG4、H.264、MP3、AAC、JPG、PNG等多媒体格式。SGL:底层的2D图片引擎OpenGL ES :基于OpenGL ES API实现3D系统,这套3D库既可以使用硬件3D加速(如果系统支持的话),也可以使用高度优化的软件3D加速。SQLite:功能强大的轻量级关系数据库。

  2.4 Android 运行时

        Android运行时由两个部分组成:Android核心库和ART。其中核心库提供了Java语言核心库所使用的的绝大部分功能;而ART则负责运行Android应用程序。

背景:

早期Android运行时由Dalvik虚拟机和Android核心库集组成,但是Dalvik虚拟机采用了一种被称为JIT(Just-In-Time)的解释器进行动态编译且执行,因此导致Android App运行时比较慢。从Android 5.0开始,Android运行时改为使用ART,ART在用户安装App时进行预编译(Ahead-Of-Time,AOT),将原本在程序运行时的编译动作提前到了App安装时,这样使得程序在运行的时候可以减小动态编译的开销,从而提高的Android App的运行效率。

相对的,ART需要在App安装时进行AOT处理,因此ART需要占用更多的存储空间,应用安装和启动时间会延长不少。此外,ART还支持ARM、x86和MIPS架构,并且能完全兼容64位系统。

        Android 6.0的重要更新是运行时权限,使得App能在安装之后动态地请求获取相关权限;Android 7.0的重要更新是多窗口模式。

  2.5 硬件抽象层(HAL)

        硬件抽象层主要提供了对Linux内核驱动的封装,这种分装可以向上提供驱动音频、蓝牙、摄像头、传感器等设备的编程接口,向下则可隐藏底层的实现细节。

        简单的来说,Android系统把对硬件的支持分为了两层:内核驱动层和硬件抽象层。其中底层的内核驱动层处于Linux 内核中,内核驱动层只提供简单的硬件访问逻辑,这部分代码是完全开源的;而硬件抽象层则负责参数和访问流程控制,这层的封装代码并不开源,他只是向上提供统一的编程接口,而具体的实现往往属于各厂家。

  2.6 Linux 内核

        Android系统是基于Linux的(所以说Android本质上是一个Linux系统)。Linux 内核提供了安全性、内存管理、进程管理、网络协议和驱动模型等核心系统服务。除此之外,Linux内核也是系统硬件和软件叠层之间的抽象层。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号