Android一詞的本義指“機器人”,是美國搜尋引擎公司Google在2007年11月5日公布的基於Linux平台的開源智能手機作業系統名稱。該平台由作業系統、中介軟體和應用程式組成,號稱是首個為移動終端打造的真正開放和完整的移動軟體。它採用了軟體棧(software stack)的架構,底層以Linux核心為基礎,只提供準系統,其他的應用軟體則由各公司自行開發,以java作為編寫程式的一部分。另外,為了推廣此技術,Google和其它幾十個手機公司建立了開放手機聯盟(Open Handset Alliance)。Android在未公開之前常被傳聞為Google電話或gPhone。大多傳聞認為Google開發的是自己的手機電話產品,而不是一套軟體平台。
2008年9月23日,美國電訊廠商 T-Mobile USA在紐約正式發布第一款Google手機——T-Mobile G1。該款手機為宏達電製造,是世界上第一部使用Android作業系統的手機,支援WCDMA/HSPA網路,理論下載速率7.2Mbps,並支援Wi-Fi。T-Mobile G1於10月22日正式上市發售。
Android包括作業系統、中介軟體和應用程式 —— 行動電話工作所需的全部軟體,而且不存在任何以往阻礙移動產業創新的專有權障礙。Google與開放手機聯盟OHA(Open Handset Alliance)合作開發了 Android,這個聯盟由包括中國移動、摩托羅拉、高通、宏達和 T-Mobile 在內的 30 多家技術和無線應用的領軍企業組成。通過與電訊廠商、裝置製造商、開發商和其他有關各方結成深層次的夥伴關係,Google希望藉助建立標準化、開放式的行動電話軟體平台,在移動產業內形成一個開放式的生態系統。
Android 作為Google企業戰略的重要組成部分,將進一步推進"隨時隨地為每個人提供資訊"這一企業目標的實現。Google的目標是讓移動通訊不依賴於裝置甚至平台。出於這個目的,Android將補充,而不會替代Google長期以來奉行的移動發展戰略:通過與全球各地的手機製造商和行動電信業者結成夥伴,開發既有用又有吸引力的行動服務,並推廣這些產品。
Android的一個重要特點就是它的應用程式框架和GUI庫都用Java語言實現。Android內部有一個叫作Dalvik的Java虛擬機器,Java程式由這個虛擬機器解釋運行。Android平台的應用程式也必須用Java語言開發。網上有評論說Android的虛擬機器使用Apache的Harmony類庫。Harmony類庫是Apache組織開發的開源 Java類庫,用Apache許可證發布。Android應用程式框架採用了Mash-up的組件模型:組件(Activity) 向系統註冊自己的功能,每個組件要使用其它組件的服務時提出自己的要求(intent),系統根據intent在已登記的組件中確定合適的組件。Android平台的API文檔很完善。
基於Android平台開發應用軟體應該是一件輕鬆、愉快的事情。但是,選擇Android平台存在以下問題:
Google目前只開放了SDK,即應用軟體的開發介面,沒有開放中介軟體的原始碼。
在沒有原始碼的情況下,也可以把Android移植到相容的開發板(CPU核採用ARMv5指令集)上,但因為不能定製而無法將其用於實際產品。Google現在沒有明確什麼時候發布中介軟體的原始碼。其實Google也沒有明確說過將發布中介軟體的原始碼。Google說Android是“the first complete, open, and free mobile platform”。在英文中“free”既可以解釋成“自由”,也可以解釋成“免費”。如何解釋完全在於Google。我覺得Google最想抓住的是 應用軟體的開發人員,即希望公司和個人都學習它的SDK,為它的平台開發應用軟體。Google肯定會和廠家合作,開發支援Android平台的手機。但 Google是否會在網路上完全開放中介軟體代碼,還是個未知數。如果Google完全開放這個平台,那麼與J2ME類似,各公司肯定會在這個平台上添加自己的擴充,使各平台不能完全相容。所以,Google很可能用商業手段來保證Android平台的一致性。
Android的設計很漂亮,但是否實用還有待實踐檢驗。
Android使用Java既可以利用Java的平台無關性,又可以降低應用軟體的開發難度。但無論怎麼最佳化,Java程式的速度是肯定不如原生代碼的。Google的Mash-up的思想雖然不算新穎,但在嵌入式環境中投入實用,也是一個新的嘗試。設計總有取捨,Google的選擇是否合理,還需要實踐檢驗。