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