什么是安卓系统?

3:55 下午 ・0 comments



Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,同时基于Linux的通用平台也进入了开发。
2008年,Patrick Brady于Google I/O 演讲“Anatomy & Physiology of an Android”,并提出的 Android HAL 架构图。HAL 以 *.so 档的形式存在,可以把 Android framework 与 Linux kernel 隔开。2010年2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”(“staging tree”)上除去,从此,Android与Linux核心开发分道扬镳。 

Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。之后Android提供了NDK以供开发者使用其他语言编写程序。另外,为了推广此技术,Google和其他几十个手机公司创建了开放手持设备联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google始发表自家品牌手机电话的Nexus One。

升级

Android系统今后将继续每半年一次的升级步伐,分别定在每年的夏天和年终。每代Android系统都将以甜点命名,比如1.5版叫做Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),然后是2.1版的Éclair(闪电泡芙,一种法式奶油夹心甜点),此版本曾被叫做Flan“水果馅饼”,之后是2.2版的Froyo(冻酸奶)和2.3版的Gingerbread(姜饼)。以C D E F G字头顺序排列。Donut将把社交网络功能作为升级重点,在“手机的各种体验中”都增加社交网络元素[7]

对手机业界的影响

已经与HTCNTT DoCoMoKDDIMotorola等世界通信领域34家公司于免费提供达成一致。今后对于移动通信的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。

操作系统

Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括CairoX11AlsaFFmpegGTKPangoGlibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Managemeat),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。