雖然自己並不是程式開發者,不過在Google發佈了Android手機平台之後,因為相當受到矚目,所以一直都有在看相關的文章,本來一開始以為最先會影響到的,會是目前其他一些同樣也是嵌入式Linux平台,像是OpenMoko、Access的Linux Platform,或是Monta Vista之類的嵌入式Linux平台開發商(為此還前去請教了Jserv大大)。

不過國外的stefano在自己部落格當中提到,針對目前Android提供SDK,發現了一些狀況而提出看法,當中說明了Google Android平台,為了能避開Sun在java上的版權限制及規格控制,而採取的繞行動作,為了考慮到對於手機平台中,軟硬體開發商還是會出現一些無法公開原始碼的使用狀況(例如影音codec之類),所以採用較符合商用限制的Apache版權,藉此來繞過GPL2的回饋性質,而Google採用的解決方案是,實做出Dalvik這個虛擬機,把產生出來的Java bytecode再轉入自己格式的bytecode,而Dalvik本身並未宣稱是Java虛擬機,除了當中使用Java語法之外,所用的java SE class library也並非來自Sun,而是來自於Apache Harmony專案,而Google本身為了確保Android平台,不致同樣與Java在行動市場上面臨到分裂的問題,所以要求使用該平台的成員,必須同意它的一份反分裂協議,確保將來的相容性。

而Google為何要採用這樣的繞行措施,就查詢相關資料當中了解的部份,是由於雖然目前Sun的Java已經採用了GPL2開放,但是開放的部份,是目前已經在實做的Java當中的原始碼,對於Java SE和Java ME的規範,事實上還是綁在強烈存在於Sun陰影下的JCP組織當中,這部份一直以來,大概以IBM為首有最強烈的反對,因為事實上Java的規範,實質掌控還是在Sun的手中。

再來則是J2ME的行動開發的部份,其實因為本身針對不同手機平台調整過,後來就造成了某種分散性,因為針對了手機各種功能不同做了調適,而導致Java語言原先要做到寫一次跑全部的原則遭到挑戰,Sun自己也知道這個問題,所以在今年JavaOne大會,就力推JavaFX,在另外一個Java相關的部落格城市胡同的文章當中提到,JavaFX本身要將桌上型使用的Java SE標準帶入移動平台的企圖,說到這裡,和上面Android所釋出的SDK分析做個對照,就可以知道,Google已經搶了Sun一步在做類似的事情,並且透過推出完整的平台跟聯盟,已經先搶了Sun在吸引開發者到JavaFX上的優勢,更何況還推出了獎金活動,比起相對在JavaFX上,尚未確知有哪些廠商採納來說,哪邊的吸引力比較大已經是不用多說了。(不過當然以JavaFX本身來說, Sun的技術還是有領先之處的,但是就是被搶了先機)

而雖然目前Android當中完整的嵌入式Linux平台尚未公開,不過對於開發資源的磁吸效應似乎也已經產生,最近可以看到Access,他們當初買下了palmsource,希望藉由Palm OS的相容性以及延續性,來作為自己的Linux平台產品特色,但是現在Access也出現了動作,在昨天宣佈將PalmOS的模擬層,在另一個Linux嵌入裝置Nokia Tablet當中推出,只要是Nokia N810,N800,N700的使用者,都可以免費下載下來使用,如此就可以使用到過去Palm OS上的應用軟體資源。

不過目前也不確定其他的行動Linux平台是否要緊張,因為如果Android平台真的如Google所願,能維持成一個開放且互通的平台的話,那麼假如其他嵌入式Linux能在GPL與Apache授權相容的情況下,移植Andoird當中的Dalvik虛擬機來使用,如此也就能受惠於Android平台的開發資源,因為可以接收過去在行動裝置平台上,J2ME的開發者們前來創建出的開發社群,那麼對於嵌入式Linux平台來說,也許就會是一劑增加應用的強心針而非分裂的毒藥了,希望自己這樣的想法不會太過於天真才好。

Posted by droger at 痞客邦 PIXNET 留言(5) 引用(0) 人氣()


open trackbacks list Trackbacks (0)

留言列表 (5)

Post Comment
  • jserv
  • Google Android 引入 Dalvik VM 將原本 Sun 的 Java 技術予以「變形」,是相當高竿的手法。對移動通訊裝置來說,Java 有一些「包袱」,比方說 stack-based VM,另外就是 Java Logo 與相容性 (所謂註冊商標)。現在 Google Android 以編譯器技術轉換既有 Java application (bytecode) 為 Dalvik 能接受的 p-code,而 Dalvik 本身為 register-based VM,在效能與記憶體使用方面可比 stack-based VM 更有效率,最重要的是,巧妙跳過 Java 的「束縛」,至於「相容」與否其實沒關係,只要 VM 有適度的保護即可。

    相反地,所有 Linux-based mobile devices 其實對 Google Android 都可是潛在的合作夥伴,整體設計並無衝突,甚至,前者可沿用後者一些創新的設計,並確保有更寬鬆的授權。比方說 Google Android 提供了衍生自 BSD C library 的 C runtime,基於不同需求,多少我們得對 runtime 作調整,那麼廠商專屬的修改,就可不必受限於「強迫回饋」的 GPL 約束。

    至於 linux kernel,採取 GPL 授權是相當好的,畢竟基礎建設必須是完全公開的,否則無法快速累積技術。
  • droger
  • 原來如此,非常感謝Jserv大前來回覆 :)
    如此一來,就要等著之後看Google和其他
    Linux 行動裝置開發商們是如何互動了
  • droger
  • 這部份的不相容,指的是程式碼不要混用,
    如果只使用程式模組(binary or module),基本上還是可以的
    當然前提就是各模組要程式碼保持乾淨,例如在
    別的Linux平台上使用Dalvik,如果針對該平台kernel
    有為了該虛擬機修改的地方,還是一樣要照GPL發佈
    而使用虛擬機的部份,就沿用Apache授權

    Mac OS X也有類似的狀況,核心和各個模組有不同的
    版權申告,並不會影響到它使用GPL的其他模組
  • maoyang
  • 平台的統一對開發者是一大利多, 但是對於像Mona Vista這樣的以embedded linux為核心的商業軟體公司有一定的衝擊, 未來市場上會出現許多小型軟體公司或是SOHO,他們的核心業務就是將Android porting到各種不同的硬體平台. 已讓這些平台享受到未來Android上龐大的軟體資源, 受惠的會是許多嵌入式硬體廠商

You haven’t logged in yet, please use guest status to leave message. You can also log in with above service account and leave message

other options