2008-10-03 14:47:32克理斯 在 Internet!

介紹一下 Android 及對它的看法


    Google  在 2007 年開始放出風聲指出,其在 Moblie  的研發已有兩年,但事實到了最近我們知道並沒有所謂的硬體「Gphone」,是在2007年11月,Google公布了Android計劃,一方面映證了 Google 確實對於 Mobile Device 有著長久進行中的計劃,在另一方面也否定外界傳言了GPhone這樣單一的產品存在,也知現在 Google 沒有打算(至少沒有公開)要進入手機硬體這方面的市場,就算 Google 真的到時候真的做手機了,也應用是是 HTC、Samsung、LG 這些手機廠來做硬體和相關套件的整合,並因為 Android 的程式碼是開放式的,理論上任何人都可以以 Android 為基礎開發新手機。所以可以知道 Google 並非要做 iPhone 這類的手機產品到市場上來,而是由平台的角度,來做一套與 Windows Mobile 這類的 O.S. 平台的 Linux 架構手機作業系統。

  Dalvik virtual machine (可以參考 Darlvik 的 wiki ) 是 Google 在 Android 計劃中的一環,從底層的 Linux kernel,  libraries, Android runtime ( 也就是 Dalvik ) 到 application framework 都是在計劃裡。而 Dalvik 是 Android 中的 Java VM。

Andrroid 架構的相關影片:

 

  但 Dalvik 和 一般的 Java Virtual Machine 其實是不同的,一個 Dalvik 程式裡面有一些是直接用到 MIPS  的架構的指令來加速運行

看一下 Android 中 Dalvik VM Internals 的簡介 :


