亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2414 | 回復(fù): 0
打印 上一主題 下一主題

Android Porting 手札 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-06-11 15:14 |只看該作者 |倒序瀏覽

                              
本週六將於北京舉行的「Android 技術(shù)大會」上發(fā)表有關(guān)「Android 移植」的技術(shù)演說,配合該演講,最近將陸續(xù)整理一些筆記以搭配講稿供與會朋友參考。
Android 的技術(shù)優(yōu)點
Android 平臺的好處是「將開發(fā)者侷限在應(yīng)用層(application level)」的開發(fā),並透過一個設(shè)計良好的
application framework 將 library 層「包裝起來」。傳統(tǒng) GNU/Linux
系統(tǒng)的「開源模式」是「從裡到外」全面開放,應(yīng)用程式來自四面八方,每個應(yīng)用程式底層使用到的 library 並不相同,這讓 Linux
平臺的軟體發(fā)展容易失控,造成 Linux distribution 上雖然收錄了豐富的應(yīng)用程式,但相對的也要包山包海地納入非常多的
shared library。
Android 雖然也採用了其他 open source 的專案成果,但 Android 以很聰明的方式,解決傳統(tǒng) Linux
開放手機(jī)平臺的「相依性」問題,這也是過去長久以來,匯整使用(leverage)開放源碼專案開發(fā)產(chǎn)品的大問題。Application
framework 採用 Java 程式語言,並軟性的將開發(fā)者限制在 application level 是 Android
解決上述技術(shù)難題的一個關(guān)鍵。
網(wǎng)路上有著數(shù)以萬計的 Free & Open Source Software 專案,而被 Android 採納的 FOSS
專案僅有約 60 個左右,比起傳統(tǒng) Linux distribution 必須收錄上千個套件的數(shù)量來看,Android
未來若能發(fā)揚(yáng)光大,能是扮演「收斂」開源軟體發(fā)展模式的推手。
傳統(tǒng)的 Embedded Linux 系統(tǒng)程式基於 GNU libc 以及大量的相依程式庫(library
dependencies),因此很容易有「牽一髮而動全身」的問題出現(xiàn)。例如:某一個library的API變動(可能是函數(shù)改名或移除)將使得其它程
式庫與應(yīng)用程式執(zhí)行錯誤,這時就必須修改原始程式碼並重新編譯才能解決問題。
這個問題的主因,是因為 Linux 系統(tǒng)是採取動態(tài)程式庫(shared
libraries)的機(jī)制,程式庫的變更雖然只需要「抽換」掉動態(tài)程式庫檔,但是應(yīng)用程式在執(zhí)行時,才會產(chǎn)生「無法載入符號」的錯誤,除非是「定期」進(jìn)
行「系統(tǒng)重編譯」,否則很難即時修正此錯誤。
Android 的底層並無太複雜的「程式庫相依」問題,這使得 Android 可以比較容易將系統(tǒng)與 IDE 開發(fā)工具做整合。在標(biāo)準(zhǔn) C
程式庫(C library)方面,Google 則是採用 BSD 授權(quán)實作了一份適合手機(jī)系統(tǒng)使用的版本,無疑是一個值得稱許的做法。
由上述的分析來看,Android 平臺在系統(tǒng)層(library、kernel)的移植工作將不再花費(fèi)工程人員大量的時間,同時就系統(tǒng)層的調(diào)校工作來看,也能有更具體明確的調(diào)校項目。
移植項目概述
從 Google 發(fā)佈的標(biāo)準(zhǔn) Android 系統(tǒng)架構(gòu)圖來說,Application framework 以及 application 二層並沒有重要的移植工作需要進(jìn)行,以下以系統(tǒng)架構(gòu)的角度來簡介 Android 移植技術(shù)的重要事項。
1. Application
應(yīng)用程式層並移植的工作需要進(jìn)行,但是因為 Android 每個版本的 API level 都不一樣,因此需要進(jìn)行 API
相容性的測試。例如,Android 1.1 的 API level 為 2、Android 1.5 的 API level 為 3,需要根據(jù)
Google 發(fā)佈的 API change 文件進(jìn)行 application 的相容性測試。
2. Application Framework
以大方向來看,加入新的 library 時需要擴(kuò)充 application framework;Android framework 以
JNI 呼叫下一層的 library,但是 application 不直接呼叫 library,因此讓 Android framework
的設(shè)計更嚴(yán)謹(jǐn)。
3. Library
Android 的「external library」裡包含部份現(xiàn)有的 FOSS 專案成果,有些 library 的實作為
machine-dependent,針對 machine-dependent
的實作必須修改其程式碼。例如,android.media.MediaPlayer 的底層為 OpenCore 程式庫,而 OpenCore 的
MP3 decode 部份演算法以 assembly 實作。
4. Dalvik VM
JNI 與 interpreter 是 Android runtimer(Dalvik VM)的移植重點。新版本的
Cupcake(Android 1.5)在 JNI 的部份加入了 x86 的支援,interpreter 目前則是支援
armv4、armv5te 以及 x86。
5. Bionic
Bionic 是 Android 專屬的小型客製化 C library,主要是由 BSD C library 移植而來。支援 Linux
kernel 的重要實作,像是:system call、dynamic linker & loader、thread
等等都是檢查的重點。Bionic 裡有一個 libthread_db 是基於 Linux futexes 的 thread
實作,很適合像是手機(jī)這樣的小型系統(tǒng)使用。
6. 其它
Android framework 的實作,部份需要考量硬體的規(guī)格,例如:Surface Manager 需要考量是否有 GPU
或硬體加速。但你在 Android application 建立一個 Surface holder 時,若是將 Surface 的類型設(shè)定為
SURFACE_TYPE_HARDWARE,就必須針對硬體加速與 DMA 做移植工作。
小結(jié)
Android 平臺的移植技術(shù)仍屬重要,主要的技術(shù)能力著重於 Android framework(例如:加入新的 external
library)以及 Linux device driver 上。本次 Android 技術(shù)大會除了介紹 Android
移植的重點(highlights)以及具體實作方向外,也會展示近期的小小實作成果。
雖然一開始提到,Android 平臺的好處是「將開發(fā)者侷限在應(yīng)用層(application level)」的開發(fā),但是 Android framework 與 Android 移植的能力仍然重要,畢竟這是直接影響產(chǎn)品開發(fā)的關(guān)鍵力之一。
                           
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/96145/showart_1961918.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP