1.1 Android的開發緣由
早起的移動電話單單隻具有手機的功能,並沒有追求更多的追求功能和遊戲娛樂。而在諾基亞提供的“貪吃蛇”遊戲集成獲得巨大成功的時候,手機製造商們才意識到手機可不不單單用來通信。
不過,卻沒有足夠的動機與資源將用戶所需要的所用應用程序都放到手機中,他們需要有某種途徑來建議一個門戶。恰巧,Internet就是一個不錯的選擇。不過,那時候的因特網的專業網站常常是色彩斑斕,分辨率遠超手機,如何在手機上來更好的顯示就成了個問題。
這個問題也就誕生了WAP協議,這個協議其實就是HTTP協議的縮略版,不同於傳統的網絡瀏覽器,WAP瀏覽器被設計爲可以在手機內存和帶寬的限制下可以運行的程序。而第三方WAP網站,則設計了一套稱爲無線標記語言(WML)。只不過,相對與專業網站來說,這些WAP網站設計的較爲簡單。
但是,在WAP帶給手機製造商福音的同時,也出現了一系列的問題。譬如,利用WAP進行獲利是一件非常困難的事情,沒有任何一種內建的付費機制。即便獲利,也是對於一些廣受歡迎的WAP應用程序,例如像是手機的個性化,壁紙、彩鈴之類的。
不過,WAP的不穩定和操作繁瑣,卻造就了WAP的盈利困境。更何況,移動運營商的一些打擊策略,更是挫傷了開發者的激情。
不僅如此,因爲共享而造就的不同種類的專用平臺,在一定程度上卻扼殺了許多極好的應用程序和極佳的點子。
幸運的是,Google決定進軍移動領域,它翻新了整個建立在無線應用開發上的系統,旨在爲用戶和開發人員提供一個更爲開放的環境——因特網模式,其允許用戶在免費軟件、共享軟件和付費軟件中自由選擇,恰恰孕育了服務提供商的自由市場競爭。
在這以基礎上,Google聯合一些“無線領域”的成員,於2007年11月成立開放手機聯盟。
而在此之前的05年,Android被Google收購,旨在建立一個非專用的、開放標準的平臺,緩解上述的諾幹問題對移動領域的阻礙。
這也就是Android開發的緣由。
1.2 Android的發展
Android平臺之所以如此成功,是因爲它表現出了強勁的石頭,每一個新的Android手機設備都要比之前一年生產的更爲強大。以至於在與其他手機操作系統的競爭中,逐步脫穎而出,成就手機領域的霸主地位。
1.3 Android的特點
1.3.1 完整
在完整的操作系統上構建了一個健壯的應用程序框架
1.3.2 開放
開發人員可以獲得前所未有的訪問手機設備的權限
1.3.3 免費
在這個平臺上開發的所有應用程序是不需要任何許可證的,不需承擔任何版權費,換言之,他是免費的
1.4 Aandroid平臺
1.4.1 體系結構
可以認爲Android本身就是一個操作系統,實質是基於Linux2.6的內核,Linux內核作爲硬件抽象層,在手機物理硬件和Android軟件棧之間處理核心系統服務。
內核核心處理的功能包括:
1. 內存管理
2. 進程管理
3. 網絡協議棧
4. 輸入/輸出IO及顯示觸屏鍵盤
5. 電源管理
6. 其他驅動程序(WIFI、藍牙、攝像頭、聲音、通話、內存、設備傳感器)
Android的每個應用程序都爲一個進程,每個進程都對應一個Dalvik虛擬機的實例。基於Java的虛擬機,Dalvik爲移動設備進行了優化設計,具有更小的內存佔用,且多個Dalvik虛擬機的實例在手機設備上可以並行的運行。
1.4.2 安全與許可權限
1.4.2.1 作爲操作系統用戶的應用程序
在每個應用程序後,操作系統都爲其創建了一個與之關聯的新的用戶配置文件。每個應用程序都作爲不同的用戶運行,擁有自己的私有文件、用戶ID以及一個安全的操作系統環境。
1.4.2.2 顯示定義的應用程序權限
Android對於系統訪問有提供的用戶權限,如果應用程序需要訪問手機設備的這些系統功能的話,則需要在自己的應用程序中註冊訪問權限。
1.4.2.3 有線的特設授權
作爲內容提供的應用程序也可能需要爲其他的應用程序提供即時的權限,以共享特定的信息。這個可以通過同意資源標識符URI來進行臨時的授權和撤銷。
譬如:content://contacts/phones
這個URI提供了所有聯繫人電話號碼。
1.4.2.4 應用程序通過簽名建立用戶信任
所有Android應用程序包均使用證書進行了簽名,這樣用戶可以瞭解應用程序的可靠性。證書的私鑰爲開發人員所有,有助於開發人員與用戶建立一種信任關係,也使得開發人員可以控制系統上的哪些程序擁有訪問權。
1.4.2.5 市場開發人員註冊
要在市場上發佈,開發人員還需要一個賬戶。Android Market管理非常嚴密,不允許出現惡意軟件。
1.4.3 開發Android應用程序
Android SDK提供了一整套廣泛的應用程序接口。Android手機設備的核心繫統服務是嚮應用程序敞開的,所有應用程序都可以訪問。
1.4.3.1 編程語言
現在的主要爲java,C++也可以進行開發,不過用的較少。
1.4.3.2 本地與第三方無區別
不同於其他手機平臺,Android平臺上沒有本地與第三方的區別,所有的應用程序都可以訪問核心庫和底層硬件接口相同的協議。
1.4.3.3 常擁包
Android提供了一些常用的功能包,開發人員可以根據這些來簡便開發。這些包包括有以下這些:
1. 常用用戶Widget
2. 用戶界面佈局
3. 網絡安全和Web瀏覽
4. 結構化存儲和關係型數據庫
5. 強大的2D和3D圖形
6. 音頻和影音沒提格式
7. 對可選硬件設備的方位,如定位服務、WIFI、藍牙等
1.4.3.4 應用程序架構
Android應用程序架構提供了開發一般應用程序的全部所需。Android生命週期內包括以下關鍵組件:
1. Activity
2. View
3. Intent
4. Service
5. Notification
1.5 小結
Android作爲一種新的移動開發平臺,建立在之前的成功經驗上。Android設計打打增強了開發人員的開發能力。
參考文獻:《移動開發一本書就夠》