Android系統(tǒng)移植技術(shù)詳解【強(qiáng)烈推薦,非常經(jīng)典】.doc_第1頁(yè)
Android系統(tǒng)移植技術(shù)詳解【強(qiáng)烈推薦,非常經(jīng)典】.doc_第2頁(yè)
Android系統(tǒng)移植技術(shù)詳解【強(qiáng)烈推薦,非常經(jīng)典】.doc_第3頁(yè)
Android系統(tǒng)移植技術(shù)詳解【強(qiáng)烈推薦,非常經(jīng)典】.doc_第4頁(yè)
Android系統(tǒng)移植技術(shù)詳解【強(qiáng)烈推薦,非常經(jīng)典】.doc_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Android系統(tǒng)開發(fā)編譯環(huán)境配置主機(jī)系統(tǒng):Ubuntu9.04(1)安裝如下軟件包sudoapt-getinstallgit-coresudoapt-getinstallgnupgsudoapt-getinstallsun-java5-jdksudoapt-getinstallflexsudoapt-getinstallbisonsudoapt-getinstallgperfsudoapt-getinstalllibsdl-devsudoapt-getinstalllibesd0-devsudoapt-getinstallbuild-essentialsudoapt-getinstallzipsudoapt-getinstallcurlsudoapt-getinstalllibncurses5-devsudoapt-getinstallzlib1g-devandroid編譯對(duì)java的需求只支持jdk5.0低版本,jdk5.0update12版本和java6不支持。(2)下載repo工具curl/repo/bin/repochmoda+x/bin/repo(3)創(chuàng)建源代碼下載目錄:mkdir/work/android-froyo-r2(4)用repo工具初始化一個(gè)版本(以android2.2r2為例)cd/work/android-froyo-r2repoinit-ugit://platform/manifest.git-bfroyo初始化過程中會(huì)顯示相關(guān)的版本的TAG信息,同時(shí)會(huì)提示你輸入用戶名和郵箱地址,以上面的方式初始化的是android2.2froyo的最新版本,android2.2本身也會(huì)有很多個(gè)版本,這可以從TAG信息中看出來,當(dāng)前froyo的所有版本如下:*newtagandroid-2.2.1_r1-android-2.2.1_r1*newtagandroid-2.2_r1-android-2.2_r1*newtagandroid-2.2_r1.1-android-2.2_r1.1*newtagandroid-2.2_r1.2-android-2.2_r1.2*newtagandroid-2.2_r1.3-android-2.2_r1.3*newtagandroid-cts-2.2_r1-android-cts-2.2_r1*newtagandroid-cts-2.2_r2-android-cts-2.2_r2*newtagandroid-cts-2.2_r3-android-cts-2.2_r3這樣每次下載的都是最新的版本,當(dāng)然我們也可以根據(jù)TAG信息下載某一特定的版本如下:repoinit-ugit://platform/manifest.git-bandroid-cts-2.2_r3(5)下載代碼reposyncfroyo版本的代碼大小超過2G,漫長(zhǎng)的下載過程。(6)編譯代碼cd/work/android-froyo-r2makeUbuntu下使用Simba服務(wù)實(shí)現(xiàn)局域網(wǎng)內(nèi)文件共享Ubuntu下安裝Simba服務(wù)器將linux電腦上的內(nèi)容共享,同一局域網(wǎng)內(nèi)的另外一臺(tái)WindowsPC即可訪問其共享內(nèi)容,從而實(shí)現(xiàn)Windows電腦向訪問本地文件一樣訪問Linux文件系統(tǒng)的內(nèi)容。(1)安裝Simaba服務(wù)器sudoapt-getinstallsamba(2)安裝samba圖形化配置軟件sudoapt-getinstallsystem-config-samba(3)創(chuàng)建一個(gè)Simba專用用戶從“系統(tǒng)”“系統(tǒng)管理”“用戶和組”,來創(chuàng)建。如圖,先點(diǎn)擊“解鎖”,然后“添加新用戶”然后輸入新用戶名字(如Simba)和密碼(如111111),然后在“高級(jí)”里面,選擇“主組”為sambashare后點(diǎn)擊確定即可一句話來概括,就是創(chuàng)建一個(gè)主組為sambashare的用戶(4)配置samba共享從“系統(tǒng)”“系統(tǒng)管理”samba“,運(yùn)行配置界面然后”首選項(xiàng)“”服務(wù)器設(shè)置“。點(diǎn)擊:安全性,在最后的”來賓帳號(hào)“里面,選擇我們新建立的那個(gè)用戶simba后點(diǎn)擊確定(5)修改samba配置文件打開/etc/samba/smb.conf,修改validusers=XXXX為validusers=simba(6)重啟samba服務(wù)sudo/etc/init.d/sambarestart(7)添加共享文件從“系統(tǒng)”“系統(tǒng)管理”samba“,運(yùn)行配置界面點(diǎn)擊添加來添加共享文件夾,點(diǎn)擊瀏覽來選擇需要共享的文件夾,選擇可擦寫和顯示,點(diǎn)擊訪問可以設(shè)置訪問權(quán)限,最好設(shè)置成允許所有用戶訪問本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:/jiajie961/archive/2010/11/04/5987821.aspxUbuntu下tftp服務(wù)器的創(chuàng)建實(shí)驗(yàn)平臺(tái):Ubuntu9.04(1)安裝tftp服務(wù)sudoapt-getinstalltftptftpdopenbsd-inetd(2)在根目錄下創(chuàng)建文件夾tftpboot文件夾并修改權(quán)限cd/sudomkdirtftpbootsudochmod777tftpboot(3)修改/etc/inetd.conf文件如下:tftpdgramudpwaitnobody/usr/sbin/tcpd/usr/sbin/in.tftpd/tftpboot(4)開啟tftp服務(wù)sudo/etc/init.d/openbsd-inetdreloadsudoin.tftpd-l/tftpboot(5)重啟電腦,然后將測(cè)試文件放入/tftpboot目錄下即可開始測(cè)試,出現(xiàn)問題可能一般都是權(quán)限問題/tftpboot目錄下的文件訪問權(quán)限改成0777本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:/jiajie961/archive/2010/11/05/5989328.aspx創(chuàng)建一個(gè)新的Android產(chǎn)品項(xiàng)目從google網(wǎng)站上下載的android源代碼編譯時(shí)默認(rèn)是編譯google設(shè)定的產(chǎn)品,如果要開發(fā)自己的產(chǎn)品,則需要重新定義一個(gè)產(chǎn)品項(xiàng)目,過程如下:首先我們定義產(chǎn)品的規(guī)格,舉例如下:公司名稱ardent產(chǎn)品名稱MTP主板名稱merlin然后安裝下面的步驟新建產(chǎn)品項(xiàng)目:(1)在源代碼目錄下創(chuàng)建一個(gè)用戶目錄mkdirvendor(2)在用戶目錄下創(chuàng)建一個(gè)公司目錄mkdirvendor/merlin(3)在公司目錄下創(chuàng)建一個(gè)products目錄mkdirvendor/merlin/products(4)在上面創(chuàng)建的products下創(chuàng)建一個(gè)產(chǎn)品makefile文件MTP.mk,內(nèi)容如下:PRODUCT_PACKAGES:=AlarmClockEmailFallbackLauncher2MusicCameraSettingsLatinIMENotePadSoundRecorderBluetoothCertInstallerDeskClock$(callinherit-product,$(SRC_TARGET_DIR)/product/core.mk)#OverridesPRODUCT_MANUFACTURER:=ardentPRODUCT_BRAND:=ardentPRODUCT_NAME:=MTPPRODUCT_MODEL:=MultiMediaTouchPhonePRODUCT_DEVICE:=merlinPRODUCT_LOCALES:=zh_CN產(chǎn)品makefile文件的編寫有一套規(guī)則,詳細(xì)情況見此文后面的補(bǔ)充內(nèi)容。(5)在vendor/merlin/products目錄下創(chuàng)建一個(gè)AndroidProducts.mk文件,定義Android產(chǎn)品配置文件的路徑,具體如下:PRODUCT_MAKEFILES:=$(LOCAL_DIR)/MTP.mk(6)在公司目錄下創(chuàng)建一個(gè)主板目錄mkdirvendor/ardent/merlin(7)在主板目錄下新建一個(gè)主板配置文件BoardConfig.mk,內(nèi)容如下:TARGET_NO_BOOTLOADER:=trueTARGET_NO_KERNEL:=trueTARGET_CPU_ABI:=armeabiBOARD_USES_GENERIC_AUDIO:=trueUSE_CAMERA_STUB:=true(8)如果你希望修改系統(tǒng)屬性,則可以在主板目錄下新建一個(gè)p文件,該文件中可以修改系統(tǒng)屬性,舉例如下:#pfor#Thisoverridessettingsintheproducts/generic/pfile#rild.libpath=/system/lib/libreference-ril.so#rild.libargs=-d/dev/ttyS0(9)在主板目錄下建議一個(gè)Android的主板配置文件AndroidBoard.mk,此文件是編譯系統(tǒng)接口文件,內(nèi)容如下:#makefilefornewhardwarefrom#LOCAL_PATH:=$(callmy-dir)#thisisheretousethepre-builtkernelifeq($(TARGET_PREBUILT_KERNEL),)TARGET_PREBUILT_KERNEL:=$(LOCAL_PATH)/kernelendiffile:=$(INSTALLED_KERNEL_TARGET)ALL_PREBUILT+=$(file)$(file):$(TARGET_PREBUILT_KERNEL)|$(ACP)$(transform-prebuilt-to-target)#nobootloader,sowedontneedanyofthatstuff.#LOCAL_PATH:=vendor/ardent/merlininclude$(CLEAR_VARS)#includemoreboardspecificstuffhere?SuchasAudioparameters.#(10)編譯新的項(xiàng)目.build/envsetup.shmakePRODUCT-MTP-user補(bǔ)充內(nèi)容:(1)上面的新建的幾個(gè)文件的編寫可以參考build/target/board/generic目錄下的AndroidBoard.mk,BoardConfig.mk和p(2)產(chǎn)品makefile的編寫規(guī)則,變量定義解釋如下:PRODUCT_NAME終端用戶可見的產(chǎn)品名稱,對(duì)應(yīng)到“Settings“中的“Aboutthephone”信息PRODUCT_MODELEnd-user-visiblenamefortheendproductPRODUCT_LOCALES1個(gè)以空格分隔開的兩個(gè)字母的語言碼加上2字節(jié)的國(guó)家碼的列表,影響到Settings中的語言,時(shí)間,日期和貨幣格式設(shè)置,舉例:en_GBde_DEes_ESfr_CAPRODUCT_PACKAGES需要安裝的APK應(yīng)用程序列表PRODUCT_DEVICE工作設(shè)計(jì)名稱,即主板名稱PRODUCT_MANUFACTURER生產(chǎn)廠家PRODUCT_BRAND軟件設(shè)計(jì)針對(duì)的客戶品牌PRODUCT_PROPERTY_OVERRIDES以key=value為格式的屬性列表PRODUCT_COPY_FILES文件復(fù)制列表,格式為“原文件路徑:目的文件路徑”,編譯過程中會(huì)按照此規(guī)則復(fù)制文件PRODUCT_OTA_PUBLIC_KEYS產(chǎn)品的OTA公共密匙列表PRODUCT_POLICY聲明此產(chǎn)品使用的政策PRODUCT_PACKAGE_OVERLAYS指示是否使用默認(rèn)資源或添加任何產(chǎn)品特定的資源,例如:vendor/acme/overlayPRODUCT_CONTRIBUTORS_FILEHTML文件中包含項(xiàng)目的貢獻(xiàn)者PRODUCT_TAGS以空格分隔開的指定產(chǎn)品關(guān)鍵詞列表本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:ttp://jiajie961/archive/2010/11/07/5993126.aspx制作ubifs文件系統(tǒng)1,安裝相關(guān)的軟件包apt-getinstallliblzo2-dev2,獲取相關(guān)的工具mkfs.ubifs和ubinize這兩個(gè)工具是制作ubifs文件系統(tǒng)的時(shí)候用到,它們是mtd-utils工具包中的內(nèi)容,mtd-utils工具包你可以從下面的網(wǎng)站下載和編譯出來:官方網(wǎng)站:/index.html資源下載網(wǎng)站:/3,創(chuàng)建一個(gè)create-ubifs.sh腳本,主要是調(diào)用mkfs.ubifs和ubinize工具和相關(guān)參數(shù)來制作ubifs文件系統(tǒng),內(nèi)容如下:#!/bin/bash#Scripttogenerateubifsfilesystemimage.#ubinizeconfigurationfileconfig_file=rootfs_ubinize.cfg#Functiontocheckresultofthecommandcheck_result()if$?-ne0thenechoFAILEDelseechoSUCCESSFULfi#Functiontocheckwhetheranapplicationexistscheck_program()forcmdin$dowhich$cmd/dev/null2&1if$?-ne0thenechoechoCannotfindcommand$cmdechoexit1fidoneif$#-ne5thenechoechoUsage:create-ubifs.shpage_size_in_bytespages_per_blockpartition_size_in_bytesblocks_per_devicepath_to_rootfsechoexitfipage_size_in_bytes=$1echoPagesize$page_size_in_bytesbytes.pages_per_block=$2echoPagesperblock$pages_per_blockpartition_size_in_bytes=$3echoFile-systempartitionsize$partition_size_in_bytesbytes.blocks_per_device=$4echoBlocksperdevice$blocks_per_devicepath_to_rootfs=$5#wear_level

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論