Difference between revisions of "Template:RK3399-Android8/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
 
(21 intermediate revisions by 4 users not shown)
Line 16: Line 16:
 
  | NanoPi-M4 =
 
  | NanoPi-M4 =
 
NanoPi-M4板上共有两个MIPI接口可以连接两个摄像头分别对应前置摄像头和后置摄像头,其对应关系如下表所示:<br />
 
NanoPi-M4板上共有两个MIPI接口可以连接两个摄像头分别对应前置摄像头和后置摄像头,其对应关系如下表所示:<br />
 +
'''MIPI-CSI1'''  <-->  '''Android 后置摄像头'''<br />
 +
'''MIPI-CSI2'''  <-->  '''Android 前置摄像头'''<br /><br />
 +
连接方法如下图所示:<br />
 +
[[File:M4-mipi-dual-camera.jpg|frameless|600px]]<br>
 +
| NanoPi-M4V2 =
 +
NanoPi-M4V2板上共有两个MIPI接口可以连接两个摄像头分别对应前置摄像头和后置摄像头,其对应关系如下表所示:<br />
 +
'''MIPI-CSI1'''  <-->  '''Android 后置摄像头'''<br />
 +
'''MIPI-CSI2'''  <-->  '''Android 前置摄像头'''<br /><br />
 +
连接方法如下图所示:<br />
 +
[[File:M4-mipi-dual-camera.jpg|frameless|600px]]<br>
 +
| NanoPi-M4B=
 +
NanoPi-M4B板上共有两个MIPI接口可以连接两个摄像头分别对应前置摄像头和后置摄像头,其对应关系如下表所示:<br />
 
'''MIPI-CSI1'''  <-->  '''Android 后置摄像头'''<br />
 
'''MIPI-CSI1'''  <-->  '''Android 后置摄像头'''<br />
 
'''MIPI-CSI2'''  <-->  '''Android 前置摄像头'''<br /><br />
 
'''MIPI-CSI2'''  <-->  '''Android 前置摄像头'''<br /><br />
Line 40: Line 52:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
最终运行效果如下:<br />
 
最终运行效果如下:<br />
[TODO]<br />
+
[[File:Android_dual_camera_demo.jpg|frameless|600px]]<br />
 
点击界面上的 "CAPTURE VIDEO" 按钮即可录制视频(同时录两个摄像头),录制的视频保存到以下位置:/storage/emulated/0/Download/dualcamera_h264.mp4,电脑上可以用以下adb命令下载到本地:
 
点击界面上的 "CAPTURE VIDEO" 按钮即可录制视频(同时录两个摄像头),录制的视频保存到以下位置:/storage/emulated/0/Download/dualcamera_h264.mp4,电脑上可以用以下adb命令下载到本地:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 57: Line 69:
 
===Android8.1 硬件访问===
 
===Android8.1 硬件访问===
 
开发者可以通过FriendlyThings SDK在Android App中访问和控制主板上的各种硬件资源,比如Uart, SPI, I2C, GPIO等接口,详情可参考以下两份文档:
 
开发者可以通过FriendlyThings SDK在Android App中访问和控制主板上的各种硬件资源,比如Uart, SPI, I2C, GPIO等接口,详情可参考以下两份文档:
*[[FriendlyThings for RK3399/zh|Android: FriendlyThings for RK3399]]
+
*[[FriendlyThings for Rockchip/zh|Android: FriendlyThings for Rockchip]]
 
*[[FriendlyThings APIs/zh|Android: FriendlyThings APIs]]
 
*[[FriendlyThings APIs/zh|Android: FriendlyThings APIs]]
  
Line 63: Line 75:
 
Android8.1 BSP中包含了支持GPU加速的Android NN SDK,为了方便测试,Android8固件中也预装了原厂提供的Android NN示例程序:TfLiteCameraDemo,这是一个使用Rockchip AndroidNN GPU加速的MobileNet分类器Demo,运行时需要连接摄像头模块,USB和CSI摄像头都是支持的,通过点击 “TfLiteCameraDemo”图标进入示例,其运行效果如下所示:<br /><br />
 
Android8.1 BSP中包含了支持GPU加速的Android NN SDK,为了方便测试,Android8固件中也预装了原厂提供的Android NN示例程序:TfLiteCameraDemo,这是一个使用Rockchip AndroidNN GPU加速的MobileNet分类器Demo,运行时需要连接摄像头模块,USB和CSI摄像头都是支持的,通过点击 “TfLiteCameraDemo”图标进入示例,其运行效果如下所示:<br /><br />
 
[[File:TfLiteCameraDemo.png|frameless|600px]]<br />
 
