[轉]Android之父深入解析Android

      原文地址:http://www.moandroid.com/?p=1065

上週末去光谷書城,不經意間看到了程序員雜誌2008年合訂本,無意中看到這篇經典的文章:Andy Rubin 獨家專訪,感受頗深,將這篇文章稍微整理了下,在這裏與大家一起分享。聲明:原文章來源於程序員雜誌2008年第一期,本人看到這篇文章後收穫很多,將原文稍微修改(原文比較長,去掉無關緊要的內容,保留經典部分)。

整理後的文章如下:

2007 年11 月Google 宣佈Android 平臺,被衆多評論者認爲是今年移動領域最具影響力的事件之一。恰在12 月,Android 平臺創始人Andy Rubin 訪問中國,《程序員》雜誌有幸成爲採訪他的第一家中國媒體,本文就是Andy 與雜誌總編孟巖的對話。

…………

孟巖:這麼說您也很喜歡iPhone?那麼爲什麼還勞神費力開發Android 這樣一個新的手機操作系統?

Andy :沒錯,iPhone 非常棒,但是它是一家公司的產品, 它從裏到外的設計都是特定的,只有一個按鈕,那麼大的屏幕,特有的軟件系統。儘管它很棒,但是它就是蘋果的,別的製造商用不了。Android 不同,Android對所有人開放,而不只是一家廠商。你可以在摩托、三星、LG等幾十個廠商的手機上運行Android。對於開發者來說,這一點意義重大,它意味着你寫的手機應用可以無需修改地運行在幾十個不同廠商出產的手機上。

孟巖:Android 手機會很貴嗎?

Andy :不會。手機硬件越來越便宜。相對來說,軟件成本纔是居高不下。在整個手機的成本中,軟件所佔比例越來越大。這根20多年前發生在PC領域中的情況一模一樣。Android是開源軟件,能夠有效降低軟件的成本,從而降低手機的整體價格。

孟巖:如何保證那些手機都能夠順利地運行Android 的呢?各種手機的配置千差萬別,難道是像微軟那樣指定一個硬件規範,要求廠商去遵守嗎?

Andy :當然不是。這裏面可是有門道的, 我們在設計時就努力地讓Android 變得很容易移植到不同手機設備上。Android 也許是目前最具可移植性的手機操作系統。給你講個實際例子吧。今年感恩節前後,我們的一個工程師打算利用假期嘗試把Android 移植到一款諾基亞手機上。這是一款與我們的參考設備完全不同的手機,屏幕尺寸、按鈕、無線設備統統不同。你猜猜他用了多長時間完成這一工作?

孟巖:少說也得一個星期吧?

Andy :只用了三個多小時,通共改動了4行C語言源代碼。

孟巖:太令人震驚了!

Andy:可不是嗎,連我也感到震驚。我想這就是開放平臺的威力。

孟巖:您提到開放,一個開放的手機軟件平臺對於手機製造商來說有什麼意義呢?

Andy :目前手機操作系統大約佔手機成本的20%,而在此之上,手機製造商還必須自己集成若干重要應用軟件,如瀏覽器、短信、圖片顯示軟件等等,這給他們帶來了不小的負擔。Android 提供了一個從操作系統到應用程序的完整軟件棧,同時又允許人們定製差異化,以形成自己競爭優勢,對於手機製造商來說,其意義不言而喻。開放帶來的另一個好處是允許廠商自主解決問題,當你發現Android系統中有bug或者不符合你要求的地方,不必等上18個月,而是可以直接解決。

…………….

孟巖:如果Android 取得成功的話,Google 和你本人肯定無意成爲手機軟件領域的統治者嗎?

Andy :當然不會。開放本身就意味着沒有人統治一切。況且如今已經有三十多家公司加入Android聯盟,實際上Android 不是Google 一家的,任何人都可以擁有Android。相信我,沒有人能成爲Android世界的壟斷者。

孟巖:如果是這樣的話? Google又能得到什麼好處?

Andy :你還記得我剛纔說過的,今天的手機軟件產業與20 多年前的PC軟件產業如出一轍。因此我們要注意,如果只有一家公司來提供手機基礎軟件的話,那麼毫無疑問就會再次產生一個巨無霸的壟斷者。今天世界上大約12 億PC用戶,可是手機用戶有30 億之多!這意味着,手機一定會成爲人們獲取信息的主要設備。如果有一家公司壟斷了手機軟件市場,它就可以決定人們可以看或不可以看什麼樣的信息, 這是很嚴重的問題, 也是Google 不願意看到的。我們開發Android 並且將其開放, 就是要防止這種情況發生, 讓每個人都可以平等自由地訪問信息。只要用戶能夠自由獲取信息,Google 就可以找到自己的業務模式。

孟巖: 好吧,那麼告訴我, 你爲什麼要把這個系統命名爲Android ?

