基于:迅为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 方向是不变的。默认横屏。
本帖最后由 砂舞的玩笑 于 2019-12-25 14:45 编辑