[[File:TfLiteCameraDemo.png|frameless|600px]]<br />
关于Android NN SDK的详细描述,可以参考原厂的这份文档:[https://gitlab.com/friendlyelec/rk3399-android-8.1/blob/master/RKDocs/rk3399/RK3399_Android8.1_AndroidNN_SDK_V1.0_20180605%E5%8F%91%E5%B8%83%E8%AF%B4%E6%98%8E.pdf [RK3399_Android8.1_AndroidNN_SDK_V1.0_20180605发布说明.pdf]]<br />
+
关于Android NN SDK的详细描述,可以去网上参考原厂的文档<br />
 
TfLiteCameraDemo示例源代码下载地址:[https://github.com/rockchip-linux/tensorflow/tree/master/tensorflow/contrib/lite/java/demo [TfLiteCameraDemo源代码]]<br />
 
TfLiteCameraDemo示例源代码下载地址:[https://github.com/rockchip-linux/tensorflow/tree/master/tensorflow/contrib/lite/java/demo [TfLiteCameraDemo源代码]]<br />
  
===Android8.1 下使用adb===
+
===如何使用adb(Android Debug Bridge)===
 +
====在Windows10下使用adb====
 +
1. 准备一个烧写好安卓系统的 '''{{{1}}}''' ,一条Typc-C数据线<br />
 +
2. 在dl.friendlyelec.com找到 '''{{{1}}}''' 的网盘,进入后下载Tools文件夹下的adb.zip<br />
 +
[[File:T4_andriod_adb_00.jpg|frameless|800px]]<br />
 +
3. 解压adb.zip<br />
 +
[[File:T4_andriod_adb_01.jpg|frameless|800px]]<br />
 +
4. 按win+R打开“运行”窗口,输入“cmd”打开命令行工具<br />
 +
[[File:T4_andriod_adb_02.jpg|frameless|800px]]<br />
 +
5. 在命令行工具输入以下命令转到adb工具的所在路径:<br />
 +
<syntaxhighlight lang="bash">
 +
cd c:\adb
 +
</syntaxhighlight>
 +
[[File:T4_andriod_adb_03.jpg|frameless|800px]]<br />
 +
6. 输入以下命令会出现adb的版本信息和使用说明,说明adb可用:<br />
 +
<syntaxhighlight lang="bash">
 +
adb
 +
</syntaxhighlight>
 +
[[File:T4_andriod_adb_04.jpg|frameless|800px]]<br />
 +
7. 把烧写好安卓系统的 '''{{{1}}}''' 接上电源,用Type-C数据线连接 '''{{{1}}}''' 和电脑,然后在命令行工具输入:<br />
 +
<syntaxhighlight lang="bash">
 +
adb devices
 +
</syntaxhighlight>
 +
可看到返回的设备信息,说明Win10已经通过adb检测到 '''{{{1}}}''' ,之后可以在Win10下对设备进行操作<br />
 +
[[File:T4_andriod_adb_05.jpg|frameless|800px]]<br />
 +
8. 尝试在Win10下使用命令在设备上安装安卓应用,下载一个APK文件,然后输入“adb install 文件名.apk”,如:<br />
 +
<syntaxhighlight lang="bash">
 +
adb install QQ_Android_8.3.6.apk
 +
</syntaxhighlight>
 +
看到“Success”的提示即安装成功<br />
 +
[[File:T4_andriod_adb_06.jpg|frameless|800px]]<br />
 +
 
 +
====在Ubuntu下使用adb====
 +
1. 把烧写好安卓系统的 '''{{{1}}}''' 接上电源,用Type-C数据线连接 '''{{{1}}}''' 和电脑,打开“终端”<br />
 +
[[File:T4_ubuntu_adb_01.jpg|frameless|800px]]<br />
 +
2. 输入以下命令安装adb工具,这时要求输入用户密码:<br />
 +
<syntaxhighlight lang="bash">
 +
sudo apt-get install android-tools-adb
 +
</syntaxhighlight>
 +
[[File:T4_ubuntu_adb_02.jpg|frameless|800px]]<br />
 +
3. 安装过程中弹出下载提示,输入“Y”然后按Enter确认<br />
 +
[[File:T4_ubuntu_adb_03.jpg|frameless|800px]]<br />
 +
等待安装完成<br />
 +
[[File:T4_ubuntu_adb_04.jpg|frameless|800px]]<br />
 +
4. 在命令行工具输入以下命令查看设备:<br />
 +
<syntaxhighlight lang="bash">
 +
adb devices
 +
</syntaxhighlight>
 +
可看到返回的设备信息,说明Ubuntu已经通过adb检测到 '''{{{1}}}''' <br />
 +
[[File:T4_ubuntu_adb_05.jpg|frameless|800px]]<br />
 +
 
 +
====adb下修改系统文件====
 
1. 第一次启动系统,如果需要更改系统文件,需要关闭安全验证 (注:安装apk不需要关闭),关闭安全验证后需要重启
 
1. 第一次启动系统,如果需要更改系统文件,需要关闭安全验证 (注:安装apk不需要关闭),关闭安全验证后需要重启
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 82: Line 145:
 
adb push example.txt /system/
 
adb push example.txt /system/
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
====注意事项====
 +
部分电脑USB端口可能供电不足,如使用NanoPi M4系列请使用PSU Module供电
  
 
===HDMI分辨率、边界调节===
 
===HDMI分辨率、边界调节===
Line 100: Line 166:
 
wm rotation 90
 
wm rotation 90
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
===隐藏Navigation bar===
 +
进入设置界面 Settings -> Accessibility,启用 Immersive Mode,然后再打开你的 Android应用,例如 Lightning,你会发现它将处于全屏状态。
  
 
===切换音频输出通道===
 
===切换音频输出通道===

Latest revision as of 02:46, 4 August 2023

1 Android8.1 系统的使用

我们为 {{{1}}} 提供了完善的Android8.1 BSP,代码使用 gitlab.com 平台管理,完全开源,支持GPU加速和VPU硬件加速。
Rk3399android8.png


1.1 使用MIPI摄像头进行拍照和录像

{{{1}}}在Android系统下,可以搭配 MIPI摄像头CAM1320 进行拍照和录像,操作比较简单,连接摄像头到{{{1}}}的MIPI接口,开机进入 Android 系统,用系统自带的 Camera 应用即可完成拍照和录像,操作跟 Android 手机是一样的。


1.2 使用双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

最终运行效果如下:
Android dual camera demo.jpg
点击界面上的 "CAPTURE VIDEO" 按钮即可录制视频(同时录两个摄像头),录制的视频保存到以下位置:/storage/emulated/0/Download/dualcamera_h264.mp4,电脑上可以用以下adb命令下载到本地:

adb pull /storage/emulated/0/Download/dualcamera_h264.mp4

已知问题
录制的视频文件,播放时会比正常的快,可能需要调整mediacodec的某些参数


1.3 切换系统语言

Android系统默认的系统语言是英文,比如我们要设置为中文,步骤如下: 1) 进入 Android 设置:Settings -> System -> Languages & Input -> Languages;
2)点击"Add a language", 在列表中选择 "简体中文",再选择 "中国";
3) 这时列表中会有中文和英文两种语言,拖动中文那一项到列表的最上面即可,注意,如果你使用的是鼠标,拖动的方法是:将鼠标指针放在列表项右边的图标上,然后按下鼠标中键来拖动;

