美文网首页
Android 科普

Android 科普

作者: 仲秋雨路 | 来源:发表于2017-12-14 19:58 被阅读67次

经常有人在思考买什么手机的时候,会在Android 的还是苹果之间比较。那今天就来简单科普下什么是Android , 以及与苹果IOS相比有什么优缺点

Android 是什么

Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。

直观地, Android 就是一种运行在手机,平板电脑,车载电子系统,智能电视的软件 , 它的经典Logo 如下所示。


Android Logo

其实,在当今世界上三大智能机操作系统中,Android 设备占有份额独占鳌头,接下来是大家熟悉的苹果IOS 系统,


IOS Logo

当然第三是微软Microsoft 为移动设备推出的Windows Mobile 系统。


Windows Mobile Logo

Android 的前世今生

Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
2017年3月,Android全球网络流量和设备超越Microsoft Windows,正式成为全球第一大操作系统。2017年8月,Android O发布。

从2008年10月发布第一款Android 系统手机,到2017年坐上全球第一大操作系统的金交椅,到底是什么力量促进它一路高歌发展如此迅猛 ?

别急,任何事物发展都有内外因素共同作用形成的。俗话说,打铁还需自身硬,我们先看看Android 自己的架构设计:

Android 系统架构设计

Android 的系统构架分为四层,从下层到上层分别是:Linux内核层、系统运行库层、应用程序框架层和应用程序层。

Linux Kernel 内核层
处于最底层的Linux内核层提供了基本的系统功能,例如流程管理、内存管理、设备管理、电源管理等。它还提供许多驱动,例如显示驱动、摄像头驱动、键盘驱动、wifi驱动、内存驱动等。

如果你想从事Android驱动开发,那就应该研究Android的Linux内核。

系统运行库层
这一层大部分都是用C/C++写的。这一层为上层提供它们所需的Java类库和运行环境。如果你是从事Android系统开发的,那就应该研究Android的系统库和Android运行时。

从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时。

  1. 系统库
    它是连接应用程序框架层与Linux内核层的重要纽带。Android包含一些 C/C++库,这些库能被 Android 系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。

以下是一些核心库:

* WebKit:Android浏览器内核,用来渲染网页。
* SQLite:轻量级的关系型数据库,便于存储和共享应用程序数据。
* SSL库:负责互联网安全。
* 多媒体库:支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM等。
* FreeType: 提供字体的描绘与显示服务。
* SGL:底层的2D图形引擎。
* Libc:从标准C系统函数库,专门为基于embedded linux的设备定制。
  1. Android运行时
    Android应用程序都在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分。

核心库提供了Java API中的大多数功能,同时也包含了Android的一些核心API。

Dalvik虚拟机是Google公司自己开发的用于Android平台的Java虚拟机,它适合内存和处理器速度有限的系统。不同于JDK运行 .class 文件,Dalvik虚拟机运行 .Dex 文件(由 .class 转换而来)。

在Android中可以同时运行多个Dalvik实例,并且每个Dalvik应用都是一个独立的Linux进程。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

很长时间以来,Dalvik虚拟机一直被用户指责为拖慢Android运行速度、不如IOS的根源。不过Google在2014年的I/O大会上推出了Android L,删除了Dalvik,由传闻已久的ART代替,表现更佳。

应用程序框架层
这一部分用Java编写,开发人员可以直接使用其提供的组件来进行快速的应用程序开发。若是从事Android应用程序开发,那应该研究Android的应用框架层和应用程序层。

框架层由多个系统服务组成,应用层的程序时刻都在与这些系统服务打交道。每一次构造窗口、处理用户交互事件、绘制界面、获得当前地理信息,都是在各个系统服务支持下实现的。该层是Android应用开发的基础,开发人员大部分情况是在和它打交道。

应用程序框架层包括:

* Activity Manager(活动管理器):管理各个应用程序生命周期。
* Window Manager(窗口管理器):管理所有的窗口程序。
* Content Provider(内容提供器):使得不同应用程序之间存取或者分享数据。
* View System(视图系统): 构建应用程序的基本组件。
* Package Manager(包管理器) :Android系统内的程序管理。
* Resource Manager(资源管理器):提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等。
* Location Manager(位置管理器):提供位置服务。

应用程序框架层提供了许多高级服务的Java类的形式。应用程序开发人员可以通过实例化这些类来调用这些服务。
应用程序层
Android应用层由运行在Android设备上的所有应用程序(APP)共同构成,它不仅包括通话、短信、联系人等系统应用,还包括其他后续安装到设备中的第三方应用。

由上述架构设计可以看出:
1) 应用使用Java 程序编写,使很多现存的Java 应用很容易移植到Android 平台上来,有利于形成巨大的应用生态系统;
2) 完全开源,并且给予Linux 开源内核,有利于各大硬件厂商适配自己的CPU, 外部设备等相关的硬件,形成硬件多元化生态系统;
3) 开源架构,便于世界性开源社区开发人员参与进来,不断促进自身系统的迭代升级;

而与此同时, 竞争对手,苹果IOS系统是完全封闭的操作系统,不利于更多的厂商参与进来;而Windows Mobile 同样采用封闭操作系统,而且收取一定的费用。

Android 系统手机与苹果IOS 系统手机相比的优缺点

与苹果IOS 系统相比,速度慢一直成为诟病:

由于Dalvik被指责为拖慢应用程序运行速度的罪魁祸首,Google 花了两年的时间来开发执行效率更高更省电的ART(Android Runtime),用以代替Dalvik。
最后说一下Dalvik和ART的不同,ART执行程序的方式与Dalvik完全不同:

* Dalvik 在程序运行时依靠一个即时编译器(Just-In-Time,简称JIT)将字节码翻译成机器码,因为多了一个环节,并不是非常高效。
* ART 在应用程序安装时就会把字节码转换成机器码,这种机制叫做Ahead-Of-Time,简称 AOT。因为程序运行时没有了解释字节码这一环节,因而启动更快,执行效率更高,触控更加灵敏,体验更加流程。

不过,ART需要更大的内存空间占用,可能会增加10%-20%,而且程序安装速度比Dalvik慢。
所以,当前的Android 旗舰机的配置都比相应苹果手机硬件配置更高端,依此优势来换取系统的良好表现。

相关文章

网友评论

      本文标题:Android 科普

      本文链接:https://www.haomeiwen.com/subject/aeflwxtx.html