Andy :Android 其實是我於2005年1 月創辦的手機操作系統軟件公司的名字,半年後這家公司被Google收購了,不過我們的產品名字繼續稱爲Android。至於其來歷嘛,我創辦的上一家公司叫做Danger(危險),你說如果上一家公司叫“危險”的話,下一家公司該叫什麼名字?總不能叫“完蛋”吧?我是說,高科技公司取名字儘可以有趣一些,既然Linus Torvalds把自己寫的操作系統稱爲Linux,那麼我的名字是Andrew,把這家公司叫做Android有何不可呢?再加上我本身是個機器人迷,所以Android 這個名字還是不錯的。事實上, 在Android 之前,我們能已經做出來一款手機,叫做T-Mobile Sidekick。這款產品很成功,好萊塢的很多明星都用它。但是我覺得畢竟它能夠觸及到的人羣還是有限,所以決定做一個手機操作系統,能夠運行在各種手機設備上。

孟巖:Android 由Linux+Java 構成。手機操作系統用Linux 我能理解, 用Java 也是情理之中。可是Android 不是把現有的成熟的Java 拿來直接用,而是從頭開始重新實現了一個Java,從虛擬機到相當多的Java 類庫。這不是重新發明輪子嗎?有這個必要嗎?

Andy :對我來說,“Java”這個詞意味着四種東西:一種編程語言,一種虛擬機,一個類庫,和一個應用程序框架。我們的確重新開發了虛擬機,這是因爲要克服現有手機JVM的一些固有缺陷,比如啓動時間過長,功能受限。你知道,Java ME爲了保證“一次開發,到處運行”,就不得不遷就那些配置非常低端的手機設備,結果導致其功能十分有限。而你看看iPhone之所以這麼酷,就是因爲它完全不考慮要去兼容什麼過時的設備,iPhone的配置完全不亞於一臺五年前的PC。我們在設計之初就決定,甩掉不必要的歷史包袱,對Android的硬件配置作出一定的要求,從而使得我們可以在比較高的水平上重新設計和優化JVM。此外,我們的確完全重新開發了一個應用程序框架,稱之爲Android應用框架。這是因爲我們對於如何組織手機應用程序有全新的、特別的想法,現有的Java ME完全不能滿足我們的需要,所以重新開發一個,這並沒有什麼大不了的。

孟巖:什麼全新的、特別孟巖:什麼全新的、特別的想法,能透露一下嗎?

Andy :我們希望支持手機應用程序的mash-up。“Mash-up”這個詞是從Web 2.0 裏偷過來的,你應該知道什麼是Web 2.0 mash-up 吧?

孟巖:這我當然知道。比如我從一個網頁上抓下一塊XHTML 數據,再從另一個Web Services 那裏獲得一些XML 數據,我就可以把這兩塊數據mash-up 起來,形成新的XML 數據,並且這一數據可以在此被別人mash-up。不過Web 2.0 中的mash-up 是基於XML數據的,難道Android 中的mash-up 也需要藉助XML 來完成嗎?

Andy :好問題。在傳統的手機開發中,應用程序要麼調用操作系統服務,要麼通過程序庫獲得較高級的服務。如果操作系統和程序庫都沒有提供某項功能,應用程序開發者只好自己實現。在Web上,一個Web應用不僅可以使用本機上由操作系統提供的服務,還可以以你剛纔所說的方式使用其他Web 應用所提供的服務。這樣一來,Web 應用程序不僅可以依賴操作系統服務,而且可以彼此相互提供服務。這就是我們想在Android中達成的目標,也是爲什麼我們要重新開發一個應用框架的根本原因。

孟巖:這個想法是怎麼來的?

Andy :你知道Google是一家互聯網公司,並且擁有很多世界上最聰明的軟件工程師,像mash-up 這樣的想法就長在Google的DNA裏,所以把這種思想帶入手機平臺很自然。

孟巖:能詳細的講講Android 如何實現mash-up 嗎?

Andy :Android 的mash-up 中有兩個關鍵概念,一個稱爲Activity,一個稱爲Intent。Activity 可以完成某些工作,而Intent 可以表達“要做某事”,一個Activity可以滿足若干Intents。我舉一個例子好了,比如我在寫一個email,打算附加一個圖片附件,需要選擇圖片。我會廣播一個Intent,說:“我要選擇圖片,你們誰能選擇圖片?”。那麼設備中的Android 應用和外部的服務,如Flickr 和Picasa 都可以舉手響應說:“我行!”然後用戶就可以選擇其中最合適的那個來選擇圖片。

孟巖:聽起來很像GUI 框架中的Signal/Slot ?

Andy :我覺得更好的類比是微軟的COM體系。Android 可以把設備內和互聯網上的服務都以上述的方式mash-up 起來。這一能力實在非凡。它使得開發者能夠在一個非常高的層次上快速開發高質量的應用。

孟巖:這對於開發者確實有很大的吸引力。

Andy :當然。對於開發者而言,Android 是一個非常有特色的先進的平臺, 能夠放大開發者的能力和效率。同時,Android 的開發語言和環境都是開發者所熟悉的。Java 語言是世界上最流行的語言,而在開發環境方面,我們選擇了大家熟悉的Eclipse和IntelliJ。所有的軟件、工具和模擬器都是免費的,整個系統稍後還會完全開源,開發者無需做任何痛苦的轉型,就可以爲Android 開發應用。

…………

讀後感

看了以上Android之父對每個問題的解析,我們這些Android應用程序開發人員大腦中的很多疑惑,是不是都消失了?每個Android開發人員都能從這篇文章中受到很大的啓發,如果想看原文請到程序員雜誌的官網站去下載。在後面的篇幅中我們會抽空,繼續與大家分享Android方面的一些經典的文章。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章