rk3399开发环境使用Android 10初体验蓝牙功能
版本 | 日期 | 作者 | 变更表述 |
1.0 | 2024/11/10 | 于忠军 | 文档创建 |
零. 前言
由于Bluedroid的介绍文档有限,以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等),加上需要掌握的语言包括Java/C/C++等,加上网络上其实没有一个完整的介绍Bluedroid系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度,学习曲线也相对较陡,所以我有了这个想法,专门对Bluedroid做一个系统性的介绍,尽可能的涵盖所有内容。
-------------------------------------------------------------------------------------------------------------------------
蓝牙视频教程(跟韦东山老师合作), 其中专题21就是专门针对Bluedroid做的系统介绍
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.20.5aeb41f98e267j&id=693788592796
--------------------------------------------------------------------------------------------------------------------------
一. RK3399开发板介绍
1. 开发板介绍
我们整个用的开发板环境是Firefly的RK3399 PC pro开发板
资料连接如下:
Firefly | 让科技更简单,让生活更智能
发货清单(仅供参考) — Firefly Wiki
当然我们这一系列Bluez的教程,你也可以用其他开发板
整个开发板的参数如下:
2. 蓝牙模组介绍
整个开发板默认的板载BT/Wi-Fi模组是正基的AP6256,
- AP6256是正基科技推出的一款低成本,低功耗的双模模块。是一款SDIO接口单通道802.11ac双频支持BT5.0 蓝牙WiFi二合一模块。
- Model:AP6256:SDIO WIFI + UART BT
- Chip:BCM43456
- WiFi: 2.4G&5G
- BT:5.0
pin的定义如下:
3. 主控跟蓝牙模组接线介绍
二. 软件环境
1. image镜像
我这边是用的android 10的镜像,下载链接如下:
百度网盘 请输入提取码
提取码:1234
2. 烧录介绍
烧写image的链接为:2. 使用USB线缆升级固件 — Firefly Wiki
NOTED: firefly这块资料更新的不好,或者他们资料太多,忘记更新,所以很多地方工具的更新跟文档并不能及时同步,所以导致给人很乱的感觉,所以你就按照我的说法来做就行了,我已经淌过坑。
我使用的是windows的下载方式,方式如下:
a. 安装RK USB驱动
下载 Release_DriverAssistant.zip,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱动,请先选择驱动卸载,然后再选择驱动安装。
b. 安装AndroidTool
AndroidTools为旧版本叫法,新版本改名为RKDevTool 提取码:1234
下载链接如下:Firefly | 让科技更简单,让生活更智能
如果你用AndridTool就要严格按照版本要求,我是直接使用的事RKDevTool来烧录的
我们烧录的是android 10
c. 进入升级模式
通常我们升级固件的模式有两种,分别是Loader模式和MaskRom模式。烧写固件前,我们需要连接好设备,并让板子进入到可升级模式。我们就默认用Loader模式了
Loader模式
硬件方式进入Loader模式
连接设备并通过RECOVERY按键进入Loader升级模式步骤如下:
- 先断开电源适配器连接
- Type-C data cable连接好设备和主机。
- 按住设备上的 RECOVERY (恢复)键并保持。
- 插上电源
- 大约两秒钟后,松开 RECOVERY 键。
查看Loader模式
如何确定板子是否进入Loader模式,我们可以通过工具去查看
Windows操作系统
通过AndroidTool工具可以看到下方提示Found One LOADER Device
如果有进行“进入Loader模式”的操作,仍旧没有看到烧写工具提示LOADER,此时可以看一下Windows主机是否有提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,可返回上一步重新安装驱动。
d. 下载
通过Firmware选择固件生成路径
通过Upgrade下载
3. 验证
a. debug设置
对于接线我们不一定非要采用firefly的串口小板,你也可以自己选择usb转串口模块。线如下:
ROC-RK3399-PC Pro 使用以下串口参数:
- 波特率:1500000
- 数据位:8
- 停止位:1
- 奇偶校验:无
- 流控:无
b. 查看android版本
getprop "ro.build.version.release"
c. 查看内核版本
uname -a
三. 蓝牙enable验证
下载一个scrcpy,这个工具就是使用adb来投屏
https://github.com/Genymobile/scrcpy/releases/download/v1.24/scrcpy-win64-v1.24.zip
添加环境变量
在cmd中敲命令scrcpy
四. 重新整个编译代码
1. 代码路径
百度网盘 请输入提取码
提取码:1234
下载后检查md5值,检查下载是否正确:
解压:
cd ~/path // 你的真实路径
7z x ./Firefly-RK3399_Android10.0_git_20211222.7z.001 -ork3399_Android10.0
cd ./rk3399_Android10.0
git reset --hard
2. 编译
./FFTools/make.sh -d rk3399-roc-pc-plus -j8 -l rk3399_roc_pc_plus-userdebug ./FFTools/mkupdate/mkupdate.sh -l rk3399_roc_pc_plus-userdebug
生成的整个image在 rockdev/Image-rk3399_roc_pc_plus/ROC-RK3399-PC-Pro_Android10_HDMI_221130.img
过程中解决错误(每个电脑的环境肯定不一致,遇到啥问题解决啥问题):
sudo apt-get install gawk
编译特定的模块
source ./FFTools/build.sh
lunch rk3399_roc_pc_plus-userdebug
mmm development/tools/idegen/