Android8.1 系统的使用
编辑教程Android8.1 系统的使用
我们为 NanoPC-T4 提供了完善的Android8.1 BSP,代码使用 gitlab.com 平台管理,完全开源,支持GPU加速和VPU硬件加速。
使用MIPI摄像头进行拍照和录像
NanoPC-T4在Android系统下,可以搭配 MIPI摄像头CAM1320 进行拍照和录像,操作比较简单,连接摄像头到NanoPC-T4的MIPI接口,开机进入 Android 系统,用系统自带的 Camera 应用即可完成拍照和录像,操作跟 Android 手机是一样的。
NanoPC-T4板上共有两个MIPI接口可以连接两个摄像头分别对应前置摄像头和后置摄像头,其对应关系如下表所示:
MIPI-CSI1 <--> Android 后置摄像头 | |
---|---|
MIPI-CSI2 <--> Android 前置摄像头 |
连接方法如下图所示:
使用双MIPI摄像头预览与录像
从github下载以下示例源代码,并用 Android studio 编译并运行:
git clone https://github.com/friendlyarm/Dual-Camera.git -b working-branch
应用安装后,需要设置Android权限才能让程序正常运行,方法是在开发板的Android系统里进入 Settings -> Apps & notifications -> Dual Camera -> Permissions 钩选以下权限:
Camera
Microphone
Storage
最终运行效果如下:
点击界面上的 "CAPTURE VIDEO" 按钮即可录制视频(同时录两个摄像头),录制的视频保存到以下位置:/storage/emulated/0/Download/dualcamera_h264.mp4,电脑上可以用以下adb命令下载到本地:
adb pull /storage/emulated/0/Download/dualcamera_h264.mp4
已知问题:
录制的视频文件,播放时会比正常的快,可能需要调整mediacodec的某些参数
切换系统语言
Android系统默认的系统语言是英文,比如我们要设置为中文,步骤如下:
- 进入 Android 设置:Settings -> System -> Languages & Input -> Languages;
- 点击"Add a language", 在列表中选择 "简体中文",再选择 "中国";
- 这时列表中会有中文和英文两种语言,拖动中文那一项到列表的最上面即可,注意,如果你使用的是鼠标,拖动的方法是:将鼠标指针放在列表项右边的图标上,然后按下鼠标中键来拖动;
Android8.1 硬件访问
开发者可以通过FriendlyThings SDK在Android App中访问和控制主板上的各种硬件资源,比如Uart, SPI, I2C, GPIO等接口,详情可参考以下两份文档:
- Android: FriendlyThings for RK3399
- Android: FriendlyThings APIs
Android神经网络 NN SDK示例
Android8.1 BSP中包含了支持GPU加速的Android NN SDK,为了方便测试,Android8固件中也预装了原厂提供的Android NN示例程序:TfLiteCameraDemo,这是一个使用Rockchip AndroidNN GPU加速的MobileNet分类器Demo,运行时需要连接摄像头模块,USB和CSI摄像头都是支持的,通过点击 “TfLiteCameraDemo”图标进入示例,其运行效果如下所示:
关于Android NN SDK的详细描述,可以去网上参考原厂的文档
TfLiteCameraDemo示例源代码下载地址:[TfLiteCameraDemo源代码]
如何使用adb(Android Debug Bridge)
在Windows10下使用adb
准备一个烧写好安卓系统的 NanoPC-T4 ,一条Typc-C数据线
在dl.friendlyarm.com找到 NanoPC-T4 的网盘,进入后下载Tools文件夹下的adb.zip
解压adb.zip
按win+R打开“运行”窗口,输入“cmd”打开命令行工具
在命令行工具输入以下命令转到adb工具的所在路径:
cd c:\adb
输入以下命令会出现adb的版本信息和使用说明,说明adb可用:
adb
把烧写好安卓系统的 NanoPC-T4 接上电源,用Type-C数据线连接 NanoPC-T4 和电脑,然后在命令行工具输入:
adb devices
可看到返回的设备信息,说明Win10已经通过adb检测到 NanoPC-T4 ,之后可以在Win10下对设备进行操作
尝试在Win10下使用命令在设备上安装安卓应用,下载一个APK文件,然后输入“adb install 文件名.apk”,如:
adb install QQ_Android_8.3.6.apk
看到“Success”的提示即安装成功
在Ubuntu下使用adb
把烧写好安卓系统的 NanoPC-T4 接上电源,用Type-C数据线连接 NanoPC-T4 和电脑,打开“终端”
输入以下命令安装adb工具,这时要求输入用户密码:
sudo apt-get install android-tools-adb
安装过程中弹出下载提示,输入“Y”然后按Enter确认
等待安装完成
在命令行工具输入以下命令查看设备:
adb devices
可看到返回的设备信息,说明Ubuntu已经通过adb检测到 NanoPC-T4
adb下修改系统文件
第一次启动系统,如果需要更改系统文件,需要关闭安全验证 (注:安装apk不需要关闭),关闭安全验证后需要重启
adb root
adb disable-verity
adb reboot
重启后,获得root权限,并重新挂载 /system 开启写入权限
adb root
adb remount
上传文件
adb push example.txt /system/
注意事项
部分电脑USB端口可能供电不足,如使用NanoPi M4系列请使用PSU Module供电
HDMI分辨率、边界调节
如果连接了HDMI显示设备,可进入 Android 的 Settings -> Display -> Advanced -> HDMI & Rotation 进行设置。
HDMI Resolution | 缺省为 Auto,可手动设置显示分辨率,最高可支持 4K 分辨率 |
---|---|
Screen Zoom | 用户可观察红色边框的显示,点击中间的4个箭头按钮来进行缩放调节 |
Display Rotation | 可进行横竖屏切换 |
屏幕旋转
使用HDMI与LCD作为显示设备时,如果需要旋转屏幕,可进入 Android 的 Settings -> Display -> Advanced -> HDMI & Rotation -> Display Rotation 进行设置。
在 adb shell 用命令来测试屏幕旋转 (不会保存设置):
wm rotation 90
切换音频输出通道
可以配置音频输出到HDMI或者耳机接口,设置入口:Android 的 Settings -> Accessibility -> Force audio output。 如果 Force audio output菜单项是灰色的,即处于不可选择的状态,说明你所用的硬件会自动检测耳机插拨状态,并自动切换音频通道,无需设置。
调整录音的音量
- 先通过串口或adb shell,以root用户权限使用amix 命令调节录音的音量,例如:
amix "IN2 Boost"
amix "ADC Capture Volume"
以上命令用于查看当前的设置,然后便可根据支持的值来调节并测试。
- 调试好后,修改 hardware/rockchip/audio/tinyalsa_hal/codec_config/rt5651_config.h 文件中 rt5651_main_mic_capture_controls 数组中对应配置项的值,编译Android源代码并测试。
定制开关机界面与动画
开启与关闭
将 device/rockchip/common/BoardConfig.mk 文件的
BOOT_SHUTDOWN_ANIMATION_RINGING := false
改为
BOOT_SHUTDOWN_ANIMATION_RINGING := true
来打开编译时将文件打包进固件的功能
开机动画
创建或替换Android源代码目录下的如下文件:
kernel/logo.bmp
kernel/logo_kernel.bmp
device/rockchip/common/bootshutdown/bootanimation.zip
关机动画
创建或替换Android源代码目录下的如下文件:
device/rockchip/common/bootshutdown/shutdownanimation.zip
动画制作方法
请参考:http://blog.sina.com.cn/s/blog_4960586c0100vu5v.html
移除Google框架
如果不需要使用google服务,可以删除Google框架以节约系统资源,方法是删除Android源代码中的以下目录,然后重新编译Android:
vendor/google
用摇控器操作Android
NanoPC-T4在Android下完美支持 FriendlyARM RC-100 红外遥控器,更方便NanoPC-T4在接电视的场景下使用,遥控器按键功能丰富:
按键定义与功能如下表所示:
按键 | 功能 |
---|---|
上 | 导航键-上 |
下 | 导航键-下 |
左 | 导航键-左 |
右 | 导航键-右 |
OK | 确认 |
- | 音量- |
+ | 音量+ |
静音 | 静音 |
菜单 | Android菜单键 |
首页 | Android Home键 |
返回 | Android 返回键 |
F1 | 下拉Android 通知栏 |
F2 | Android 截屏 |
F3 | 切换操作模式,在鼠标模式与按钮模式之间切换 |
使用USB摄像头进行拍照和录像
Android系统同时支持USB摄像头拍照和录像,使用系统自带的 Camera 应用即可,有两点需要注意的地方:
- 需要根据摄像头规格,选择合适的录像分辨率,可以先选择较低的CIF分辨率,测试OK之后再尝试更高的分辨率,设置界面如下所示:
- USB摄像头不能与MIPI摄像头同时使用,也不能热拨插,插入摄像头后需要重新开机才能识别;
我们测试过的USB摄像头型号如下:罗技C270,罗技C922 PRO,
实测罗技C922 PRO录像和拍照可以达到1080P分辨率。
Android下使用4G模块EC20
连接方法
连接时,需要通过USB to miniPCIe转接板转接EC20,再连接到主板的USB Host端口,如下图所示:
连接后无需额外的配置,启动Android后就可以使用4G上网了,跟Android手机类拟。
10.15.2 启用EC20的GPS功能 默认情况下,Android的GPS功能是关闭的 (原因是Android在没有找到任何GPS模块的情况下,会不停的打印LOG信息),在你连接了EC20模块后,就可以开启GPS了。
开启方法是修改Android源代码下的 vendor/quectel/ec20/BoardConfigPartial.mk 文件,将下面这行:
BOARD_HAS_GPS := false
改为
BOARD_HAS_GPS := true
然后重新编译 Android。
Android下使用NVME SSD高速固态硬盘
第一步:格式化SSD为单分区ext4格式
此操作可以在电脑上进行,也可以在开发板的 linux 系统里进行。
为了方便操作,请在终端上先用以下命令切换为 root 用户:
su -
root用户的默认密码是fa。
检查是否检测到了SSD
root@FriendlyELEC:~# cat /proc/partitions
major minor #blocks name
1 0 4096 ram0
259 0 125034840 nvme0n1
看到有 nvme0n1 设备的节点,说明SSD已经成功被识别到了。
给SSD重新分区
为了让 Linux 系统能成功能挂载,我们选择给 SSD 重新分区,下面的命令会自动将 SSD 整个空间分成一个区:
(echo o; echo n; echo p; echo 1; echo ""; echo ""; echo w; echo q) | fdisk /dev/nvme0n1
如果要分多个区,可以用 fdisk /dev/nvme0n1 命令,参考 fdisk的文档来操作。
将分区格式化为 ext4 格式
上一个步骤分区完成后,我们再用 cat /proc/partitions 命令看一下当前的分区信息,在下面的结果中,可用于存储数据的分区设备名为 /dev/nvme0n1p1 :
root@FriendlyELEC:~# cat /proc/partitions
major minor #blocks name
1 0 4096 ram0
259 0 125034840 nvme0n1
259 2 125033816 nvme0n1p1
下面的命令将该分区格式化为 ext4 格式,其中-L参数指定SSD分区的名称,这个名称会在Android界面上显示:
mkfs.ext4 /dev/nvme0n1p1 -L SSD
第二步:Android开机自动挂载
只要SSD已经被正确地格式化,Android就会自动挂载SSD为外置存储设备,无需额外的设置,打开Android内置的Files应用,可以看到SSD设备已经挂载:
第三方的软件可以正常识别SSD,如下图中的迅雷下载软件,可以设置将文件默认下载到SSD上:
设置调速散热风扇
散热风扇使用PWM来实现自动调速,会根据当前的CPU温度来决定风扇的开关,以及风扇的转速,如果当前的CPU温度不高,风扇会被关闭或者以较低转速旋转 (减少不必要的环境噪声),如果你想改变风扇的调速行为,请修改Android bsp源代码中的以下文件:
device/rockchip/rk3399/nanopc-t4/pwm_fan.sh
需要禁止开机自动启动风扇(比如你需要连接其他的PWM设备),请修改Android bsp源代码中的以下文件:
device/rockchip/rk3399/init.rk3399.rc
对源代码做了修改后,需要重新编译Android。
选择支付方式:
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间