Android能用Linux打敗Linux手機嗎?

來源:互聯網
上載者:User
文章目錄
  • 1 Android
  • 2 Linux手機
  • 3 Openmoko
  • 4 架構
  • 5 Android影響了誰?
  • 6 結束語
 

昨天在MSN上和一個朋友交流。他們公司原來在做基於GTK的Linux手機架構。交談後,才知道他們公司已經不做GTK,改做Android方案了。我們談了一會兒,這個朋友比較看好Android。最後我說:“Android很可能用Linux打敗Linux手機。在Android出現後,恐怕很多人都會失去繼續做GTK方案的決心”。

1 Android1.1 簡介

Android是是OHA組織發布的手機軟體棧,包括作業系統、中介軟體和主要的應用。OHA是Google主導的一個行業聯盟。因為Google的名氣太大了,我們通常也把Android說成是Google的方案。把基於Android的手機說成是gphone,把HTC的第一款使用Android的手機說成是G1。

Android採用了Linux核心,但它沒用任何Linux的GUI方案。它的應用程式框架和GUI庫都用Java語言實現。 Android內部有一個叫作Dalvik的Java虛擬機器,Java程式由這個虛擬機器解釋運行。 Android平台的應用程式必須用Java語言開發。

1.2 討論

我在 舊文 中談到Android的兩個問題:

  1. Google目前只開放了SDK,即應用軟體的開發介面,沒有開放中介軟體的原始碼。
  2. Android的設計很漂亮,但是否實用還有待實踐檢驗。

第一個問題已經不存在了,因為Android在10月份已經開放了所有的原始碼,我自己也 編譯過。關於第二個問題,我主要是懷疑java的效率不適合嵌入式環境。但據使用過G1的朋友說,速度可以接受。

有的網友說基於Android的開發成本很高,例如沒有IME架構。但聽朋友說Android計劃在明年一月份推出IME架構。做scim的蘇哲現在應該在Google吧,不過他應該不會做Android。雖然軟體計劃一般都會延遲,但Google還是有一定可靠度的。

2 Linux手機

雖然Linux手機的市場份額還少到可以忽略,但Linux手機的平台、聯盟、架構卻很多。有位CSDN的 網友曾經說過要比較7個Linux手機平台的異同點。這個朋友說的7家是:Maemo、Limo、GPE、Android、ALP、LiPS、OMA。 LiPS已經不幹了。Maemo目前還是MID方案。GPE是PDA環境。我沒看過 OMA發布過什麼方案。 ALP最近有三星取消一款使用該平台手機的 傳聞

其實除了這幾家,做Linux的公司或組織應該還有很多。還不時聽到新的方案,例如 Jalimo,與Android類似在Linux核心上做Java架構。國內也有不少公司做過QT或GTK的方案,只是比較低調,連開放SDK的都很少。其實,iphone應該也是Linux的近親。iphone的Mac OS X也是類Unix的系統。但我想Apple不會認這門親戚。

Linux手機的GUI方案主要有GTK和QT。QT的Qtopia Phone Edition(QPE)原來是商業軟體,從4.3版開始用GPL開源。Openmoko平台的ASU方案就整合了QT。 GTK一直是由開源組織維護的開源軟體,比QT開放,所以很多平台選擇了GTK。

Android算Linux手機嗎?從開發技術來看,我認為它不算。我認為在技術上iphone比Android更接近Linux手機。

3 Openmoko

Openmoko是最早的開源手機方案,目前也還是開放最徹底的方案。軟體到硬體、電路圖到結構圖全部開放。 Openmoko目前主要有三套軟體方案: OM-2007.2、ASU和FSO。這3個方案我都在freerunner上用過,從普通使用者角度來看,這3個方案的發布版本都不像正常的手機。

當然這也不能怪Openmoko。因為Openmoko本來就是給開發人員學習、實驗的。至於freerunner要面向普通使用者的說法,我覺得只是一個笑話。千萬不要把半成品給普通使用者看到,否則它就沒有必要成為成品了。

有時我覺得Openmoko的開發人員還是在按照PC軟體的思路開發,而不是做手機。例如Openmoko的所有方案中沒有一款會提示使用者沒插入SIM卡,只說找不到網路。我在gsmd(後台通訊模組)中看到一個分析AT命令的緩衝區長度被定義為64K(MLPARSE_BUF_SIZE),而且這個緩衝區在開機分配後就不會被釋放的。這樣太浪費了。我曾經在一個總共只有64K記憶體的系統中實現過與gsmd類似的功能。這是個轉寄系統,如果不用考慮轉寄系統的緩衝,其實32K就夠了。

3.1 OM-2007.2

OM-2007.2是一套基於GTK的方案,也是Openmoko最初的方案。我覺得除了介面操作不便、功能少、有時接不到電話外,還是做得不錯的。但是Openmoko沒有堅持完善這套方案,而是又搞了ASU。

OM-2007.2後台通訊模組是gsmd。後台通訊模組就是通過AT命令與GSM模組通訊的軟體模組,系統其它模組通過後台通訊模組使用GSM模組提供的通訊功能。 gsmd通過socket向其它進程提供服務。 Ryan Paul 說GTK的局限性和gsmd的不完善使得Openmoko改用QT方案。我覺得這個理由不充分,gsmd是個很小的模組(12323行代碼),完善它應該不算太困難。至於GTK的局限性,從很多優秀的基於GTK的項目來看,即使有什麼局限性,也不是來自GTK本身。

3.2 ASU

ASU也被稱作OM-2008.8。Openmoko最新的Makefile預設將openmoko-asu-image作為構建目標。 ASU是April Software Update或者August Software Update的縮寫。計劃在4月發布,後來在8月發布。