1.4 Android8.1 硬件访问

开发者可以通过FriendlyThings SDK在Android App中访问和控制主板上的各种硬件资源,比如Uart, SPI, I2C, GPIO等接口,详情可参考以下两份文档:

1.5 Android神经网络 NN SDK示例

Android8.1 BSP中包含了支持GPU加速的Android NN SDK,为了方便测试,Android8固件中也预装了原厂提供的Android NN示例程序:TfLiteCameraDemo,这是一个使用Rockchip AndroidNN GPU加速的MobileNet分类器Demo,运行时需要连接摄像头模块,USB和CSI摄像头都是支持的,通过点击 “TfLiteCameraDemo”图标进入示例,其运行效果如下所示:

TfLiteCameraDemo.png
关于Android NN SDK的详细描述,可以去网上参考原厂的文档
TfLiteCameraDemo示例源代码下载地址:[TfLiteCameraDemo源代码]

1.6 如何使用adb(Android Debug Bridge)

1.6.1 在Windows10下使用adb

1. 准备一个烧写好安卓系统的 {{{1}}} ,一条Typc-C数据线
2. 在dl.friendlyelec.com找到 {{{1}}} 的网盘,进入后下载Tools文件夹下的adb.zip
T4 andriod adb 00.jpg
3. 解压adb.zip
T4 andriod adb 01.jpg
4. 按win+R打开“运行”窗口,输入“cmd”打开命令行工具
T4 andriod adb 02.jpg
5. 在命令行工具输入以下命令转到adb工具的所在路径:

cd c:\adb

T4 andriod adb 03.jpg
6. 输入以下命令会出现adb的版本信息和使用说明,说明adb可用:

adb

