
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Google Inc. purchased the initial developer of the software, Android Inc., in 2005. Android's mobile operating system is based on the Linux kernel. Google and other members of the Open Handset Alliance collaborated on Android's development and release. The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android.

Android was listed as the best-selling smartphone platform world-wide in Q4 2010 by Canalys.
Android has a large community of developers writing applications ("apps") that extend the functionality of the devices. There are currently more than 250,000 apps available for Android. Android Market is the online app store run by Google, though apps can also be downloaded from third-party sites. Developers write primarily in the Java programming language, controlling the device via Google-developed Java libraries. The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 80 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free software and open source license. The Android open-source software stack consists of Java applications running on a Java-based, object-oriented application framework on top of Java core libraries running on a Dalvik virtual machine featuring JIT compilation. Libraries written in C include the surface manager, OpenCore media framework, SQLite relational database management system, OpenGL ES 2.0 3D graphics API, WebKit layout engine, SGL graphics engine, SSL, and Bionic libc.

Android 是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中國大陸地区较多人使用安卓或安致。Android操作系统最初由Andy Rubin创办,最初只支援手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟(Open Handset Alliance)开发改良,逐渐扩展到到平板电脑及其他领域上。 2010年末數據顯示,僅正式推出兩年的作業系統的Android已經超越稱霸十年的諾基亞Symbian系統,躍居全球最受歡迎的智慧手機平台。採用Android系統手機廠商包括HTC、Samsung、Motorola、Lenovo、LG、Sony Ericsson等。
2009年2月,Google推出Android Market线上應用程式商店,用户可在该平台网页寻找、购买、下载及评级使用手机应用程序及其他内容。Android Market™內的付費程序在許多國家與地區內提供,如美國、英國、瑞典、德國、斯裡蘭卡、泰國、越南、香港、中国、台湾等。但覆蓋範圍有限。目前中國還未能得到該服務,用戶仍可通過國際信用卡和一款名為"Market Access"的免費軟體來完成在非支持地區的購買,但需要注意的是,通過這種方法購買的軟體可能不會得到當地承認的發票(Invoice)。

Android系统差不多每半年一次的升级步伐,每代Android系统都以甜点命名,比如1.5版叫做Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),2.0/2.1叫Éclair(闪电泡芙,一种法式奶油夹心甜点),之后是2.2版的Froyo(冻酸奶)和2.3版的Gingerbread(薑饼)最後3.0版叫Honeycomb(蜂窩)。以C D E F G H字头顺序排列。Donut将把社交网络功能作为升级重点,在“手机的各种体验中”都增加社交网络元素。
應用程式
Android以Linux为核心的Android行动平台,使用Java作为编程语言,使介面到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个Activity类别负责建立视窗,一个活动中的Activity就是在foreground(前景)模式,背景执行的程序叫做Service。两者之间透过由ServiceConnection和AIDL连结,达到複数程序同时执行的效果。如果执行中的Activity全部画面被其他Activity取代时,该Activity便被停止,甚至被系统清除。
View等同于J2ME的Displayable,程式人员可以透过View类别与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup是各种layout的基础抽象类别,ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。View与事件息息相关,两者之间透过Listener结合在一起,每一个View都可以注册一个event listener,例如:当View要处理使用者触碰的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。

中介软件
作業系統与應用程式的沟通桥樑,并用分为两层:函式层和虚拟机器。 Bionic是Android改良libc的版本。Android同时包含了Webkit,所谓的Webkit就是Apple Safari浏览器背后的引擎。Surface flinger是就2D或3D的内容显示到萤幕上。Android使用工具链为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android使用Skia为核心图形引擎,搭配OpenGL/ES。Skia与Linux Cairo功能相当,但相较于Linux Cairo, Skia功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia也是Google Chrome的图形引擎。
Android的多媒体资料库采用SQLite资料库系统。资料库又分为共用资料库及私用资料库。使用者可透过ContentResolver类别取得共用资料库。
Android的中间层多以Java实作,并且采用特殊的Dalvik虚拟机器。Dalvik虚拟机器是一种“暂存器型态”的Java虚拟机器,变数皆存放于暂存器中,虚拟机器的指令相对减少。
Dalvik虚拟机器可以有多个实例,每个Android應用程式都用一个自属的Dalvik虚拟机器来执行,让系统在执行程式时可达到最佳化。Dalvik虚拟机器并非执行Java字节码,而是执行一种称为.dex格式的档案。

硬體抽像層
Android的硬體抽像層是能以封闭源码形式提供硬體驅動模組。HAL的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成kernel independent的概念,也让Android framework的开发能在不考量驅動程式实作的前提下进行发展。
HAL stub是一种代理人的概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数,并由Android runtime向HAL取得stub的operations,再callback这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以取得操作函数。

程式語言
Android是执行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux裏支持的功能,Android大都没有支援,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。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控制包括安全,記憶體管理,进程管理,网络堆叠,驅動程式模型等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo是Android用来辅助Git工作的一个工具。



1.5(Cupcake)基于Linux Kernel 2.6.27 1.6(Donut)基于Linux Kernel 2.6.29 2.0/2.0.1/2.1(Eclair)基于Linux Kernel 2.6.29 2.2/2.2.1(Froyo)基于Linux Kernel 2.6.32 2.3(Gingerbread)基于Linux Kernel 2.6.35 3.0.1/3.1/3.2(Honeycomb) 4.0(Ice Cream Sandwich) Jelly Bean Google Android أندرويد Андроид (операционна система) Android operativni sistem אנדרואיד (מערכת הפעלה) Android (operační systém) operatsioonisüsteem آندروید ऍण्ड्रॉइड प्रचालन तन्त्र operativni sustav Android (Betriebssystem) operációs rendszer sistem de operare ಆಂಡ್ರಾಯ್ಡ್ (ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ) operačný systém अँड्रॉइड sistem operasi 안드로이드 (운영 체제) Android operativni sistem கூகுள் அண்ட்ராய்டு operativsystem แอนดรอยด์ (ระบบปฏิบัติการ) оперативни систем mobil işletim sistemi system operacyjny