版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第6章Android底層及應用開發(fā)本章目標·掌握底層Android源碼的編譯·掌握底層AndroidLED燈操作代碼編寫·掌握Android應用開發(fā)環(huán)境的搭建·掌握Android應用APK的創(chuàng)立6.1底層局部6.1.1Android源碼編譯實驗新建一個“fs-wsn4412〞的目錄,作為此開發(fā)板的工作目錄。$mkdir/home/linux/workdir/farsight/fs-wsn4412將源碼拷貝到以下圖所示的目錄下。查看到拷貝的源碼$ls-al/mnt/hgfs/share/1.編譯Bootloader源碼〔1〕拷貝源碼到開發(fā)環(huán)境的工作目錄$mkdir/home/linux/workdir/farsight/fs-wsn4412/bootloader$cd/home/linux/workdir/farsight/fs-wsn4412/bootloader$cp/mnt/hgfs/share/u-boot-2023.03-wsn4412_vX.tar.xz.///X代表版本號,隨著版本升級會有區(qū)別〔2〕解壓源碼,如下圖。$tarxvfu-boot-2023.03-wsn4412_vX.tar.xz解壓成功后,如下圖。〔3〕配置源碼查看配置文件,如下圖。修改配置文件,如下圖?!?〕編譯源碼進入到U-Boot的源碼路徑下,執(zhí)行編譯腳本即可編譯U-Boot源碼。$cd/home/linux/workdir/farsight/fs-wsn4412/bootloader/u-boot-2023.03-FS4412/修改交叉工具鏈的路徑$vimMakefile修改162行代碼,如下圖。執(zhí)行編譯腳本編譯U-Boot,如下圖。執(zhí)行./build_uboot.sh,如下圖如下圖即為編譯成功。如下圖,“u-boot-fs4412.bin〞即為編譯生成的u-boot二進制文件2.編譯Linux內(nèi)核源碼〔1〕拷貝源碼到開發(fā)環(huán)境的工作目錄〔2〕解壓源碼解壓成功后如下圖〔3〕配置源碼進入到內(nèi)核的源碼路徑下。$cd/home/linux/workdir/farsight/fs-wsn4412/kernel/linux-3.0-wsn4412_v6/修改交叉工具鏈的路徑〔我們在打包源碼之前都會默認使用開發(fā)環(huán)境中交叉工具鏈的路徑,一般不用修改,如有必要按以下圖路徑更改〕。$vimMakefile修改198行代碼,如下圖。拷貝FS-WSN4412開發(fā)平臺的標準配置文件為“.config〞,如下圖。在終端下輸入以下命令可以進入到Linux內(nèi)核配置圖形界面,如下圖。$makemenuconfig〔4〕編譯源碼$makezImage–jX內(nèi)核源碼編譯成功,如下圖查看編譯生成的內(nèi)核二進制文件,如下圖。$lsarch/arm/boot/zImage-al3.編譯Android源碼〔1〕拷貝源碼到開發(fā)環(huán)境的工作目錄在FS-WSN4412開發(fā)平臺的工作目錄下建立android目錄,作為內(nèi)核的開發(fā)目錄,然后將共享目錄下的Android源碼拷貝至此,如下圖?!?〕解壓源碼,如下圖?!?〕配置源碼$cd/home/linux/workdir/farsight/fs-wsn4412/android/編譯“fs4412_build.sh〞文件,修改編譯Android所使用的線程數(shù)$vimfs4412_build.sh〔4〕編譯源碼執(zhí)行“fs4412_build.sh〞編譯Android源碼。以下圖所示即為編譯Android成功6.1.2Android鏡像燒寫實驗1.連接開發(fā)板撥動撥碼開關至“0110〞,如以下圖所示,系統(tǒng)開機即從eMMC啟動,如下圖。2.設置串口調(diào)試工具選擇串口〔Serial〕連接方式,如下圖。串口參數(shù)配置如下圖點擊open翻開串口,如下圖3.制作SD卡啟動盤將目錄下的“sdfuse_q〞拷貝到虛擬機Ubuntu的共享目錄下,如下圖。進入sd_fusing目錄,執(zhí)行編譯命令,如下圖用讀卡器將SD卡插入電腦,虛擬機識別到SD讀卡器,如下圖。右鍵點擊圖標,選擇“連接〞,如下圖。查看生成的設備節(jié)點$sudo./mkuboot.sh/dev/sdb//將uboot燒寫到sd卡中,如下圖。將SD卡插入開發(fā)板SD卡槽內(nèi),撥碼撥至1000,如下圖。啟動開發(fā)板,在倒計時結(jié)束前,按任意鍵停止在Uboot處,串口終端顯示如下圖。4.環(huán)境配置在安卓中Fastboot是一種比Recovery更底層的刷機模式。Fastboot是一種線刷,就是使用USB數(shù)據(jù)線連接的一種刷機模式。相對于某些系統(tǒng)卡刷來說,線刷更可靠,平安。Fastboot工具在光盤的“工具軟件\Windows\Fastboot\Fastboot〞下,為了方便把他解壓到D盤,如下圖。翻開“計算機屬性->系統(tǒng)屬性->高級->環(huán)境變量〞,如下圖。編輯“系統(tǒng)變量〞的“Path〞項,如下圖。在“變量值〞最后添加“;D:\Fastboot\〞〔注意開始的分號〕,如下圖。點擊“確定〞,翻開“cmd〞,輸入“fastboot〞測試環(huán)境變量是否添加成功,如下圖。5.燒寫系統(tǒng)〔1〕Flash分區(qū)翻開開發(fā)板,保證開發(fā)板U-Boot版本為2023.03,終端輸入“fdisk–c0〞對SD卡分區(qū),然后輸入“fastboot〞,如下圖。#fdisk–c0//對eMMC分區(qū)#fastboot〔2〕安裝Fastboot驅(qū)動第一次使用Fastboot需要安裝驅(qū)動〔開發(fā)板在插上USB線后并不會提示安裝驅(qū)動,使用fastboot才會示安裝〕,驅(qū)動位置在“工具軟件\Windows\Fastboot\Fastboot驅(qū)動〞下。按以下圖連接開發(fā)板串口和USB口。此時,如果系統(tǒng)安裝了驅(qū)動,在設備管理器中應該如下圖?!?〕執(zhí)行腳本燒寫系統(tǒng)翻開“基于嵌入式系統(tǒng)的物聯(lián)網(wǎng)實驗開發(fā)光盤/安卓資料/燒寫鏡像〞目錄,如下圖。選擇需要使用的鏡像,如GPRS的,翻開目錄,如下圖。雙擊執(zhí)行腳本文件,出現(xiàn)CMD命令行如以下圖所示,燒寫成功此窗口會自動關閉,如下圖。把撥動撥碼開關至“0110〞,如以下圖所示,以后系統(tǒng)開機即從eMMC啟動,自動進入Android系統(tǒng),如下圖。6.13AndroidLED點燈實驗實驗原理android實現(xiàn)了很好的分層機制,從而使得開發(fā)者開發(fā)更加專注,但是android的應用層和框架層使用的開發(fā)語言為java,Java是一種平臺無關性的語言,平臺對于上層的java代碼來說是透明的,而android是基于linux的一個操作系統(tǒng),linux只提供了c/c++或者是匯編的接口給開發(fā),因此,為了使得android系統(tǒng)運行正常,必須想方法把java語言與c/c++連接起來,這個連接螺絲就是jni技術,AndroidHAL〔硬件抽象層〕是一個Linux底層驅(qū)動與JavaApplicationFramework〔應用層框架〕的中間層,它可以將硬件的操作邏輯封裝起來,實現(xiàn)Java類的本地接口,交由Android應用框架統(tǒng)一管理。JNI的調(diào)用結(jié)構如下圖。Java程序與JNI編譯成的共享庫之間聯(lián)系如下:〔1〕Java類加載共享庫用loadlibrary方法,名稱與JNI共享庫名稱對應?!?〕Java調(diào)用JNI中的類需要聲明本地方法,其中本地方法的類型需要與JNI中JNINativeMethod中提供的方法聲明、signature一致?!?〕JNI類中需要在jnihelper函數(shù)聲明調(diào)用Java類,這樣才能實現(xiàn)Java虛擬機與本地方法的聯(lián)系?!?〕Java效勞類的全稱需與JNI的文件名有一定的對應關系,如Java效勞類名為,對應JNI的service應用名為com_farsight_service_LedService.cpp。4.實驗步驟〔1〕編譯jni層代碼〔2〕編譯hal層代碼〔3〕用adb調(diào)試命令推送hal層和jni層共享庫和應用程序〔4〕實驗現(xiàn)象翻開WSN4412上的android應用程序led,如下圖應用程序翻開后如下圖。點擊圖標,會看到WSN4412開發(fā)板上的LED燈亮起來,如下圖。6.2應用局部開發(fā)環(huán)境搭建1.Android開發(fā)環(huán)境的安裝與配置〔1〕安裝JDK和配置Java開發(fā)環(huán)境雙擊“JDK/JDK8/jdk-8u5-windows-i586.exe〞〔32bit操作系統(tǒng)〕或者jdk-8u5-windows-x64.exe〔64bit操作統(tǒng)〕進行安裝,接受許可證,選擇需要安裝的組件和安裝路徑后,單擊“下一步〞按鈕,完成安裝過程,如下圖。安裝完成后,利用以下步驟檢查安裝是否成功:翻開WindowsCMD窗口,在CMD窗口中輸入java–ersion命令,如果屏幕出現(xiàn)以下圖所示的代碼信息,說明JDK安裝成功。XP下安裝JDK7非XP下安裝JDK8〔2〕安裝7Zip壓縮軟件雙擊“7zip/7z920-x86.exe〞〔32bit操作系統(tǒng)〕或者7z920-x64.msi〔64bit操作系統(tǒng)〕進行安裝,如下圖。〔3〕解壓adt-bundle-windowsJDK安裝成功后,使用7Zip軟件解壓ADT目錄下的,如下圖。adt-bundle-windows-x86.7z〔32bit〕或者adt-bundle-windows-x86_64.7z〔64bit〕?!?〕運行Eclipse解壓完畢后,直接執(zhí)行其中的“eclipse/eclipse.exe〞文件,Eclipse可以自動找到用戶前期安裝的JDK路徑,如下圖?!?〕配置SDK運行解壓目錄下的“eclipse/eclipse.exe〞,為自己選擇一個工作目錄Workspace,不要有中文路徑,不選擇默認也可以,如下圖。為Eclipse關聯(lián)SDK的安裝路徑。在Eclipse中,點擊“Window->Preferences〞,會看到其中添加了Android的配置,如下圖的操作,然后點擊“Apply〞,最后點擊“OK〞即可。完成以上步驟后,設置Eclipse環(huán)境,如下圖。勾選Android相關的工具,點擊“OK〞〔如果已經(jīng)勾選,那么不理會〕,如下圖?!?〕配置ADTADT〔AndroidDevelopmentTools〕是Android為Eclipse定制的一個插件,為用戶提供了一個強大的用戶開發(fā)Android應用程序的綜合環(huán)境。在Eclipse中安裝ADT,首先啟動Eclipse,點擊“AndroidVirtualDevice〔AVD〕Manager〞圖標,如下圖。測試運行AVD,如下圖。虛擬設備啟動完成后,如下圖。創(chuàng)立第一個Android應用1.工程建立建立Android工程的步驟如下:〔1〕選擇“File->New->Project〞命令?!?〕選擇“Android->AndroidApllicationProject〞命令,單擊“Next〞按鈕,如下圖。〔3〕在“NewAndroidApplication〞對話框中,輸入工程名稱等信息,最后單擊“Next〞按鈕,如下圖?!?〕工程建立后,可以通過Eclipse環(huán)境查看Android應用程序中各個文件,例如AndroidManifest.xml文件、布局文件、代碼等。如下圖為布局文件的編輯界面,可以直觀地查看程序的UI布局。2.在模擬器上運行程序右鍵選擇HelloWorld工程,然后選擇“RunAs〞,最后選擇“AndroidApplication〞,如下圖。Eclipse將翻開剛剛建立的默認的Android模擬器,運行畫面如同真的開機一般,開機后,隨即翻開運行的程序,運行畫面如下圖。3.在目標開發(fā)平臺上運行程序在Eclipse中選擇“Run->Run〞〔或Debug〕命令,這時會彈出如下一個窗口,讓你選擇模擬器還是來顯示,如果選擇,即可在上運行該程序,如下圖。選擇FS210設備,點擊“OK〞,程序運行在開發(fā)平臺顯示屏上,如下圖?!才紶栍龅藉e誤時,可以試著關閉Eclipse,再
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年質(zhì)量管理體系建立與實施指南
- 企業(yè)人力資源管理與企業(yè)績效評估指南
- 商業(yè)購物中心無樂不造3活動策劃方案
- 民航安全管理規(guī)范與流程(標準版)
- 物業(yè)管理公司服務標準與流程手冊(標準版)
- 城市道路施工質(zhì)量保證制度
- 車站設備維修保養(yǎng)制度
- DB61T 2084-2025農(nóng)村水電站標識標志標線設置及設備著色規(guī)范
- 財務資金回收與壞賬處理制度
- 辦公室投訴與反饋處理制度
- 中國特色社會主義知識點總結(jié)中職高考政治一輪復習
- 企業(yè)管理的基礎工作包括哪些內(nèi)容
- 學?!?530”安全教育記錄表(2024年秋季全學期)
- 鋁合金門窗工程技術規(guī)范
- 食材配送服務方案投標文件(技術標)
- 室性心律失常
- 《2024消費者金融知識學習偏好及行業(yè)宣教洞察報告》
- 中國高血壓防治指南(2024年修訂版)解讀課件
- 科研項目數(shù)據(jù)保護應急預案
- 2024年土地轉(zhuǎn)租的合同范本
- 附件2:慢病管理中心評審實施細則2024年修訂版
評論
0/150
提交評論