ASU的後台通訊模組改用了QPE的通訊組件。除了QT外,ASU還整合了Enlightenment的E17案頭環境的一些組件。 Enlightenment也是一個Linux案頭環境,它有一個叫作EFL的GUI庫。 EFL是Enlightenment Foundation Libraries的縮寫。

ASU聲稱同時支援GTK、QT和EFL的開發。但在OM-2007.2上開發的應用,如果使用了Openmoko的架構或者gsmd,在ASU就不能運行了。

3.3 FSO

FSO是FreeSmartphone.Org With FSO的縮寫。 FSO是一個不包含UI的手機架構。它封裝了所有與UI無關的手機功能,並通過D-Bus匯流排提供調用介面。

FSO並不限於Openmoko,它的 目標 是制定一個開放、統一、獨立於UI的手機中介軟體規範。我很欣賞這種專註做好一件事情的做法。 FSO有清晰的 開發計劃,規划了每個milestone要實現哪些功能。目前已經發布到milestone4。

FSO版本的Openmoko映像包含一個叫作zhone的參考UI。zhone使用了一個叫作Illume的視窗管理器。 Illume是Enlightenment的一個組件。

 

上面兩張圖片選自Openmoko的wiki。其實,目前最新的FSO milestone4中,zhone還沒有實現撥號功能。

4 架構

在FSO推薦閱讀的一篇 文章中有這麼一段話:

When someone uses a framework - or, for that matter, a programming language - what they are really doing is delegating decision-making to someone who they think will have better judgement.

我們在使用一個架構的時候,是委託架構的設計者幫我們做出決定。我們相信這個設計者更瞭解架構涉及的領域,能夠做出更好的決定。一個好的架構應該告訴使用者怎樣做,而不是給使用者太多的選擇,讓使用者無所適從。

文章的作者認為同時向使用者提供兩種指令碼語言不是一個特性,而是一個錯誤。如果同時提供4種指令碼語言,那就是一場噩夢了。 Openmoko有3套不成熟的軟體方案,其中的ASU向我們提供了GTK、QT和EFL三種應用程式開發方式。這是特性、錯誤、還是噩夢呢?其實只是不得已吧。

我們對架構的最基本要求就是:一致和自洽。進一步的要求包括文檔完善、易於學習。

相對於Openmoko,Android提供了一個相對穩定、文檔完善的架構。如果你是應用開發人員,你會選擇Android還是Openmoko呢?

其實,拿Openmoko和Android比較很可能是不合適的。如果Openmoko的目標只是為開發人員和學生提供一個學習、研究Linux手機的軟硬體平台,那麼Openmoko做得夠好了。很多人正在將Android移植到Openmoko的硬體平台。

5 Android影響了誰?

在相對長的時間內,Andoid和WM、Symbian和iphone不會產生直接的衝突。WM、Symbian和iphone都有自己的消費群體。但Android會直接影響其它Linux手機方案。

因為Android是個完全開源的方案。而開源、開放正是其它Linux手機方案的主要特色。 Android採用java,肯定會付出一定的效能損失,但卻換來了一致、簡單的編程介面,降低了應用開發難度。相對於Android,GTK應用的開發難度要大得多。

Android將在兩個方面打擊其它Linux手機方案:

  1. Android會分化Linux手機系統的開發人員。

    Linux手機系統的開發是很困難的。網上有段比較搞笑的 評論

    “去年在北京各個手機設計公司拜訪了一大圈,包括德信,聯想,cect,還有一大堆小一點的公司。一談到linux上做手機,cto們都老淚縱橫,有個大公司的cto拉著我的手,捶著胸口說:70個人,8個月,8個月啊,那麼點功能都沒有做出來。搞得我後來吹手裡的android平台底氣都不足了。”

    在Android完全開源後,還有多少公司和開源開發人員會堅持艱難、前途未蔔的Linux手機開發呢?

  2. Android會吸引大量應用開發人員。

    其實各種Linux聯盟、論壇的最終目標就是制定一個統一的Linux手機應用軟體平台。在Android提供了這樣一個平台後,其它組織就在一定程度上失去了原本的使命感。應用開發人員會自發地選擇易於學習、影響力大的平台。一個平台在聚集了更多的開發人員後就會更加強大,再吸引更多的開發人員。我們能設想出一個在上手度和影響力上超過Android的Linux平台嗎?

6 結束語

Android和linux手機平台的矛盾並沒有什麼正邪之分,只是技術實現的此消彼長。技術上的激烈競爭有利於消費者和技術進步,但對於涉身其中的開發人員多少有點殘酷。

我在一篇舊文中說:“在移動狀態下,人類通過手機這個終端接入資訊社會這個巨大的網路;資訊社會通過手機這個平台將內容發布給人類”。其實,Google關注的是資訊的接入平台,而不是手機的設計、製造。這也是Google為什麼會把方案完全開放的原因。但Google的強勢介入確實對原有的生態環境帶來一定的影響。

因為Goolg圖謀的是資訊平台,所以Android的很多應用都對頻寬有較高要求。雖然WiFi能起到一些補充作用,但目前的網路環境暫時還不適合Android手機的大量普及。所以,其它Linux手機方案還有一定的發展時間和空間。我希望在這段時間裡能出現一個一致、自洽、文檔完善、易於學習的開源Linux手機方案。

昨天晚上陪兒子看了一會兒《霍爾的移動城堡》,小姑娘蘇菲因為協助霍爾而被荒野女巫詛咒,成了蘇菲婆婆。我想如果我也被詛咒而失去大量時光,在剩下的時間裡我會做什麼呢?答案很簡單,還是抓緊時間做自己必須做和喜歡做的事情吧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.