http://sites.google.com/site/developerdaytaiwan/google-developer-day-2008-taiwan/android-dalv

         在 Google 這樣的作法中 ,有人批評將 J2ME 踢在一旁 (在 Java 中在 Mobile Device 中開發,是要付費用給 Sun. Inc 的) ,這已經有相關的網路討論 (  how Google routed around Sun’s IP-based licensing restrictions on Java ME  ),看 Google 這一個做法的討論。

        Android 現在僅能用 Java 在 Dalvik 的意義是什麼? 它會不會只能用 Java 來開發? 相信在未來一定會開放給 C ( C++ 則不一定....因為在 embedded 限制的關係) 。

      而 Android 除了上面的 common 的簡介,其實最重要的是它對於在網路產業上,我所見的心得和願景,及自身對於  mobile device 開發、硬體建構、軔體開發的限制上,給予另一層 Google 在系統本業上的野心的探測。

     Google 是現在全世界最大的搜尋引擎,這是毫無疑問的一句話,這句話的背後代表什麼意思? Google 擁有現在可以搜集到的網頁資訊的最大數量、並且對這些資料做有效的分析和處理。但這樣的能力和資料運算,所表現出來的是什麼? 是現在對於資訊需求及電腦應用上的資訊取得的一種最好的拉取方式 ,使用者需要透過 Google 來找到自己本身所需求的資訊或網站。如此的系統能力,已經發輝到了一定的層次之時,在一般的使用者只能透過 Web 去進入 Google 的網站進行查詢服務後,就離開了 Google 的應用.這樣的結果使得使用者只能在電腦上進行資料的處理。

     但 , Google 只有 在 PC 上面用 Browser 網頁資訊或網站嗎? 不,Google 還有圖片 (Picasa)、還有整合進來的影音(Youtube)、電子郵件( Gmail)、行事曆 (Google-Calendar)、個人記事( Google-Note)、部落格 (Blogger)....這些應用;這些應用在 PC 上面,將 Google 從搜尋之外,另外創建了一片使用者的應用系統,這些系統也就是最近各家軟體系統商在喊的漫天嘎響的「雲端運算」,而這些的應用、在現在僅能在 PC 介面上運作,然而人類對於資訊的隨手取得和需求的天性,據手上得知的數據統計在 2008 年時,手機的全球使用量為 30 億隻手機人口使用,這樣的平台代表了什麼? 如果 Google 抓住了這個最後一厘的線路,就可以將使用者從行動化資訊的地方走出 PC 的限制,而達到行動化資訊的境界。在資訊的發展中,將可以走入由我之前發表的資訊化態樣中的 「 M 化」,而手機的使用者通常是 Unique 的,如此也更容易走向「P化」,而 Google 在於 「I」、「 T」這表現出來能力,現在已經世界上的佼佼者了。而除了我們已知 Android 是一個軟體集,有可能會成為未來幾年手機用Linux的催化劑之外,將開放手機的系統平台從與其他採用 Windows Mobile、Symbian、Palm,當然還有 iPhone 等封閉式的手機平台系統相抗衡。

        但知道手機開發系統詳情的人就知道目前其他一些同樣也是嵌入式 Linux 平台,像是OpenMoko、 Access的 Linux Platform,或是Monta Vista之類的嵌入式Linux平台開發商。並且 Google 聰明的地方在於其向網頁搜尋和它推出的相關應用來看, Google 不產生相關的內容而是由使用者介由 Google 平台產生,這樣的態度也在 Android 上面看到!!! 到了最近的風聲傳說第一款會推出上市的手機,是由台灣的 HTC 生產、而由 T-Mobile G1 的手機,為第一款使用 Android 平台所開發上市的手機 (據說預計於 08. 10月底即將上市) ,而 Android 平台具有媚力的地方在哪? Google 可是為了這一個平台下足了功夫;並且依照 Google 的慣性做法,在現在硬體都還沒看到影兒的時候,就於日前已經推出軟體開發套件(SDK),如同 Apple Store 的模式 (參考:AppStore 第一個月銷售金額開始發放 ) ,將軟體開發的權力下放到使用者,達到使用者自行設計自己的應用系統,稱為使用者自建系統(End-User Computing, EUC)。 此一發展趨勢顯著的改變了組織資訊資源的結構、提供方式以及使用方式.....咳,這離題了,這是 MIS(資訊管理課程中的知識),這一個做法將為這個平台提供相關的軟體應用及使用上的普及。

         軟體世界中,一個平台會不會被採用,往往不止是作業系統平台、而是在 使用者介面(UI)、共同使用的人數和可以應用的程度及資源的可獲取量,在這些評估上面,Google 在搜尋和 PC 網路平台上優勢力量,是否就可以順理成章的移轉到行動裝置上呢? 值得期待。

        並說看看自己在 Android 平台上 porting 的感覺和進度。在 Google 發表 Android 時,就迫不及怠的將 Android 下載到自己的電腦上來,當時在下載完成後,乍看之下Android只是個有如OpenMoko 等眾多開放式手持 Linux 平台一般,並沒有什麼獨家特別的地方,然而進一步由 Google 的線上 Document 和 Android 的架構上去了解之後,就不難 Android  平台在系統建構上獨到的設計,也將 Google 在這個手機平台上的野心做了一個說明,在 Android 平台的重點並不在於 Linux 核心的採用,而 Android Platform 專案採用了這樣的系統組合和架構,在整體規劃上考量了相當廣的的層面,無論是廠商或個人在第三方軟體的開發上,或者是硬體、軟體系統上以 Android 來進行手機產品的開發建構,實際的應用到系統平台開放性上面,Android 計劃除了制定了模組化功能化的系統架構外,還針對這個平台提供了完善的軟體開發工具與環境,在開發介面工具(IDE)上頭,採用了開放式開發軟體 Eclipse ,在該 IDE 上以安裝 Plugin 的方式就可以建構了Android 專屬的開發環境和執行測試;另外再以自由軟體 QEMU 為基礎提供了Android平台專屬的Emulator (補註一下 QEMU :在嵌入式平台上的開發,通常以 PC 個人電腦上安裝 Cross-compiler 的軟體、將程式碼 Compiler 後再丟到開發板上去進行測試模擬,一則因為 CPU 不同---開發嵌入式的系統,現在的大宗 CPU 還是 ARM 家族的;二則是之前的前輩說的:在 Cross-Compiler 是需要非常多的記憶體、CPU 和硬碟空間的,在小小的開發系統板上,通常不會再由讓你放置 編譯器和相關測試函式的空間了,話說起來 Android 的下載就高達 100多 M 了,在開發板上面要放置這個下載檔可能一定要用外插記憶卡的方式,更別說要解壓縮這麼大的檔案了!!!! ),Google 如此精心的準備讓開發者能夠迅速開發軟體,無需依靠實際上的硬體環境才能夠開發 Android 上面的軟體,這實在是將嵌入式系統軟體的開發又往前推進了一大步。

       在 Google 的 Android 中採用了 Apache License 的方式進行 Porting,這樣的 Porting 可以使開發者或系統發展上,在採用了 Google  的環境上,雖是 Open Source 但卻可以選擇是否要開放原始碼出去給使用者。在這樣的保護及開發環境的建構上,不難看見在近期內將有足夠數量的手機軟體在 Android 的平台上即將被應用,並且加上現在的 Web 軟體上的 Protocal 及 交換協定一個一個被制定出來,並且 Google 也一個一個開放出每個系統上的 API,將在不久的將來看到 Android 的手機應用如雨後春筍般冒出來的可能,並且將平台的應用架構在 Google  的大量數據系統及相關應用整合上。