基于:迅為iTOP-4418開發(fā)板 10.9.2.1 將 APK 編譯到 Android5.1 鏡像中 本節(jié)介紹的是如何默認(rèn)安裝 apk 至系統(tǒng),當(dāng)然用戶也可以使用”adb install *.apk”命令將 apk 下載到開發(fā)板。但當(dāng)開發(fā)板數(shù)量較多的時(shí)候,那么每次使用 adb 命令就過(guò)于繁瑣了,因此將必要的 apk 編譯至 Android 鏡像中會(huì)大大提升工作效率。 如下圖所示,在 Android5.1 源碼目錄“device/nexell/s5p6818_drone/apk”中,有一些默認(rèn)的應(yīng)用程序。
如果想再添加應(yīng)用程序,那么以 ledtest 為例,你只需要在 apk 文件下建立文件夾 ledtest。
然后將 ledtest.apk 和 libled.so 放進(jìn)文件夾 ledtest 中。 進(jìn)入到 ledtest 文件夾可以看到ledtest 的 APK 和對(duì)應(yīng)的庫(kù)文件。
如下圖所示,安裝 APK 的腳本是“device/nexell/s5p6818_drone/device.mk” 首先進(jìn)入對(duì)應(yīng)文件夾,然后打開 device.mk。
如下圖所示,這兩行腳本是與 ledtest 相關(guān)的。首先將 ledtest.apk 放到對(duì)應(yīng)的文件夾 中。其次,ledtest 需要一個(gè)庫(kù)文件,這個(gè)庫(kù)文件也要放到對(duì)應(yīng)的文件夾中。(這幾段代碼是 要自己添加的)如果是其它的 APK,可以參考 ledtest 的腳本。
修改完后,保存退出。 接著進(jìn)入源碼目錄進(jìn)行編譯。
源碼編譯完成之后,將 Android5.1 鏡像(包括 boot.img 內(nèi)核鏡像)燒寫至開發(fā)板就 可 以看見(jiàn) ledtest 應(yīng)用程序。 然后打開 ledtest 應(yīng)用程序,點(diǎn)擊 LED1 ON 按鈕可以點(diǎn)亮 板子上的 led,點(diǎn)擊 LED1 OFF 按鈕可以熄滅板子上的 led 小燈。 如果小燈沒(méi)有反應(yīng),則需要到給予 led 的設(shè)備節(jié)點(diǎn)權(quán)限,在串口控制臺(tái)輸入“chmod 777 /dev/leds_ctl”,如下圖所示。
使用命令”ls -l /dev | grep led”看到命令執(zhí)行成功。
接下來(lái)使用 app 便可以控制 led 的亮滅。 10.9.2.2 去掉默認(rèn)安裝的 APK 在 Android5.1 文件系統(tǒng)中,默認(rèn)安裝了一些應(yīng)用程序,如果有不需要的可以將其去掉。本 文以游戲 2048 為例。
安裝 APK 的腳本是“device/nexell/s5p6818_drone/device.mk” 首先進(jìn)入對(duì)應(yīng)文件夾,然后打開 device.mk,如下圖所示。
然后找到 2048 對(duì)應(yīng)的內(nèi)容,注釋掉,如下圖所示。
保存退出,接著進(jìn)入源碼目錄進(jìn)行編譯。
源碼編譯完成后,將 Android5.1 鏡像(包括 boot.img 內(nèi)核鏡像)燒寫至開發(fā)板就看不 到 2048 應(yīng)用程序。 10.9.2.3 Android5.1 設(shè)備權(quán)限的修改 在 Android5.1 下調(diào)用設(shè)備內(nèi)核驅(qū)動(dòng)的設(shè)備節(jié)點(diǎn)的時(shí)候,會(huì)遇到?jīng)]有權(quán)限的問(wèn)題,這個(gè)時(shí) 候需要修改一下設(shè)備的權(quán)限。下面以串口為例介紹一下,其它的設(shè)備修改方法也類似。 在 Android5.1 下操作串口有時(shí)會(huì)遇到?jīng)]有權(quán)限的問(wèn)題,這就需要修改下 android5.1 的啟動(dòng)腳本, 在里面修改下串口的權(quán)限。 在 Android5.1 源碼目錄下輸入 “vim device/nexell/s5p6818_drone/init.s5p6818_drone.rc” 結(jié)果如下圖所示。
在里面添加修改權(quán)限的命令,如下圖所示。
上面的“chmod 0777 xxxx”就是修改設(shè)備節(jié)點(diǎn)的權(quán)限,如上圖所示,我們已修改了 ttySAC0、ttySAC1、ttySAC3 設(shè)備節(jié)點(diǎn)的權(quán)限。 按照此方法同樣可以修改其他設(shè)備節(jié)點(diǎn)的權(quán)限。 然后輸入“./build_android.sh”回車后開始編譯 android,如下圖所示。
編譯完成后,把鏡像(包括 boot.img 內(nèi)核鏡像)燒寫至開發(fā)板,重新啟動(dòng) android。進(jìn) 入文件夾 dev,使用”ls -l”命令就可以看到串口的權(quán)限修改了(r-可讀,w-可寫,x-可執(zhí) 行)。
10.9.2.4 開機(jī)橫豎屏切換 6818 底板帶有陀螺儀。屏幕會(huì)隨著板子的角度自動(dòng)進(jìn)行橫豎屏切換。如下圖。若想固定屏 幕方向,可按照如下方法設(shè)置。
10.9.2.4.1 去掉自動(dòng)旋轉(zhuǎn)功能(默認(rèn)橫屏) 如下圖,在 Android 源碼目錄下輸入命令“vi frameworks/base/core/res/res/values/config.xml”
在里面使用”/config_supportAutoRotation “將參數(shù)修改為”false”,保存退出,如下 圖。
修改好后,運(yùn)行一鍵編譯腳本”./build_android.sh”,如下圖。
源碼編譯完成后,將 Android 鏡像燒寫至開發(fā)板,拔掉 otg 線,重新啟動(dòng)開發(fā)板。 系統(tǒng)默認(rèn)是橫屏顯示,并沒(méi)有自動(dòng)旋轉(zhuǎn)功能。如下圖。
10.9.2.4.2 豎屏顯示 在上一小節(jié)的基礎(chǔ)上,進(jìn)行下面操作。 如下圖,在 Android 源碼目錄下輸入命令“vi frameworks/base/policy/src/com/an droid/internal/policy/impl/PhoneWindowManager.java ”,如下圖。
在里面使用”/Surface.ROTATION”,在 5478 行,將參數(shù)修改為如下圖。
修改好后,運(yùn)行一鍵編譯腳本”./build_android.sh”,如下圖。
源碼編譯完成后,將 Android 鏡像燒寫至開發(fā)板,拔掉 otg 線,重新啟動(dòng)開發(fā)板。 則該系統(tǒng)支持豎屏顯示,并不能自動(dòng)旋轉(zhuǎn)屏幕。如下圖。
注意,按照上面修改的話,uboot 和內(nèi)核的 logo 方向是不變的。默認(rèn)橫屏。 |