关闭

关闭

关闭

封号提示

内容

首页 Android_Porting.pdf

Android_Porting.pdf

Android_Porting.pdf

上传者: dqonline 2011-09-19 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《Android_Portingpdf》,可适用于IT/计算机领域,主题内容包含資訊工程系碩士班碩士學位論文Android作業系統移植之研究與實現TheStudyandImplementationofOperatingSyste符等。

資訊工程系碩士班碩士學位論文Android作業系統移植之研究與實現TheStudyandImplementationofOperatingSystemPortingforAndroid研究生:鍾文昌指導教授:梁文耀中華民國九十八年七月摘要論文名稱:Android作業系統移植之研究與實現頁數:校所別:國立臺北科技大學資訊工程系碩士班畢業時間:九十七學年度第二學期學位:碩士研究生:鍾文昌指導教授:梁文耀博士關鍵詞:Android、ARM、Cell、Devicedriver、Embedded、GNUMake、Google、Kernel、Linux、Mobile、OpenSource、OperatingSystem、Phone、Porting、PXA、手機、作業系統、移植、嵌入式近年來智慧型手機崛起伴隨著手機作業系統也逐漸受到重視以往手機系統大多是各手機大廠自行研發且封閉的系統但自從Google開始覬覦手機市場的廣告商機而著手開發一個完全免費且開放式的手機軟體平台Android全球各相關產官學界便開始爭相研究也替Linux在智慧型手機市場注入一劑強心針。一般有能力移植Android的業界不願公開移植的步驟及流程而學界則恐缺資源及人才因此不易將Android移植至實際平台我們不僅成功地將Android移植至PXA並公開移植的步驟、流程、所撰寫及修改的程式碼使他人可以仿照此流程建立Android的執行環境。本論文的重點在於移植的流程而非硬體平台此流程適用於多數的硬體平台但不可能百分之百適用於所有的開發環境。我們為此打造一個全新的開發環境使其在GNUMake支援下盡可能執行parallelmake以縮短編譯時間。我們希望透過本論文能夠一窺Android的運作方式並分享移植過程中所遇到的問題及解決方法。iABSTRACTTitle:TheStudyandImplementationofOperatingSystemPortingforAndroidPages:School:NationalTaipeiUniversityofTechologyDepartment:DepartmentofComputerScienceandInformationEngineerTime:July,Degree:MasterResearcher:WenChangChungAdvisor:WenYewLiangKeywords:Android,ARM,Cell,Devicedriver,Embedded,GNUMake,Google,Kernel,Linux,Mobile,OpenSource,OperatingSystem,Phone,Porting,PXAInrecentyears,withtheappearanceofsmartphones,developmentoftheoperatingsystemsforhandhelddeviceshasattractedmoreandmoreattentionInthepast,thespecificationsanddevelopmentsofthehandhelddevicesareusuallydefinedbythevendorsinapropritorymethodWiththeambitiontoextendthemarketshareinthemobilephonerelatedindustry,Googlehasstartedtodevelopafreeandopensourcebasedsoftwareplatform,calledAndroid,forthesekindsofdevicesSincethen,Androidsoongetsfocusfromtheworldwideindustrycompanies,governmentdepartments,andacademicorganizationThisalsohelpstheLinuxcommunityinitsapplicationsinembeddedsystemsWenotonlyhaveportedAndroidintooneofourembeddedplatform(aPXAboard),butalsowe’dliketoshareourexperienceanddetailedprocedurestoanyonewhoareinterestedinAndroidportingThekeypointofthisthesisistoemphasizetheprocessofporting,insteadofhowtoportittoanyparticularhardwareplatformHowever,thisprocessstilldependsonsomeofthehardwarecomponentsthatareusedTheportingprocessinvolvesmanyissuesrelatedtothehardwareTheseincludetheworkofkernelporting,driverporting,andalsosomemodificationtotheAndroidiiapplicationframeworkandlibrariesBasedonourwork,wehopethatpeoplewhoareinterestedinAndroidhavethechancetogetmoreunderstandingonhowitworkandhowtorealizeitontheirownplatformsiii誌謝首先要感謝指導教授梁文耀老師悉心教誨並指示研究方向促使本論文能夠順利完成。感謝口試委員方志鵬老師、張陽郎老師、蘇慶龍老師以及指導教授梁文耀老師百忙之餘撥冗擔任學生的口試委員感謝各位老師的悉心指教並提出諸多寶貴建議使本論文更加完善。謝謝家人、朋友及實驗室各位夥伴的幫忙及協助讓我可以順利完成碩士學業。最後特別感謝正浩幫我拍攝論文中所需的照片。iv目錄中文摘要i英文摘要ii誌謝iv目錄v表目錄ix圖目錄x第一章緒論前言研究動機與目的研究貢獻論文架構第二章Android簡介硬體限制軟體特色開發環境Linux手機聯盟第三章一般EmbeddedLinuxSystem簡介系統架構開機流程在ARM架構下的開機流程開發流程第四章Android移植步驟及流程實驗平台PXA的硬體概況v準備工作移植Linuxkernel使用工具可能遇到的問題及解決方法編譯Linuxkernel測試Linuxkernel整合性修改LCDDoubleFramebufferLCD畫面閃爍KeypadTouch編譯Androidinitrc所有修改及新增的程式碼列表LinuxkerneldevicedriverAndroid執行Android移植成果第五章開發環境簡介一般傳統BuildingEnvironment與AndroidBuildingEnvironment簡介我們的開發環境簡介版本控制系統如何使用我們的開發環境測試平台vi第六章結論參考文獻附錄AShell簡介附錄BFramebufferdriver(pxafbc)附錄Cpxafbh附錄DKeypaddriver(androidkeypadc)附錄ETouchdriver(ucbtsc)附錄Finitrc附錄GlinuxandroidrMakefile附錄HlinuxandroidrarcharmMakefile附錄Ilinuxandroidrarcharmconfigsandroidpxadefconfig附錄JlinuxandroidrarcharmkernelheadS附錄Klinuxandroidrarcharmmachpxaclockc附錄Llinuxandroidrarcharmmachpxairqc附錄MlinuxandroidrdriverscpufreqKconfig附錄NlinuxandroidrdriversicchipsMakefile附錄OlinuxandroidrdriversinputkeyboardKconfig附錄PlinuxandroidrdriversinputkeyboardMakefile附錄Qlinuxandroidrincludelinuxconfigh附錄Rmydroidcdmaimportbuildcoredefinitionsmk附錄SmydroidcdmaimportexternalsqlitedistAndroidmk附錄TmydroidcdmaimportframeworksbasecorejniservercomandroidserverBatteryServicecpp附錄Umydroidcdmaimporthardwarelibhardwarepowerpowercvii附錄V建立Android執行環境的操作步驟附錄WAndroid相關的參考資料作者簡介viii表目錄表實驗平台PXA硬體規格表我們的開發環境在不同平台上的測試數據ix圖目錄圖AndroidArchitecture圖AndroidEmulator圖一般EmbeddedLinuxSystem架構圖一般EmbeddedLinuxSystem開機流程圖Bootloader與Linuxkernel的architecturenumber比對失敗圖選擇Kernelhacking圖開啟CONFIGDEBUGLL選項圖因為bootloader與Linuxkernel的architecturenumber不同在開啟Linuxkernelconfig中的CONFIGDEBUGLL後所顯示的除錯訊息圖Linuxkernel開機流程圖init執行流程圖一般EmbeddedLinuxSystem的目錄結構圖一般EmbeddedLinuxSystem的建構流程圖我們的開發環境圖PXAxProcessorBlockDiagram圖實驗平台PXA圖Android移植步驟圖移植Linuxkernel的流程圖圖WinMerge圖Meld圖LCD畫面閃爍由左至右每張圖像拍攝的時間間隔為秒圖Android對touch的反應圖Android在實驗平台PXA上執行時所顯示的訊息x圖在Android環境下輸入裝置與電源管理的關係圖Android的BatteryService流程圖Android的PowerManagerService流程圖Android在我們實驗平台PXA上的目錄結構圖Android在我們實驗平台PXA的操作圖像圖Android在我們實驗平台PXA的操作影片圖傳統recursivemake與Android開發環境的比較圖我們的buildingenvironment圖我們開發環境的目錄結構圖makemenuconfig圖選擇toolchain版本圖選擇Busybox版本圖選擇Linuxkernel版本圖選擇檔案系統xi第一章緒論前言在撰寫本論文的同時我們一直反覆思索要如何用淺顯易懂的方式描述移植過程使得本論文可以被簡單地閱讀。我們深刻感受到使用文字詳述移植過程遠比實際移植來的困難所以如果您正在參考本論文請不要因為內容乍看過於複雜而就此卻步因為實際移植遠比想像中的容易許多。我們不希望本論文的定位僅是Linux的進階者我們希望能讓想接觸Linux或是Linux的新手也能夠了解Android的移植流程。所以本論文以描述移植流程的方式進行因為唯有了解流程才能夠對不同的平台進行移植工作。這也是本論文盡量不提及硬體製造商資訊的原因因為本論文介紹的方法不限於任何硬體平台但也不可能百分之百適用於所有的開發環境。台語有一句話:江湖一點訣講破無價值。因為Android的議題非常新所以移植Android的困難在於不知道如何開始而且在不同的平台可能會遇到不同問題但實際上移植Android只是一件苦工。希望本論文能夠對於Android移植流程提供微薄的貢獻。研究動機與目的自從Google覬覦手機廣告的龐大商機大張旗鼓宣佈正式進軍手機市場相關新聞就開始炒得沸沸揚揚。Google為此打造一個免費、開放且高度整合的手機軟體平台企圖借此軟體平台正式進軍手機產業並於西元年第四季正式推出第一款GoogleAndroid手機TMobileGHTCDream且正式公開Android在此聲明:與Android相關的所有開發過程包含開發環境的建置、程式碼的撰寫及修改皆由我一人獨立完成並無從硬體製造商得到任何支援所開發的成果也與硬體製造商毫無關聯。強烈反對硬體製造商利用本論文從事任何相關的商業行為。軟體平台的程式碼供全球手機相關製造商及任何獨立開發工作者免費使用眾多業界及自由軟體工作者也紛紛試圖將Android移植至各種不同的平台上目前可以看到相關的研究成果。縱使Android已經成為當下最熱門的話題之一學術界大多還是以模擬器或是直接購買市面上所販售的Android手機為實驗平台原因不外乎缺乏硬體資源、軟體人才而且Android原始碼才公開不久因此較少硬體廠商提供相關BSP(BoardSupportPackage一般硬體廠商會提供所販售硬體的相關軟體套件以方便客戶開發使用此軟體套件即稱為BSP)的支援。因為移植工作需要相當多的相關知識包含對Linuxkernel、Linuxdevicemodel、Linuxdevicedriver、Linux開機流程、Linux操作環境及相關開發工具有一定程度的認識及了解以學術單位的人力資源及經驗比較不容易獨立將Android移植至實際平台上再加上Android原始碼才公開不久若是在移植上遇到問題比較難找到對應的解決方法。我們在沒有任何硬體廠商支援的條件下不僅將Android移植至實際平台PXA更從無到有打造一個可供研究及開發的實際應用平台讓我們可以從中一窺Linuxkernel、Linuxdevicedriver及Android的運作方式並分享移植過程中所遇到的問題及解決方法。研究貢獻d至實際平台PXA證明Android可以在PXA執行。xdevicedriver使得LCD、植移植Androi公開移植的詳細步驟及流程使他人可以仿照此流程重建Android在PXA甚至是其它平台的執行環境。撰寫並修改PXA所缺少的部分LinuKeypad、Touch、USB、有線網路可以在Android環境下正常運作。一般有能力移植Android的業界不願公開移植的步驟而學術界想要移卻通常沒有能力在避免對硬體製造商侵權的條件下我們公開移植過程中所修改的相關原始碼。我們為整個開發環境打造一個全新的buildingenvironment此building論文架構章節安排如下:第一章說明研究動機及貢獻。第二章為Andrenvironment部分參考自TheAndroidOpenSourceProject避免recursivemake所造成的問題並在GNUMake可以正常執行parallelmake的情況下比傳統recursivemake及一般make有更高的performance。本論文分六大章oid簡介。第三章介紹一般EmbeddedLinuxSystem。第四章詳述Android移植步驟及流程。第五章介紹開發環境。最後第六章則是結論。第二章Android簡介Android為Google踏入手機產業的試金石其初步發展方向為提供一個開放式的軟體平台讓全世界的Developer及使用者可以自行在此平台上開發或安裝相關軟體期望此平台在短時間內受到全世界的注目及歡迎。Android的發展重點為Library及Application因為唯有透過簡單易用的UI(UserInterface)及多樣化的軟體附加功能才能夠讓Google迅速進入手機產業並佔有一席之地這也是Google提供AndroidDeveloperChallenge一千萬美金作為獎金的目的。在撰寫本論文的同時我們發現部份Android的官方網址有所變動經過我們再次查證部份相關網址已經不存在這也表示Android正以飛快的速度前進因此本論文所提供的參考網址及相關資料均為西元年月日之前所摘錄。Google在此時已經推出Android但本論文的重點在於移植的流程而非版本上的差異所以本論文以Android為研究及移植的主軸。硬體限制Google官方建議執行Android的最低硬體需求(在此指target端):CPU:ARMbasedRAM:MBFlash:MB我們建議執行Android的最低硬體需求:CPU:ARMFamily以上且須支援ARMv以上指令集。AndroidEmulator使用的CPU代號為Goldfish是ARMEJSARMvTEJ。參考網址http:codegooglecomandroidadchtml已被移除。可參考Android原始碼中developmentpdkdocssystemrequirementshtml如何下載Android原始碼可參考。可參考。RAM:MB以上。我們實際移植的平台僅有MB因為記憶體容量太小而造成Android部份應用程式在開啟時須等待數秒鐘且MB是一般智慧型手機的基本配置。Flash:MB以上。一個基本的Android執行環境約需~MB而我們實際移植的平台僅有MB所以我們將Android的檔案系統置於USB隨身碟中。軟體特色Android的軟體架構採用分層設計的概念此架構的優點是減少各層之間的相依性、便於獨立開發、容易收斂問題及除錯等等。AndroidArchitecture如圖:紅色的部份為作業系統。因為智慧型手機的功能及周邊裝置日趨繁雜包含Camera、Bluetooth、WiFi、GPS、LCD、Touch、Battery及特別為手機或行動裝置所設計的電源管理系統所以我們需要一個OS(OperatingSystem)來管理所有的周邊及硬體裝置避免硬體資源被不當使用而產生不可預期的後果。Android採用Linux為其作業系統目前支援以上版本Android正式公開的第一版原始碼:Android使用Linuxkernel。綠色的部份為Library。Android採用大量的opensourcesoftware作為其主要Library這也是Android的優點之一因為許多opensourcesoftware都經過一定時間的驗證其穩定度及效能也都有一定的水準這也是為什麼Android可以快速發展的原因之一因為它站在巨人的肩膀上。黃褐色的部份主要為VirtualMachine。Google開發一個支援Java語法的VirtualMachine:Dalvik其特色是RegisterbasedVirtualMachine而非StackbasedVirtualMachine(JavaVirtualMachine)因此Dalvik可以針對其支援的平台作最佳化處理這也是針對嵌入式系統所作的設計。藍色的部份為ApplicationFramework及Applications。Google為此打造一系列的Framework希望開發人員能夠藉此加快開發速度這也是Android在軟體架構上採用分層設計的考量此架構有便於獨立開發、易於維護及容易除錯等優點。圖AndroidArchitectureAndroid的主要特色如下列所示:Android使用BionicLibc作為系統的CLibrary它的特色是BSDLicense大小約KB更適合用在EmbeddedLinuxSystem。豐富的多媒體功能支援MPEG、H、MP、AAC、AMR、JPGandPNG。

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/26
仅支持在线阅读

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部