周日去查找Android資料,卻偶然在百度Android貼吧發(fā)現(xiàn)一個名為“Android只是在Linux平臺上運行了一個Java虛擬機”的新貼,覺得此說法存在一定片面性,便進行了回復(fù)。沒想到,隨著討論的升級,內(nèi)容卻越回越多,幾乎不下于一篇專述Android與相關(guān)平臺的博文。于是全文復(fù)制到自己博客之上,有部分說法可能存在誤差,僅供讀者大人參考評判。
原文地址在此:http://tieba.baidu.com/f?kz=662574456
59.151.106.* 發(fā)帖:
Android只是在Linux平臺上運行了一個Java虛擬機。因此,他也只是稱得上手機系統(tǒng)而已,并不是真正的桌面操作系統(tǒng)。可能正是如此,他在操作上并不能和Iphone媲美。 不過,Nokia 的Maemo系統(tǒng)應(yīng)該能和蘋果一比高下。因為Maemo是真正的桌面操作系統(tǒng),Nokia只是把它移到了手機上。
筆者答:
準(zhǔn)確地說,Android是一個異化的 JVM + 一個2.6以上版本的Linux,將DalvikVM封裝在Linux之上,保證了系統(tǒng)間的通用性與可移植性(如果加入適當(dāng)封裝的話,甚至可能令部分程序不更改代碼同時運行于PC與Android手機)。當(dāng)然,DalvikVM并非標(biāo)準(zhǔn)JVM,因此在線程處理,資源回收等方面和標(biāo)準(zhǔn)的JVM還是不同的,這也決定了開發(fā)者在編碼時有所差異,增加了Java程序的移植復(fù)雜度。
蘋果有自己的 Mac OS內(nèi)核,iPhone標(biāo)準(zhǔn)開發(fā)語言主要采用Object-C,它的硬件與軟件標(biāo)準(zhǔn)高度統(tǒng)一,毋庸置疑,其運行效率,程序性能上肯定較使用 DalvikVM的Android為優(yōu),但是移植性,整體開發(fā)效率就低了一些,而且這些缺點也會隨著硬件的不斷升級而逐漸縮小(雖然不能徹底消除,但使用者將逐漸無法感知差異) ,可以說互有利弊。
Maemo 基礎(chǔ)同樣是標(biāo)準(zhǔn)Linux平臺,只是Nokia花了相當(dāng)心血在組件支持上加以改進,性能較優(yōu)秀而已,但是推廣程度卻不可能同技術(shù)領(lǐng)先的iPhone或者開源的Android抗衡,未來的智能手機潮流,始終要在iPhone與Android中二選一。(因為樓主無視Windows CE,我就不提了,反正也不看好……)
59.151.106.* 發(fā)帖:
不要忘了,Maemo是開源的。現(xiàn)在塞班都要開源了。
真正的對決,是在Maemo和Android之間進行的,因為在此之前,蘋果的系統(tǒng)早就淘汰了,除非他作出改變。另外,正是Android的操作是通過虛擬機向linux內(nèi)核傳遞的,效率會減少。所以在操作流暢度上會比Maemo差。谷歌對android是有所保留的。
筆者答:
首先,Symbian開源也沒戲,玩過Symbian程序認證的就知道為什么。其次,雖然開源平臺很多,比如Maemo、Moblin等,但我們也都知道,一個產(chǎn)品的推廣,技術(shù)只是其次(更何況,iPhone與Android技術(shù)也不次),渠道才是最重要的。Maemo的忠實用戶群能夠和蘋果與Google 相提并論嗎?不可能的。不信,你隨便打開個手機論壇,看看排在智能手機區(qū)前三的是不是iPhone、Android以及Symbian,這是后臺決定的……
虛擬技術(shù)是會減低響應(yīng)速度,卻會提高可以通用性,并且減低開發(fā)難度,極大提高應(yīng)用程序數(shù)量。(事實上,Android Market的程序數(shù)量已經(jīng)開始暴增了) 而且我已經(jīng)說過,隨著硬件的改進,這種差異性會越來越少,直到用戶完全無法察覺。(Android也都出到2.0了)
另外Android完全開源,以最普及的Linux及Java技術(shù)為核心,你認為它不好,廠商可以自己改進嘛,只要能通過標(biāo)準(zhǔn)化認證即可(想起了傳說中的OPhone……殘念中……這是劣化……),再者Google已經(jīng)聲明不會生產(chǎn)自主品牌的手機,說Google有所保留,是不是太臆測了?
dcfhvk 發(fā)帖:
其實開不開源跟用戶沒多少關(guān)系,和用戶關(guān)系最大的還是操作+界面+于機器的交流。開源只跟開發(fā)者有關(guān)系。封閉的蘋果能有今天就是很好的說明。塞班的消失僅僅是因為他老了。目前來說android的操作是比較緩慢的,界面就看個人愛好了。
谷歌當(dāng)然保留了,甚至還沒有maemo開放的徹底。搜一下就知道了。
筆者答:
1、吸引開發(fā)者,就意味著吸引用戶啊!試問一個不容易吸引開發(fā)者的平臺,怎么可能誕生出大量吸引客戶的應(yīng)用呢?比如iPhone,之所以能夠吸引用戶,恰恰是由于它統(tǒng)一的硬件與軟件環(huán)境,與豐厚的開發(fā)利潤,吸引了大量開發(fā)者為其開發(fā)程序,獲得超過10萬的應(yīng)用軟件支持,最終
由應(yīng)用吸引住用戶。而作為后起之秀的Android,要想在短期內(nèi)趕超iPhone,就只能依靠開源。(舉個例子,若不靠開源,單憑當(dāng)初Sun的財力,能將Java捧到今天的地位?這年頭,有錢的靠錢場,沒錢,當(dāng)然就得靠人場了。)
2、不明白你在說什么{谷歌當(dāng)然保留了,甚至還沒有maemo開放的徹底。搜一下就知道了}……來源請求……
219.130.13.* 發(fā)帖:
封閉的塞班,封閉的蘋果為什么能有這么多軟件呢,而且他們也取得了很大的成功。
收費的windows 為什么能比Linux普及,還不是用戶的選擇嘛!
況且手機平臺并不像PC平臺。
筆者答:
Symbian 的早期成功,在于它出現(xiàn)的時間太早(98年就開始研制),而且由諾基亞、索尼愛立信、摩托羅拉、西門子等公司共同開發(fā),又分別在對應(yīng)的智能手機平臺上普及,在同領(lǐng)域中,根本不存在有力的競爭對手(無視Windows CE,手機領(lǐng)域M$真不成),所以才能一枝獨秀。
而說到蘋果 iPhone,我們都知道喬布斯的另一個稱呼,“蘋果教主喬布斯 ”,也知道世界上有一群被戲稱為“果粉”的蘋果死忠派。(如果不明白怎么回事,建議去看看《硅谷海盜》這部電影)雖然在“量”上這群人沒有M$的使用者多,但在“質(zhì)”上,我們卻不得不承認他們普遍比M$受眾“精英化”,其中更不乏優(yōu)秀的軟件開發(fā)者。iPhone的出現(xiàn),極大的刺激了這群人的開發(fā)與消費欲望。除去本就具備一批鐵桿開發(fā)者的支持外,唯我獨尊的蘋果iPhone,還有一個最大的優(yōu)點,那就是平臺與硬件高度統(tǒng)一(知道不同硬件配置下,調(diào)試有多麻煩嗎?),以及
AppStore超高的開發(fā)回報率(三七分成),這些對于普通開發(fā)者而言都是無法抗拒的誘惑,吸引到大量優(yōu)秀開發(fā)者投身其中,也決定了iPhone的必然崛起。
所以我一直說,未來的智能機發(fā)展模式(我說的是模式,不排除有更好的OS問世,但目前還沒有),始終要在iPhone與Android中二擇其一。
PS:不要把智能機與PC分得太開,這兩者間的界限會越來越小,直到分野消失。我敢這樣斷言,三十年后,能占領(lǐng)絕大多數(shù)智能機市場的人,最終也將占領(lǐng)絕大多數(shù)微機市場。
219.130.12.* 發(fā)帖:
上面也太抬高Android了吧,目前谷歌面臨的巨大問題就是分裂,大家誰都可以用它,然后自己加些東西,刪些東西。然后每家的android都是一個獨立的系統(tǒng),這并不太兼容。最后android會淪為山寨的專利,這是遲早的事情。
因此谷歌必須做出一些限制,以防止它分化嚴(yán)重。但是,只要他開源,它就有可能分化。
更嚴(yán)重的是,谷歌自己沒有做手機硬件,她只能給廠家提供軟件,不能做出帶頭作用。
nokia的maemo就有點不同,她開源,但是nokia是生產(chǎn)硬件的,這是一個很好的主導(dǎo)。
筆者答:
Android 不是無法硬性標(biāo)準(zhǔn)化,只是市場普及度不夠,Google還沒有必要過于標(biāo)準(zhǔn)化而已。譬如Java也是開源的,IBM、SUN都有自己的JDK實現(xiàn),為什么大多數(shù)應(yīng)用卻可以相互通用呢?因為有JSR(Java Specification Requests)這個途徑與 JCP(Java Community Process) 這個組織存在,以Google的財力,影響力,技術(shù)儲備,搞出一個類似的組織與標(biāo)準(zhǔn),也不是什么大事吧?事實上,你可以根據(jù)源碼亂改Android,但如果你改出的代碼不能夠被標(biāo)準(zhǔn)化,不能夠被兼容,那么將沒人承認你的手機是Android手機。
再者,因為Android采用Java作為應(yīng)用程序開發(fā)語言,無論廠商怎么改Linux部分,只要能讓DalvikVM(沒有DalvikVM,還能叫 Android嗎?……)正常執(zhí)行,那么所有的應(yīng)用也就必然可以在你的平臺上通用,這也是Java特性所決定的。就算廠商閑的沒事增刪幾個類庫,在程序中檢測一下手機廠商型號,開發(fā)者也很容易做到通用,毋庸置疑,Java的優(yōu)勢本就在這里。
至于Maemo,現(xiàn)在看著就半死不活,粉絲沒有蘋果與Google的多,經(jīng)營模式上也無甚亮點,技術(shù)上又不見根本性的創(chuàng)新(說破天,無非也是個Linux系統(tǒng),大家都一樣),固守Nokia市場或許可以,想同Android和iPhone玩?等來世吧(不客氣地說,Maemo未來與Windows CE孰優(yōu)孰劣都不好說)……
219.130.12.* 發(fā)帖:
僅僅只是從用戶體驗來說,目前我是看好maemo和蘋果的,但是同樣對android保持信心,因為有谷歌做后臺嘛!至于粉絲到底誰多,經(jīng)營模式這方面就不亂評論了。
筆者答:
用戶體驗還是用戶說了算,目前在智能機領(lǐng)域,iPhone明顯占優(yōu),其次Android發(fā)展也很快,對Maemo不看好。比如國產(chǎn)的M8,寧選 Windows CE以及Android,也不用Maemo,雖說國內(nèi)廠商是一群只跟潮流的家伙,卻從側(cè)面證明了Maemo不是潮流……
219.130.12.* 發(fā)帖(說實話,偶不明白219.130.12.*發(fā)此貼干什么,似乎想證明Maemo也能跨平臺?):
關(guān)于 Qt
Qt 是跨平臺的應(yīng)用程序和 UI 框架。使用 Qt 您只需一次性開發(fā)應(yīng)用程序和用戶界面,無須重新編寫源代碼,便可跨不同桌面和嵌入式操作系統(tǒng)部署這些應(yīng)用程序。Qt Development Frameworks 前身為 Trolltech,于 2008 年 6 月被諾基亞收購。有關(guān) Qt 的更多詳細信息
筆者答:
你明不明白,C/C++的“一次編寫,到處編譯”和Java的“一次編譯,到處運行”完全是兩個概念。
運行于DalvikVM之上的 apk文件,無論Android衍生出多少版本,只要DalvikVM可以正確執(zhí)行,那么apk就可以正確執(zhí)行,一個apk文件用到底輕而易舉,不管什么廠商,什么機器,不管你是Windows也好,Linux也罷,只要你有DalvikVM,就全能運行。
而Qt則不然,比如我在Dev- C++中以Qt生成界面,再將它編譯成一個exe文件。把它放在Windows中運行,能不能用呢?當(dāng)然可以。但也只局限在Windows中,因為到了 Linux平臺,需要二次編譯。什么叫二次編譯?簡單點說,就是把你的c以及cpp文件,丟到編譯器里再跑一次。這時生成的文件,放在Linux下能不能運行?能。但是,放回Windows卻不行了。因為此時生成的機器碼針對Linux,而不是Windows,反之亦然。
說白了,一旦你要多系統(tǒng)的使要Qt,你這輩子就和編譯干上了。因為,你無法保證你針對的Linux平臺所使用的api以及頭文件等與你Qt中所使用的相對應(yīng)。比如同樣一個Qt應(yīng)用,同屬Linux環(huán)境,你在redhat8里可能沒事,到了ubuntu9或許就玩不轉(zhuǎn)了,就是這個原因。除了交給用戶自己編譯之外,怎樣最保險呢?沒辦法,你在一個系統(tǒng)下跑,就生成一個文件,你要在六個系統(tǒng)下跑,那就生成六個文件……事實上,不光你用Qt開發(fā)需要編譯,就連你安裝Qt運行庫都需要編譯,否則的話,你大有可能連Qt的設(shè)計界面跑不起來。(有些Linux版本可能內(nèi)置Qt環(huán)境,但你
在升級時就會發(fā)現(xiàn)問題了)
當(dāng)然,你可以當(dāng)我所說的是針對PC,到了Maemo就沒問題了,因為他版本統(tǒng)一。
但你別忘了,Maemo是開源的,這也是你一直強調(diào)的。只要出個“變異”的Maemo,隨便刪改個Linux中使用的頭文件,你的程序就很可能在它那里廢了,這也就是你所的擔(dān)心Android分裂案件的重演。不幸的是,比起以Java為基礎(chǔ)的Android,反而是直接構(gòu)建在Linux之上,以C++為主要開發(fā)語言的Maemo更容易產(chǎn)生此類問題才對。因為它沒有虛擬機支持,所以所有的改變,都是實打?qū)崳瑫茐腖inux兼容性的。
你倒提醒我了,相對基于DalvikVM的Android來講,Maemo才是真正前途堪憂的開源平臺啊。
dcfhvk 發(fā)帖:
感覺qt和maemo提供的開發(fā)接口更底層一些, 效率上和自由度更大一些. android的java比較適合開發(fā)網(wǎng)絡(luò)相關(guān)的應(yīng)用,在游戲,視頻這類娛樂應(yīng)用上要弱不少. android目前開放了java native sdk, 不知道能訪問到的linux核心底層接口的深度和廣度有多少, 出于 java的安.全模型,估計是會有不少的限制的. maemo的linux開發(fā)接口對開發(fā)者來說硬件是可以完全暴露的,沒有什么限制讓你去挖掘硬件的能力。
筆者答:
正因為如此,也沒什么辦法限制Maemo的不安全性……莫非還要走回Symbian認證的老路?……額滴神啊……
209.107.217.* 發(fā)帖:
可以拭目以待啊。
moto是決心在Android上討回丟掉的面子了。HTC的石頭也不小。山寨廠家也蠢蠢欲動。還有國內(nèi)的手機廠家。Android在數(shù)量上肯定不會少。Maemo目前就nokia一家在搞,不過手機老大應(yīng)該也是不缺少粉絲的。
蘋果則繼續(xù)走著他的老路,實力也非凡。
2010年將是智能手機競爭的開始。
拭目以待。
不過,誰贏誰輸現(xiàn)在還早。
不要急于下結(jié)論。
由于【目前的】最后一貼完全不涉及技術(shù)問題,所以筆者不再回復(fù)。
________________________________________________
這只是在非專業(yè)性質(zhì)的百度貼吧中的一場爭論,但是,其白熱化程度已經(jīng)如此。未來智能手機領(lǐng)域斗爭的殘酷性,憑此已能看出端倪。不過,從筆者的視野來看,有Java語言支撐的Android,一定會笑到最后。(因為——偶就是搞Java的嘛!)
浙公網(wǎng)安備 33010602011771號