工程结构与文档布局
Flutter-JL_Home(杰理之家 Demo)是珠海市杰理科技股份有限公司基于 RCSP 协议(远程控制系统协议) 打造的蓝牙控制开发平台。本文档讲解该仓库的顶层目录组织、code/ 参考工程、doc/ 文档中心与 libs/ 核心接口的布局方式,以及 README 文档体系的导航约定。
Purpose and Scope
本页面向首次接触该仓库的开发者,回答三个问题:
- 仓库里有什么 —— 根目录、
code/、doc/、libs/各目录的职责边界; - 工程内部如何组织 ——
JieLi_Home_DemoFlutter 工程与 Android 原生层、AAR 依赖库的摆放方式; - 文档如何布局 —— README 九个章节的导航结构、中英文文档对应关系、文档中心的定位。
以下内容不属于本页范围,由其他目录页或官方文档中心覆盖:
- RCSP 发送/接收接口的协议细节 —— 见
doc/目录中的《Jieli Home Demo (Flutter) - Send/Receive Interface Introduction》及libs/目录; - 具体功能(音乐控制、EQ、ANC、OTA 等)的实现 —— 见功能模块对应页面;
- 环境搭建与调试操作 —— 见「快速开始」与「调试技巧」相关页面。
Overview
仓库定位
Flutter-JL_Home 是一个 Flutter 应用示例 + SDK 集成参考 混合形态的仓库,而不是一个纯库工程。它面向三类场景:
| 应用类型 | 典型产品 |
|---|---|
| 音箱类产品 | 智能音箱、蓝牙音箱、便携音箱、Auracast 音箱 |
| 耳机类产品 | TWS 耳机、头戴式耳机、挂脖耳机、彩屏仓、翻译耳机 |
| 音频设备 | 蓝牙音频接收器、音频解码器、声卡、录音笔 |
来源:README.md
Demo 覆盖的功能接口包括音乐控制、设备设置、文件浏览、闹钟管理、FM 控制、灯光控制、音效调节、按键设置、查找设备、ANC 设置、彩屏仓控制、AI 翻译与自定义命令(详见 README.md 功能表)。
仓库形态的关键设计意图
- 示例与参考分离:
code/是可直接导入 Android Studio 的完整 Flutter 工程;libs/与doc/是配套的接口说明与收发接口描述,避免把协议文档塞进代码工程,降低示例工程的耦合度。 - 中英双语文档并行:根目录同时维护
README.md(中文)与README_EN.md(英文),doc/内同样有中英文双份接口文档,保证国内外开发者看到的信息一致。 - 原生依赖收敛:Android 端以预编译
.aar形式集中存放在code/JieLi_Home_Demo/android/libs/,通过 Gradle 直接引用,开发者无需自行编译 SDK。
Architecture
下图展示仓库顶层目录的角色划分与依赖关系(基于 README.md 工程结构章节 与仓库实际文件列表):
flowchart TD
subgraph sg_Root["仓库根目录 Flutter-JL_Home"]
README["README.md<br/>中文总览与导航"]
README_EN["README_EN.md<br/>英文总览与导航"]
LICENSE["LICENSE<br/>Apache 2.0"]
end
subgraph sg_Code["code/ 参考源码工程"]
DEMO["JieLi_Home_Demo<br/>杰理之家 Demo (Flutter)"]
subgraph sg_Demo["Flutter 工程内部"]
PUBSPEC["pubspec.yaml / pubspec.lock<br/>Flutter 依赖清单"]
ANALYSIS["analysis_options.yaml<br/>Lint 规则"]
ANDROID["android/<br/>原生层 + AAR 依赖"]
DOCR["README.md<br/>工程级说明"]
end
end
subgraph sg_Doc["doc/ 文档中心"]
DOC_ZH["接口说明(中文)"]
DOC_EN["接口说明(英文)"]
DOC_TXT["ReadMe.txt 说明"]
end
subgraph sg_Libs["libs/ 核心收发接口"]
RX["Receive Interface"]
TX["Send Interface"]
end
README -->|"入口导航"| README_EN
README -->|"指向"| DEMO
README -->|"指向"| DOC_ZH
README -->|"指向"| RX
README -->|"指向"| TX
DEMO --> PUBSPEC
DEMO --> ANALYSIS
DEMO --> ANDROID
DEMO --> DOCR
DOC_ZH <-->|"中英对照"| DOC_EN
各目录职责
| 目录/文件 | 职责 | 说明 |
|---|---|---|
README.md | 中文总入口 | 概述、运行环境、快速开始、工程结构、配置、调试、社区、版本、许可证九个章节 |
README_EN.md | 英文总入口 | 与中文 README 章节一一对应 |
LICENSE | 开源协议 | Apache License 2.0 |
code/ | 参考源码工程 | 内含 JieLi_Home_Demo Flutter 项目 |
doc/ | 文档中心 | 发送/接收接口介绍(中/英)与 ReadMe.txt |
libs/ | 核心收发接口 | Receive Interface(接收接口)与 Send Interface(发送接口) |
说明:
doc/与libs/目录的内容以 README 工程结构章节描述为准;当前仓库快照中可直接确认的文件实体集中在code/下。若在 Git 客户端中未见doc/、libs/实体,请以 README.md 的目录树为准并结合 Tag 版本核对。
主内容:code/JieLi_Home_Demo 工程内部布局
code/ 目录下只有一个工程 JieLi_Home_Demo,它是仓库的核心可运行示例。从仓库文件列表可以确认其顶层组件:
Flutter 工程元文件
| 文件 | 作用 |
|---|---|
pubspec.yaml / pubspec.lock | Flutter/Dart 依赖清单与锁定版本 |
analysis_options.yaml | 静态分析(Lint)规则配置 |
LICENSE | 工程级许可证(Apache 2.0) |
README.md | 工程级说明 |
Android 原生层
android/ 子目录承载原生构建配置与资源:
build.gradle/settings.gradle:Gradle 构建脚本;proguard-rules.pro:混淆规则;src/main/AndroidManifest.xml:Android 清单文件;src/main/assets/charging_case/...:彩屏仓相关资源(如320x172/boot/ANI1.gif、screen/anim/lock/ANI2.gif),用于充电仓屏幕保护与开机动画;schemas/com.jieli.bt.sdk.tool.room.AppDatabase/5.json:Room 数据库 Schema,版本 5,说明 SDK 内部使用 Room 持久化数据;libs/:预编译 SDK 依赖(AAR)。
AAR 依赖库清单
android/libs/ 集中存放杰理各功能模块的预编译库,是理解 Demo 能力边界的重要依据:
| AAR 库 | 对应能力 |
|---|---|
jl_bluetooth_rcsp_V4.2.0_40250-release.aar | RCSP 蓝牙控制核心协议 |
jl_bt_ota_V1.10.0_10932-release.aar | 蓝牙 OTA 升级 |
jl_audio_V1.3.0_10301-release.aar / jl_audio_v2_V1.0.0_9-release.aar / jl_audio_decode_V2.1.0_20012-release.aar | 音频播放与解码 |
jl_eq_V1.1.0_10101-release.aar | 均衡器(EQ)音效 |
jl_http_V1.3.0_10300-release.aar | HTTP 网络能力 |
jl_file_transfer_V1.0.0-release.aar | 文件传输 |
BmpConvert / GifConvert | 图片格式转换(彩屏仓素材) |
jl-component-lib_V1.4.0_10400-release.aar | 通用组件库 |
jldecryption_v0.4-release.aar | 数据解密 |
依据:仓库
code/JieLi_Home_Demo/android/libs/文件列表。版本号随 SDK 迭代更新,集成时以本仓库 Tag 为准。
这种「核心协议 AAR + 能力模块 AAR + 组件 AAR」的分层方式,使 Demo 可以按需裁剪:只需要基础控制的客户可以只引入 jl_bluetooth_rcsp,需要音效的再叠加 jl_eq。
主内容:doc/ 与 libs/ 布局
doc/ —— 文档中心
按 README 描述,doc/ 包含:
- 《Jieli Home Demo (Flutter) - Send/Receive Interface Introduction.md》(中文):发送/接收接口介绍;
- 《Jieli Home Demo (Flutter) - Send/Receive Interface Introduction_en.md》(英文):同上内容的英文版;
- ReadMe.txt:说明文件。
设计意图:发送/接收接口是 RCSP 协议面向业务的关键抽象,单独成文便于在 Demo 代码之外维护协议级说明,也便于与 libs/ 目录的接口源码对照阅读。
libs/ —— 核心收发接口
- Receive Interface:杰理之家 Demo 的接收接口(设备 → App 方向);
- Send Interface:杰理之家 Demo 的发送接口(App → 设备方向)。
收发分离的目录命名与协议文档一一对应,开发者按「发送什么指令 / 接收什么回调」两条路径检索代码,降低理解成本。
主内容:文档导航约定(README 九章结构)
根目录 README 是仓库的「地图」,其章节顺序即推荐的阅读路径:
| 章节 | 内容 | 面向读者 |
|---|---|---|
| 一、概述 | 平台定位、支持产品、功能列表 | 所有人 |
| 二、运行环境 | OS/硬件/开发平台要求 | 集成方 |
| 三、快速开始 | 克隆、导入、插件引用、运行 | 集成方 |
| 四、工程结构 | 顶层目录树 | 所有人 |
| 五、配置说明 | Demo 配置要点 | 集成方 |
| 六、调试技巧 | 日志查看与问题排查 | 集成方 |
| 七、社区与支持 | 官网、Issues、资源链接 | 所有人 |
| 八、版本历史 | 版本号与修改记录 | 集成方 |
| 九、许可证 | Apache 2.0 | 所有人 |
来源:README.md 目录
中英文 README 章节完全对齐(英文版为 1. Overview 至 9. License),因此跨语言协作时可按章节号互指。
核心流程:从克隆到接入的导航路径
仓库的文档布局设计了一条明确的「上手流水线」。新开发者按以下顺序前进即可完成从了解仓库到跑通 Demo 的闭环:
sequenceDiagram
participant Dev as 开发者
participant Repo as 仓库根目录
participant Doc as doc/ 文档中心
participant Demo as code/JieLi_Home_Demo
participant Libs as libs/ 接口目录
Dev->>Repo: 阅读 README.md(一、概述)
Repo-->>Dev: 确认产品/功能适用性
Dev->>Repo: 二、运行环境 + 三、快速开始
Repo-->>Dev: 环境要求与克隆/导入步骤
Dev->>Demo: 导入 code/JieLi_Home_Demo
Demo-->>Dev: 运行示例 App
Dev->>Doc: 查阅收发接口文档(doc/)
Doc-->>Dev: 协议级接口说明
Dev->>Libs: 对照 libs/ 收发接口源码
Libs-->>Dev: 具体调用示例
Dev->>Repo: 六、调试技巧(日志排查)
Repo-->>Dev: Logcat / Xcode Console
各步骤要点:
- 读概述:通过功能表判断 Demo 是否覆盖目标产品(音箱/耳机/音频设备);
- 查环境:确认 Android 6.0+ / iOS 13.0+,硬件需支持 RCSP 的 SDK(AC701N、AC707N、AC697N、AC696N、AC695N 等,见 README.md 运行环境);
- 导入工程:Android Studio 打开
code/JieLi_Home_Demo; - 看文档:协议层疑问进入
doc/的中英文接口文档; - 对源码:收发细节对照
libs/目录; - 查日志:Android 用 Logcat、iOS 用 Xcode Console(README.md 调试技巧)。
使用示例
以下示例均从仓库实际文件中提取。
示例 1:克隆仓库与目录定位
git clone https://github.com/Jieli-Tech/Flutter-JL_Home.git
cd Flutter-JL_Home
Source: README.md
克隆后按 README「四、工程结构」的目录树定位三类内容:
Flutter-JL_Home/
├── code/ # 参考源码工程文件夹
│ └── JieLi_Home_Demo # 杰理之家Demo(Flutter)项目源码
├── doc/ # 文档文件夹
│ ├── Jieli Home Demo (Flutter) - Send/Receive Interface Introduction_en.md # 英文文档
│ ├── Jieli Home Demo (Flutter) - Send/Receive Interface Introduction.md # 中文文档
│ └── ReadMe.txt # 说明文件
└── libs/ # 核心收发接口文件夹
├── Receive Interface # 杰理之家Demo(Flutter)的接收接口
└── Send Interface # 杰理之家Demo(Flutter)的发送接口
Source: README.md
示例 2:插件引用(接入方集成方式)
接入方工程通过以下 pubspec.yaml 片段声明杰理蓝牙插件:
plugin:
platforms:
android:
package: com.jieli.bt.sdk
pluginClass: JlHomePlugin
ios:
pluginClass: JlHomePlugin
Source: README.md
该片段揭示了两条工程组织信息:Android 端插件包名为 com.jieli.bt.sdk(与 Room 数据库 Schema 路径 com.jieli.bt.sdk.tool.room.AppDatabase 一致),插件类为 JlHomePlugin,iOS 端使用同一插件类名,即 Flutter 层 API 跨平台统一。
示例 3:版本与许可证信息定位
| 版本 | 日期 | 修改记录 |
|------|------|----------|
| 1.0.0 | 2026/07/02 | 初始版本|
Source: README.md
版本历史位于 README 第八章,许可证(Apache License 2.0)位于第九章并附完整协议文本(README.md L197-L215)。
配置要点(仓库与工程层面)
仓库本身不提供运行时配置,但文档布局中明确定义了环境与工程级配置项,汇总如下(依据 README.md):
| 配置项 | 类型 | 默认/要求 | 说明 |
|---|---|---|---|
| 操作系统 | 运行环境 | Android 6.0+ / iOS 13.0+ | 需支持 BLE 功能 |
| 硬件 SDK | 运行环境 | 支持 RCSP 功能 | AC701N、AC707N、AC697N、AC696N、AC695N 等 |
| 开发平台 | 工具链 | Android Studio(支持 Flutter) | 建议使用最新版 |
| 语言支持 | 工具链 | Dart / Kotlin / Swift | 提供完整 API 支持 |
| Android 插件包名 | 集成配置 | com.jieli.bt.sdk | Flutter 插件声明 |
| 插件类名 | 集成配置 | JlHomePlugin | Android/iOS 共用 |
| 开源协议 | 工程配置 | Apache License 2.0 | 见根目录 LICENSE |
边界情况与注意事项
以下事项基于仓库实际文件状态与 README 描述整理:
- 目录实体与文档描述的差异:根目录可直接确认的文件实体为
README.md、README_EN.md、LICENSE与code/下的工程文件;doc/、libs/的目录树以 README「四、工程结构」为准。若在某一提交/Tag 中未见这些目录,请核对当前 Tag 版本,避免误判仓库缺失内容。 - 版本号依赖:
android/libs/中各 AAR 版本号(如jl_bluetooth_rcsp_V4.2.0、jl_bt_ota_V1.10.0)与 SDK 发版节奏绑定,集成方应跟随仓库 Tag 升级,勿混用不同版本的 AAR。 - 中英文文档一致性:
README.md与README_EN.md、doc/中中英文接口文档按章节一一对应,但翻译内容可能存在滞后;以中文版为准时请留意英文版更新时间。 - 资源体积:
code/JieLi_Home_Demo/android/src/main/assets/charging_case/内含 GIF 动画资源(如ANI1.gif、ANI2.gif),会增大 APK 体积;仅做基础音箱控制的客户可按需裁剪彩屏仓相关资源。
扩展点
仓库的工程结构为二次开发预留了清晰的位置:
- 新增业务功能:在
code/JieLi_Home_Demo的 Flutter 层新增页面/逻辑,通过JlHomePlugin调用原生能力; - 接入新硬件能力:以
android/libs/的 AAR 分层为参照,新增对应能力模块(如新的编解码、传输协议库); - 自定义命令:README 概述中明确支持「自定义命令」客户拓展功能,相关收发接口在
libs/的 Send/Receive Interface 中扩展; - 文档贡献:新增协议说明时遵循
doc/的中英文双文档约定,并在根目录 README 目录树中同步登记。
Related Links
- README.md(中文总览)
- README_EN.md(英文总览)
- LICENSE(Apache 2.0)
- JieLi_Home_Demo 工程 README
- JieLi_Home_Demo pubspec.yaml
- 相关目录页:快速开始 / 配置说明 / 调试技巧 / 收发接口说明(Send/Receive Interface)