T4 andriod adb 04.jpg
7. 把烧写好安卓系统的 {{{1}}} 接上电源,用Type-C数据线连接 {{{1}}} 和电脑,然后在命令行工具输入:

adb devices

可看到返回的设备信息,说明Win10已经通过adb检测到 {{{1}}} ,之后可以在Win10下对设备进行操作
T4 andriod adb 05.jpg
8. 尝试在Win10下使用命令在设备上安装安卓应用,下载一个APK文件,然后输入“adb install 文件名.apk”,如:

adb install QQ_Android_8.3.6.apk

看到“Success”的提示即安装成功
T4 andriod adb 06.jpg

1.6.2 在Ubuntu下使用adb

1. 把烧写好安卓系统的 {{{1}}} 接上电源,用Type-C数据线连接 {{{1}}} 和电脑,打开“终端”
T4 ubuntu adb 01.jpg
2. 输入以下命令安装adb工具,这时要求输入用户密码:

sudo apt-get install android-tools-adb

T4 ubuntu adb 02.jpg
3. 安装过程中弹出下载提示,输入“Y”然后按Enter确认
T4 ubuntu adb 03.jpg
等待安装完成
T4 ubuntu adb 04.jpg
4. 在命令行工具输入以下命令查看设备:

adb devices

可看到返回的设备信息,说明Ubuntu已经通过adb检测到 {{{1}}}
T4 ubuntu adb 05.jpg

1.6.3 adb下修改系统文件

1. 第一次启动系统,如果需要更改系统文件,需要关闭安全验证 (注:安装apk不需要关闭),关闭安全验证后需要重启

adb root
adb disable-verity
adb reboot

2. 重启后,获得root权限,并重新挂载 /system 开启写入权限

adb root
adb remount

3. 上传文件

adb push example.txt /system/

1.6.4 注意事项

部分电脑USB端口可能供电不足,如使用NanoPi M4系列请使用PSU Module供电

1.7 HDMI分辨率、边界调节

如果连接了HDMI显示设备,可进入 Android 的 Settings -> Display -> Advanced -> HDMI & Rotation 进行设置。

HDMI Resolution 缺省为 Auto,可手动设置显示分辨率,最高可支持 4K 分辨率
Screen Zoom 用户可观察红色边框的显示,点击中间的4个箭头按钮来进行缩放调节
Display Rotation 可进行横竖屏切换

1.8 屏幕旋转

使用HDMI与LCD作为显示设备时,如果需要旋转屏幕,可进入 Android 的 Settings -> Display -> Advanced -> HDMI & Rotation -> Display Rotation 进行设置。

在 adb shell 用命令来测试屏幕旋转 (不会保存设置):

wm rotation 90

1.9 隐藏Navigation bar

进入设置界面 Settings -> Accessibility,启用 Immersive Mode,然后再打开你的 Android应用,例如 Lightning,你会发现它将处于全屏状态。

1.10 切换音频输出通道

可以配置音频输出到HDMI或者耳机接口,设置入口:Android 的 Settings -> Accessibility -> Force audio output。 如果 Force audio output菜单项是灰色的,即处于不可选择的状态,说明你所用的硬件会自动检测耳机插拨状态,并自动切换音频通道,无需设置。

1.11 调整录音的音量

1) 先通过串口或adb shell,以root用户权限使用amix 命令调节录音的音量,例如:

amix "IN2 Boost"
amix "ADC Capture Volume"

以上命令用于查看当前的设置,然后便可根据支持的值来调节并测试。
2) 调试好后,修改 hardware/rockchip/audio/tinyalsa_hal/codec_config/rt5651_config.h 文件中 rt5651_main_mic_capture_controls 数组中对应配置项的值,编译Android源代码并测试。

1.12 定制开关机界面与动画

1.12.1 开启与关闭

将 device/rockchip/common/BoardConfig.mk 文件的
BOOT_SHUTDOWN_ANIMATION_RINGING := false
改为
BOOT_SHUTDOWN_ANIMATION_RINGING := true
来打开编译时将文件打包进固件的功能

1.12.2 开机动画

创建或替换Android源代码目录下的如下文件:
kernel/logo.bmp
kernel/logo_kernel.bmp
device/rockchip/common/bootshutdown/bootanimation.zip

1.12.3 关机动画

创建或替换Android源代码目录下的如下文件:
device/rockchip/common/bootshutdown/shutdownanimation.zip

1.12.4 动画制作方法

请参考:http://blog.sina.com.cn/s/blog_4960586c0100vu5v.html

1.13 移除Google框架

如果不需要使用google服务,可以删除Google框架以节约系统资源,方法是删除Android源代码中的以下目录,然后重新编译Android:
vendor/google