展望Android之前世今生
自從Google發起開發Android OS迄今已有三年,這是它在互聯網世界取得巨大成功后,旨在稱霸競爭激烈的移動互聯世界而揮出的一記重拳。Android 是專為移動設備開發的操作系統,里面包括了中間件平臺和一些核心程序。 然而,它并不只限于智能手機使用,它可以用在平板電腦、電子閱讀設備、甚至上網本上。 掀開它的面紗,你會發現其實里面竟是個Linux內核。在它誕生之初,只有不多的一些設備支持它,其中第一個就是2008年十月發布的 HTC Dream 。 至此之后,支持 Android的設備 迅速增長。
Google已將大部分的Android代碼發布于Apache軟件許可協議下。Apache軟件許可協議被公認為“企業友好”的許可證,它允許廠商擴展 具有專利性質的程序,而不必將擴展的程序提交回開源社區。你可以直接下載 Android 源代碼 ,把它編譯成自己的系統,并在其上運行Android軟件程序。 或者,如果你愿意,花點時間改動它一下。
Google并不是單槍匹馬來開發這個復雜的系統。Open Handset Alliance (OHA) 已經成立, 它由65家公司組成的企業聯盟,旨在為移動設備制定一套開放標準(Google當然首當其沖)。很多大公司都在列,包括HTC,英特爾,摩托羅拉,Qualcomm, Texas Instruments,三星,LG,T-Mobile等等。
OHA的宗旨是制定一個開放的平臺,徹底改變當今移動世界的操作模式。Andorid系統上“所有軟件生來平等”的原則給軟件的創作帶來了活力。這個原則意味著手機的核心程序和第三方程序享有平等的權利訪問手機的各種功能。
如果你是個開發人員,想去開發Android OS上的軟件,那么你需要 Android SDK 。Android SDK由一套很復雜的開發工具組成。它支持所有的主要操作平臺(Windows, Mac, Linux)。而開發軟件使用的主要語言是… Java。 然而,這些開發出的軟件并不是在普通的Java虛擬機上運行,而是在一個為Andorid 特別設計的虛擬機上運行,叫做Dalvik ,它為 只有有限的內存和CPU的電池供電的移動設備進行了專門的優化。所以說,它跟JME一定關系都沒有,完全不同的一套系統。這使得使用Java SE和ME編寫的Java程序和Android平臺上編寫的程序出現不兼容性。 Android只是使用了Java語言的語法定義,它只支持提供Java SE和ME里的部分類庫和API。
如果你認為程序性能是頭等大事,那你需要 Android NDK ,它是Android SDK的一個附加工具,可以使Android程序開發人員把他們的跟性能最相關的部分代碼編譯成本地代碼。
Dalvik虛擬機上運行的程序一般都被打包成Dalvik(.dex)可執行格式,這些程序適合在那些內存和處理器受限制的系統上運行。如果你想對Dalvik虛擬機做深入研究,請查看Dalvik內部結構說明書。從Android 2.2 版本后, Dalvik提供了一個即時編譯器 ,它能使程序的執行效率大大提高。 跟大多數虛擬機上的代碼一樣,Dalvik上也有一個.DEX文件反編譯器,叫做Dedexer,同樣也是個開源軟件。
我們必須要注意一點,Dalvik其實是使用 Apache 的Harmony項目的一個子集作為其核心類庫的。Apache Harmony 是一個開源的、免費版的Java語言實現,它實現了Java SE 5 和 6的規范。就像在其網站上說明的一樣, 這個項目的主要目的是提供:
- 在Apache 許可證 v2 下的一個兼容的、獨立的Java SE 5 JDK實現。
- 一個由社區組織開發的、模塊化的運行時虛擬機和類庫
為了吸引全世界的人們去為它的新操作系統開發應用程序,Google組織了一系列Android開發者挑戰賽,這是一場最有創新性的Android應用程序競賽。還有什么比提供一萬千美元的獎勵還能鼓舞開發人員的嗎?其中有兩個挑戰賽吸引了全 世界開發者的注意。 點擊下面的鏈接查看獲勝者的信息:
新開發出的Android應用程序,不管是免費的還是商業的,你都可以從Android市場 找到。Android市場是一個Google開發的在線的軟件庫。它提供了一個分類目錄,你可以把上面的應用程序通過在線方式下載安 裝到你的目標設備上,而不需要使用PC機。Android市場增長迅速,目前上面已經駐留了超過70,000個應用軟件(截至2010年六月)。你自己可以看一下市場統計。
Android目前的版本號是Froyo,此版本做了很多的改進,加入了很多新功能 。 當然,開發人員們 使用的SDK和NDK也有了很多的改進。
這就是我要介紹的,一個對移動平臺的簡單介紹。在隨后的幾篇文章里,我們將會講解如何在虛擬機里安裝Android OS,告訴你如何使用SDK開發Android應用程序。
留言列表