ANDROID培訓(xùn)-MTK安卓平臺介紹_第1頁
ANDROID培訓(xùn)-MTK安卓平臺介紹_第2頁
ANDROID培訓(xùn)-MTK安卓平臺介紹_第3頁
ANDROID培訓(xùn)-MTK安卓平臺介紹_第4頁
ANDROID培訓(xùn)-MTK安卓平臺介紹_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

MTK安卓平臺介紹編譯及工作環(huán)境android5.0以下:unbuntu10.04JDK1.6android5.0以后:unbuntu12.04Gcc4.6JDK1.7編譯及工作環(huán)境代碼管理:GIT開發(fā)工具:Wine、sourceinsight、beyond虛擬機(jī):virtualbox-4.3〔unbuntu10.04安裝virtualbox-4.04〕編譯及工作環(huán)境系統(tǒng)要求:針對ANDROID5.0以下工程:推薦:4核8線程CPU、>=8G內(nèi)存ANDROID5.0及以上工程:推薦:8核16線程CPU、>=16G內(nèi)存、固態(tài)硬盤ANDROID系統(tǒng)架構(gòu)android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,ANDROID分為四個層,從高層到低層分別是:應(yīng)用程序?qū)討?yīng)用程序框架層系統(tǒng)運行庫層linux核心層ANDROID系統(tǒng)架構(gòu)ANDROID系統(tǒng)架構(gòu)主要目錄:packages/appsmediatek/packages/apps主要系統(tǒng)APK:Settings、Launcher2、Gallery2、Dialer、Contacts應(yīng)用程序?qū)覣NDROID系統(tǒng)架構(gòu)目錄:frameworks/baseCore:安卓SDK中的API接口及系統(tǒng)核心的資源包〔字串,數(shù)組、動畫、顏色等〕Data:開關(guān)機(jī)動畫、字體、鈴聲、鍵盤映射等Packages:主要是SystemUI狀態(tài)欄相關(guān)APK框架層ANDROID系統(tǒng)架構(gòu)policy:鎖屏、系統(tǒng)窗口相關(guān)、事件預(yù)分發(fā)、電源鍵處理等Packages:主要是SystemUI狀態(tài)欄相關(guān)APKservices:系統(tǒng)中各種關(guān)鍵效勞如:WindowManagerService、PowerManagerService、PackageManagerService、BatteryService、MountService、InputManagerService、InputMethodManagerService、ActivityManagerService、BluetoothManagerService框架層ANDROID系統(tǒng)架構(gòu)主要包括dalvik、art虛擬機(jī)、和一些開源的代碼庫等androidruntime:frameworks/base/cmds/app_process系統(tǒng)運行庫層ANDROID系統(tǒng)架構(gòu)需要關(guān)注的目錄:Kernel、mediatek/custom/common/kernel、mediatek/custom/leatek72_cwet_kk/kernel、mediatek/custom/mt6572/kernel局部模塊:Hardware/libhardwareLinux核心層ANDROID系統(tǒng)架構(gòu)各個驅(qū)動模塊的編寫如:bt803、qn806、cust_tpd、LCMMTK平臺DCT工具:按鍵、中斷、GPIO等配置,見下頁Linux核心層ANDROID系統(tǒng)架構(gòu)Linux核心層ANDROID啟動流程ANDROID啟動流程Preloader->LK:啟動檢查是否為下載模式,如果不為下載模式,進(jìn)入LK中對局部關(guān)鍵硬件初始化:時鐘、中斷、定時器、串口,以及顯示屏、FASTBOOT命令等。LK初始化完成后跳到kernel。并向kernel傳送一個啟動命令字符串ANDROID啟動流程Kernel:對所有硬件設(shè)備初始化,初始化完成后執(zhí)行init進(jìn)程。讀取根文件系統(tǒng)中init.rc等文件。執(zhí)行里面的命令init.rc:初始化環(huán)境變量、掛載文件系統(tǒng)、啟動一些根本效勞如adb、播放開機(jī)動畫、ueventd效勞、servicemanager、netd、Vold等。之后啟動zygote效勞ANDROID啟動流程zygote:servicezygote/system/bin/app_process-Xzygote/system/bin--zygote--start-system-serverclassmainsocketzygotestream660rootsystem根據(jù)傳入的參數(shù)啟動app_process。具體流程如下:ANDROID啟動流程app_main.cpp:新建類AndroidRuntime實例:runtime,該類中可新建一個虛擬機(jī),并注冊虛擬機(jī)API調(diào)用接口參數(shù):--zygote--start-system-server:

runtime.start("ernal.os.ZygoteInit",startSystemServer?"start-system-server":"");->ZygoteInit.java:main函數(shù):注冊一個本地名為zygote的LocalServerSocket->preload默認(rèn)資源:

preloadClasses();preloadResources();preloadOpenGL();->startSystemServer->runSelectLoopANDROID啟動流程〔應(yīng)用程序〕翻開一個新的APK:startActivity()->中間過程略…->ActivityManagerService->Process.start->openZygoteSocketIfNeeded收到消息后:->ZygoteConnection.runOnce->pid=Zygote.forkAndSpecialize(parsedArgs.uid,parsedArgs.gid,parsedArgs.gids,parsedArgs.debugFlags,rlimits,parsedArgs.mountExternal,parsedArgs.seInfo,parsedArgs.niceName);MTK源代碼結(jié)構(gòu)見附目錄MTK固件編譯及固件介紹編譯整個工程:./mkleatek72_cwet_kkn編譯模塊./mkr[模塊:pl、lk、dr]打包鏡像:./mkbootimage、systemimage編譯某個APK或者庫等部件:如:./mkmmmt6572/packages/apps/Settings發(fā)布正式版本:./mk-o=TARGET_BUILD_VARIANT=usernMTK固件編譯及固件介紹preloader_leatek72_cwet_kk.binlogo.bin:LK啟動靜態(tài)圖及充電顯示圖lk.bin:LK模塊boot.img:內(nèi)核recover

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論