基于:迅為iTOP-4418開(kāi)發(fā)板
10.9.2.1 將 APK 編譯到 Android5.1 鏡像中
本節(jié)介紹的是如何默認(rèn)安裝 apk 至系統(tǒng),當(dāng)然用戶也可以使用”adb install *.apk”命令將 apk 下載到開(kāi)發(fā)板。但當(dāng)開(kāi)發(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)文件夾,然后打開(kāi) 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)核鏡像)燒寫(xiě)至開(kāi)發(fā)板就
可 以看見(jiàn) ledtest 應(yīng)用程序。 然后打開(kāi) 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)文件夾,然后打開(kāi) device.mk,如下圖所示。
然后找到 2048 對(duì)應(yīng)的內(nèi)容,注釋掉,如下圖所示。
保存退出,接著進(jìn)入源碼目錄進(jìn)行編譯。
源碼編譯完成后,將 Android5.1 鏡像(包括 boot.img 內(nèi)核鏡像)燒寫(xiě)至開(kā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è)備修改方法也類(lèi)似。 在
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”回車(chē)后開(kāi)始編譯 android,如下圖所示。
編譯完成后,把鏡像(包括 boot.img 內(nèi)核鏡像)燒寫(xiě)至開(kāi)發(fā)板,重新啟動(dòng) android。進(jìn)
入文件夾 dev,使用”ls -l”命令就可以看到串口的權(quán)限修改了(r-可讀,w-可寫(xiě),x-可執(zhí) 行)。
10.9.2.4 開(kāi)機(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 鏡像燒寫(xiě)至開(kāi)發(fā)板,拔掉 otg 線,重新啟動(dòng)開(kāi)發(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 鏡像燒寫(xiě)至開(kāi)發(fā)板,拔掉 otg 線,重新啟動(dòng)開(kāi)發(fā)板。
則該系統(tǒng)支持豎屏顯示,并不能自動(dòng)旋轉(zhuǎn)屏幕。如下圖。
注意,按照上面修改的話,uboot 和內(nèi)核的 logo 方向是不變的。默認(rèn)橫屏。
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |