<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    Rss & SiteMap

    曙海教育集團(tuán)論壇 http://www.bjzhda.cn

    曙海教育集團(tuán)論壇
    共1 條記錄, 每頁(yè)顯示 10 條, 頁(yè)簽: [1]
    [瀏覽完整版]

    標(biāo)題:Android 系統(tǒng)架構(gòu)

    1樓
    wangxinxin 發(fā)表于:2010-12-2 10:27:17
    前言
    在Apple iPhone引起了廣大群眾和業(yè)界對(duì)於高階行動(dòng)裝置應(yīng)用的注目,另外也在市面上掀起了一陣波瀾。 從許多角度觀看iPhone,iPhone可以說(shuō)是一個(gè)銷售不錯(cuò)的單一產(chǎn)品。 然而iPhone能否持續(xù)熱潮也是相當(dāng)值得注意的事。 而Microsoft一直有著自己的手持式平臺(tái)Windows CE/Mobile與相關(guān)的合作夥伴。在這塊市場(chǎng)上目光也集中在另一個(gè)軟體巨頭-Google,對(duì)於Google在這塊市場(chǎng)的後續(xù)行動(dòng),或許iPhone的炒作起了作用,iPhone單一產(chǎn)品的思維讓人們一直不斷地傳言Google將類似Apple iPhone也推出自己的手機(jī)終端產(chǎn)品gPhone。 甚至有人對(duì)於該預(yù)期存在的gPhone的
    產(chǎn)品規(guī)劃和網(wǎng)路應(yīng)用方面,都有相當(dāng)?shù)念A(yù)測(cè)。而在2007年11月,Google公布了Android計(jì)劃,一方面映證了Google確實(shí)對(duì)於Mobile
    Device有著長(zhǎng)久的計(jì)劃和行動(dòng),一方面也否定了gPhone這樣單一的產(chǎn)品存在。如預(yù)期的網(wǎng)路上出現(xiàn)了許多關(guān)於Android的評(píng)論,綜觀這些評(píng)論,
    有的是淺嘗即止,有的是過(guò)於聚焦在技術(shù)層面的政治爭(zhēng)議,不然就是忽略了平臺(tái)技術(shù)在應(yīng)用上的影響和差異差異而大放市場(chǎng)策略的預(yù)測(cè),更甚者拿著現(xiàn)有的
    Android
    Emulator說(shuō)著不知所以的說(shuō)著gPhone抄襲iPhone的UI的可笑話。本文希望從系統(tǒng)和技術(shù)層面上探討Android對(duì)於應(yīng)用層面的影響,或
    許透過(guò)對(duì)於Android正確的認(rèn)知,可以對(duì)於市場(chǎng)策略上的分析能有更正確的判斷。
    Just Another Mobile Linux Platform?
    乍看之下Android只是個(gè)有如OpenMoko/MobiLin/GreenPhone等眾多開(kāi)放式手持Linux平臺(tái)的一個(gè),並沒(méi)有甚麼特別之處,然而進(jìn)一步了解之後,就不難了解Android 平臺(tái)在系統(tǒng)建構(gòu)上獨(dú)到的設(shè)計(jì)。可以說(shuō)Android重點(diǎn)並不在於Linux,而Android專案採(cǎi)用了這樣的組合,在整體規(guī)劃上考量了相當(dāng)廣的的層面,自個(gè)人/第三方軟體開(kāi)發(fā),系統(tǒng)開(kāi)發(fā)建構(gòu),實(shí)際應(yīng)用性到系統(tǒng)平臺(tái)開(kāi)放性。 而Android 計(jì)劃除了制定了系統(tǒng)架構(gòu)外,還針對(duì)這個(gè)平臺(tái)提供了完善的軟體開(kāi)發(fā)工具與環(huán)境,在IDE上採(cǎi)用了開(kāi)放式開(kāi)發(fā)平臺(tái) Eclipse,在該IDE 上建構(gòu)了Android 專屬的plugin。 另外還以自由軟體QEMU為基礎(chǔ)提供了Android平臺(tái)專屬的Emulator,讓個(gè)人/第三方軟體商迅速開(kāi)發(fā)軟體,無(wú)需依靠實(shí)際硬體開(kāi)發(fā)軟體。
    Application/Application Framework
    對(duì)於開(kāi)發(fā)者而言,開(kāi)發(fā)Linux Mobile/Embedded 軟體時(shí),多半採(cǎi)用C/C++做為軟體開(kāi)發(fā)語(yǔ)言,由於C/C++目前的開(kāi)發(fā)工具與底層硬體平臺(tái)有相當(dāng)?shù)南嚓P(guān)性,因此首先遭遇到的問(wèn)題是cross-tool chain的使用和開(kāi)發(fā)環(huán)境的架設(shè),再來(lái)就是每個(gè)Mobile Linux組織所制定出不同的embedded linux平臺(tái)有相當(dāng)迥異的system architecture/runtime environment,而各組織所提供的軟體開(kāi)發(fā)環(huán)境,也並不如Win CE/Mobiles單一系統(tǒng)一般有一致的架構(gòu)及API,更不用說(shuō)對(duì)於硬體平臺(tái)的多樣性更有著軟體相容性的問(wèn)題,因此即便API能做到有如Windows CE/Mobiles一般的一致,在各種硬體平臺(tái)(ex:ARM/MIPS/PowerPC..)也無(wú)法建立單一且能夠相容且運(yùn)作的binary,相較於在現(xiàn)在以x86為主要硬體平臺(tái)的開(kāi)發(fā)環(huán)境,行動(dòng)裝置硬體平臺(tái)的多樣性對(duì)於軟體開(kāi)發(fā)和使用性上無(wú)疑增添了不少硬體限制,而Java軟體雖能夠解決這方面的問(wèn)題,然而Java因?yàn)樵O(shè)計(jì)上的緣故,在應(yīng)用性上更為侷限。在這方面Android很特別的,採(cǎi)用了Java Language來(lái)做為App的撰寫語(yǔ)言。 採(cǎi)用Java語(yǔ)言的好處相當(dāng)多,物件導(dǎo)向語(yǔ)法相較於常用的C語(yǔ)言更便於GUI Programming Model的建置,另一方面Java開(kāi)發(fā)及執(zhí)行環(huán)境的建構(gòu)在Desktop 上相當(dāng)容易,參考文件的維護(hù)也較為容易,而且Java相關(guān)的開(kāi)發(fā)工具已經(jīng)很齊全且成熟,再者Java所制定的bytecode,沒(méi)有所需要對(duì)應(yīng)平臺(tái)的問(wèn)題。儘管最後在Android平臺(tái)上執(zhí)行的並非Java bytecode ,而是自有的dex 格式,然而dex 格式也有如Java bytecode般取決於VM的實(shí)作,而VM的角色在Android平臺(tái)終適度的隱藏了底層硬體的差異。
    Runtime Environment - Libraries & Dalvik VM
    在Rutime方面的library層面上,為了提供基本且標(biāo)準(zhǔn)的功能,Android 還是針對(duì)平臺(tái)的執(zhí)行環(huán)境制定了一套標(biāo)準(zhǔn)的C/C++ Library set,從現(xiàn)有的標(biāo)準(zhǔn)模組看來(lái),主要是針對(duì)網(wǎng)路/多媒體/GUI以及安全性提供底層的實(shí)作,值得注意的是在此Android特別將OpenGL ES/SQLite的納入,使得系統(tǒng)對(duì)於3D/資料庫(kù)有著標(biāo)準(zhǔn)支援。而儘管平臺(tái)上有著C/C++ libraries,這部分並不讓開(kāi)發(fā)者在開(kāi)發(fā)軟體時(shí)直接地使用,C/C++libraries在使用上還是間接地透過(guò)上層的Application Framework,並且透過(guò)Virtual Machine(VM)使用類似Java JNI技術(shù)來(lái)橋接 libraries 與 VM的運(yùn)行。 由於軟體開(kāi)發(fā)上使用了Java Language,若要使用Java VM這對(duì)於一般使用者與開(kāi)發(fā)者而言難免存在著應(yīng)用性相當(dāng)侷限,執(zhí)行效率不佳,系統(tǒng)資源需求過(guò)高,以及Java ME授權(quán)等問(wèn)題的存在。 為了解決上述這些問(wèn)題,Google 特地實(shí)作了Dalvik VM,Dalvik並非是Java VM,因此所執(zhí)行的也並非是bytecode,目前需要依靠轉(zhuǎn)換工具將Java bytecode轉(zhuǎn)為Dalvik VM執(zhí)行時(shí)特有的dex(Dalvik EXcutable)格式。Dalvik VM相較於Java VM最大的不同在於Java VM為Stack-based,而Dalvik是register-based。 以技術(shù)層面考量Register-based VM的特性有個(gè)很大的好處,那就是對(duì)於現(xiàn)有主流的硬體架構(gòu),如此很容易與現(xiàn)有系統(tǒng)整合且最佳化,而所需要的資源也相對(duì)較少。 甚至在硬體實(shí)作VM上會(huì)比較容易實(shí)現(xiàn)。 最重要的是Dalvik 並非是Java ME的實(shí)作,因此沒(méi)有Java ME授權(quán)相關(guān)的議題。 由android目前的介紹可以看出Dalvik目前實(shí)作在Linux 平臺(tái)[2],僅依靠Linux kernel作低階動(dòng)作與memory management。
    而從這一點(diǎn)的延伸更可以看出Android平臺(tái)中的重點(diǎn)為負(fù)責(zé)執(zhí)行層面的Dalvik
    VM而非Linux,也因此Linux在Android平臺(tái)中所扮演的角色並非是舉足輕重的主角,也可以想見(jiàn)Google採(cǎi)用Linux的原因是
    Linux本身所具有的自由開(kāi)放的特性,而另外在手持式裝置中Linux已經(jīng)具有相當(dāng)質(zhì)量的軟體開(kāi)發(fā)資源,另外就是VM的使用,考量到的就是軟體在各式硬
    體上的通用性,所以對(duì)於有些人猜測(cè)Android最後還是會(huì)開(kāi)放C/C++
    API供開(kāi)發(fā)者使用,若是如此,Android就失去了最大的特點(diǎn),與LiMo/OpenMoko之類的Mobile
    Linux平臺(tái)無(wú)異,所以這是太不可能發(fā)生的。既然採(cǎi)用了VM的方式,這麼一來(lái),Dalvik
    VM在其他平臺(tái)上建構(gòu)也不無(wú)可能,或許這樣的推敲或許也能合理解釋在Open Handset Alliance成員中有著長(zhǎng)期耕耘Windows
    Mobile平臺(tái)的HTC在列。
    Eclipse IDE + Android Emulator
    針對(duì)特定平臺(tái)提供完善的開(kāi)發(fā)/除錯(cuò)工具,以及整合式的開(kāi)發(fā)環(huán)境是開(kāi)發(fā)行動(dòng)應(yīng)用軟體的另一個(gè)困難點(diǎn),針對(duì)此點(diǎn)Google為Android平臺(tái)開(kāi)發(fā)了一系列的開(kāi)發(fā)/偵除錯(cuò)工具。 一系列的工具中最引人注目的莫過(guò)於Eclipse ADT-plugin和Android Emulator。現(xiàn)今,獨(dú)立的IDE軟體開(kāi)發(fā)需要投注相當(dāng)多的人力和時(shí)間,因此以提供eclipse plug-in的方式來(lái)達(dá)到提供完善的IDE目的,對(duì)於許多開(kāi)放專案或商業(yè)產(chǎn)品而言,這樣的作法已經(jīng)是首選。 而提供Emulator更可以解決在軟體開(kāi)發(fā)階段對(duì)於硬體平臺(tái)需求的問(wèn)題。 從Android Emulator的程式碼[3]看來(lái)是以QEMU為基礎(chǔ),延伸打造了該Emulator,功能上除了一些無(wú)法以軟體模擬的功能外(USB連線,SD 插拔,Audio-In,Camera,電池/AC狀態(tài)…等等),甚至許多的偵錯(cuò)功能是與Emulator環(huán)境整合的(有興趣的話可以下載SDK和Eclipse ADT來(lái)玩,在Eclipse上所開(kāi)發(fā)的程式可以很直接地輸出到Emulator上執(zhí)行,無(wú)需製作image或是安裝),在硬體模擬程度上相當(dāng)?shù)娜妗T陂_(kāi)發(fā)工具上,Android透過(guò)QEMU/Eclipse的方式,以很務(wù)實(shí)簡(jiǎn)單的作法達(dá)到了這樣的目的。Google在Android平臺(tái)上大量採(cǎi)用了開(kāi)放和自由的軟體,不害怕公開(kāi)程式或視之為洪水猛獸,這樣的作法相較於Symbian/ PalmOS/ Windows Mobile而言,宣告了軟體上的高價(jià)值不在於封閉進(jìn)而販賣程式碼和SDK工具本身,透過(guò)採(cǎi)用開(kāi)放/自由軟體的力量,更能加速達(dá)到目的和增加自身的價(jià)值。
    Java的美麗與哀愁 - Dalvik所引來(lái)技術(shù)上的政治爭(zhēng)議
    這個(gè)部分寫的有點(diǎn)長(zhǎng),是個(gè)人看了一些討論後的想法,沒(méi)有興趣的話請(qǐng)?zhí)^(guò)。在Android平臺(tái)採(cǎi)用Java語(yǔ)言做為程式開(kāi)發(fā)語(yǔ)言的同時(shí),提出了
    Dalvik
    VM。這樣的舉動(dòng)引起最廣泛探討的是:Android是否分裂了Java。在討論這樣的問(wèn)題之前,或許該討論Java本身的問(wèn)題,在這裡個(gè)人提供另一個(gè)思
    考觀點(diǎn),Sun在Java的提出之後,一度曾經(jīng)想過(guò)將Java交由ISO標(biāo)準(zhǔn)化,然而或許是透過(guò)JCP對(duì)於Java在各應(yīng)用上制定的完全主導(dǎo),讓Sun由
    Java在各方面確實(shí)地獲得了相當(dāng)?shù)睦妫约幢忝鎸?duì)Microsoft提出.NET這樣對(duì)於許多人而言美好又開(kāi)放的平臺(tái)的挑戰(zhàn),長(zhǎng)久以來(lái)Sun還是一
    直以相同的論調(diào)來(lái)否決開(kāi)放Java這個(gè)語(yǔ)言,而這個(gè)論調(diào)就是:"這會(huì)分裂Java"。從Java的出現(xiàn),在軟體開(kāi)發(fā)的歷史上確實(shí)有著相當(dāng)?shù)囊饬x,然而
    Java的提出到現(xiàn)在經(jīng)過(guò)的時(shí)間並不算短,即便是歷史最悠久的Java
    SE在現(xiàn)今Desktop應(yīng)用上還是相當(dāng)侷限,這樣的結(jié)果或許可以去檢討的是,或許Java淪落到現(xiàn)今這樣的局面是Sun自己導(dǎo)致的。多年來(lái)Sun封閉了
    Java讓Java只在他們?cè)试S的方式下運(yùn)作,在bytecode + stack
    VM低落的效能和反應(yīng)下,多少開(kāi)發(fā)者期望能用Java語(yǔ)言開(kāi)發(fā)原生(Native)程式,而又有多少開(kāi)發(fā)者在AWT/
    Swing這樣既具有難以有效駕馭的UI
    Model而且又與系統(tǒng)本身的Look&Feel格格不入的情況下充滿挫折,更不用說(shuō)許多難以理解的各種不實(shí)用的應(yīng)用Framework
    (ex: JMF/Java3D). 而這許多問(wèn)題當(dāng)人們嘗試自己解決而提出不錯(cuò)的方案,像是GCJ 和 Eclipse
    SWT,換得的是Sun的無(wú)視或敵對(duì)。而許多的方案換得的是:
    "Java已經(jīng)有了XXX,這樣的做法會(huì)分裂Java"。這麼一句總是出現(xiàn)的話,到底是不是因?yàn)樗旧碚娴暮苡械览恚恐辽賁un
    達(dá)到目的了,與Java扯上的問(wèn)題第一個(gè)被討論的總是"它會(huì)不會(huì)分裂Java?",Sun這麼多年來(lái)是否有心改進(jìn)Java?這個(gè)問(wèn)題或許Sun應(yīng)該捫心自
    問(wèn),在人們對(duì)於Java在應(yīng)用上的各種需求的改進(jìn)有所要求的同時(shí),Sun對(duì)於Java是否真的針對(duì)貼近人們本質(zhì)需求而改進(jìn)?檢視過(guò)去Sun
    到底做了甚麼,在"分裂Java"這樣的保護(hù)傘下,原本大好前程的Java又改進(jìn)了甚麼?這樣一來(lái)"Android是否分裂了Java?"是對(duì)於問(wèn)題的一
    箭中的還是只是長(zhǎng)年來(lái)受到的刺激的反射式思考?Android計(jì)劃中Dalvik
    VM的出現(xiàn)不妨視之為軟體開(kāi)發(fā)演進(jìn)中的必然,一方面Google從沒(méi)宣稱說(shuō)這是Java,而現(xiàn)今也有其他程式語(yǔ)言能夠開(kāi)發(fā)在Dalvik
    VM上運(yùn)作的軟體。如果Sun的Java做的夠好Dalvik可能就只是Java的次世代技術(shù)。Dalvik
    VM的問(wèn)題點(diǎn)或許只是在於扯上了Java而不在於他是個(gè)VM,在不同的Instruction Set上用Java語(yǔ)言開(kāi)發(fā)程式,在GCJ/.Net
    iKVM出現(xiàn)的同時(shí)就已經(jīng)被證明了,如果這算分裂Java,那這件事一直因?yàn)槿藗兊男枨蠖l(fā)生。軟體開(kāi)發(fā)或許就如同電影侏儸紀(jì)公園中所說(shuō)的"Life
    will find its
    way.",更不用說(shuō)開(kāi)發(fā)軟體的是人,程式開(kāi)發(fā)者總是期盼有更好的系統(tǒng)架構(gòu)和方案。在相容性的保護(hù)問(wèn)題上,在網(wǎng)路上有人問(wèn)過(guò)"為何沒(méi)有人有勇氣對(duì)
    Google詢問(wèn)他們對(duì)OpenJDK的質(zhì)疑",或許人們?cè)撓胂隨un用了這麼多的手段去控制Java的演進(jìn),卻無(wú)法自己提出Dalvik,那麼
    Google這麼做除了保障平臺(tái)的相容性又何能控制全球的人們往更好的應(yīng)用方向發(fā)展?另外許多軟體廠商(Ex: Trolltech)
    說(shuō)了"Google不過(guò)是制定了另一套Java",這樣的說(shuō)法某些層面上是對(duì)的,但是對(duì)於由這些人說(shuō)出的這些話,姑且以Android計(jì)劃會(huì)妨礙他們的產(chǎn)
    品(Ex
    圖片點(diǎn)擊可在新窗口打開(kāi)查看
    topia/Jambi)的銷售這樣的想法而一笑置之。
    說(shuō)了這麼多,那Android到底是甚麼?
    總結(jié)上述歸納幾點(diǎn):
    1. Android是個(gè)軟體平臺(tái),讓人們可以開(kāi)發(fā)軟體。這代表拿Apple iPhone與之相比,不只是不對(duì)等,更凸顯出iPhone的譁眾取寵和Apple的短視無(wú)力(SDK原本是不打算開(kāi)放的), 拿iPhone與Android現(xiàn)有UI相較更是可笑的舉動(dòng).
    2. 和以往的Mobile平臺(tái)不同的是,Android的設(shè)計(jì)讓它在採(cǎi)用VM得到類似Java
    bytecode在不同硬體平臺(tái)的相容性的同時(shí),VM對(duì)於底層硬體平臺(tái)貼近的設(shè)計(jì)能夠依然保有相當(dāng)不錯(cuò)的效能。相較於Windows
    Mobile限定使用ARM CPU, 其他Mobile Linux平臺(tái)則僅止制定了API層次的一致的作法,Android 算是有突破性的作法。
    3. 現(xiàn)在的Android是Linux平臺(tái),不過(guò)由於Android的核心在於上述的VM實(shí)作,這代表未來(lái)底層軟體平臺(tái)也或許是可以轉(zhuǎn)換的(甚至是Desktop)。目前缺乏詳細(xì)Dalvik VM實(shí)作細(xì)節(jié)這項(xiàng)目純屬猜測(cè)。
    共1 條記錄, 每頁(yè)顯示 10 條, 頁(yè)簽: [1]

    Copyright © 2000 - 2009 曙海教育集團(tuán)
    Powered By 曙海教育集團(tuán) Version 2.2
    Processed in .01465 s, 2 queries.
    主站蜘蛛池模板: 伊人久久大香线蕉综合电影| 在线天堂bt种子资源| 亚洲日本久久一区二区va| 精品久久久久久无码人妻| 国产无套粉嫩白浆| a级成人毛片免费图片| 成年女人永久免费观看片| 亚洲国产精品无码久久| 精品伊人久久香线蕉| 国产激情视频一区二区三区| 一本岛v免费不卡一二三区| 日本三级在线观看免费| 亚洲小视频在线播放| 男人插女人30分钟| 国产偷窥女洗浴在线观看| 91精品国产欧美一区二区| 好吊妞视频一区二区| 久久亚洲高清观看| 极度另类极品另类| 人妻少妇偷人精品视频| 精品国产福利第一区二区三区| 国产成人精品无码免费看| 亚洲欧美中文日韩二区一区| wwwxxx日本| 成年人网站黄色| 亚欧洲精品在线视频免费观看| 欧美性生活网址| 免费看特级淫片日本| 精精国产xxxx视频在线播放| 国产成品精品午夜视频| avtt天堂在线| 女人说疼男人就越往里| 久久久久亚洲精品美女| 日韩在线看片中文字幕不卡| 亚洲成人免费网站| 欧美视频在线播放bbxxx | 国产在线a免费观看| 2020天堂中文字幕一区在线观| 国产黄色app| らだ天堂√在线中文www| 少妇人妻综合久久中文字幕|