开发指南
Questi contenuti non sono ancora disponibili nella tua lingua.
欢迎来到 ELRS Mobile 开发指南!本项目是 ExpressLRS 编译和烧录流程的原生 Flutter 实现,旨在完全离线工作。
要为本项目做出贡献,您需要安装以下工具:
Flutter SDK(稳定版)
Dart SDK
Python 3.x
Cocoapods (iOS/macOS)
-
克隆仓库:
Terminal window git clone https://github.com/wbhinton/ELRS-Mobile.gitcd ELRS-Mobile -
安装依赖:
Terminal window flutter pub get -
运行应用程序:
Terminal window # 适用于 Androidflutter run# 适用于 iOS(需要 Mac 和实体设备/模拟器)flutter run
代码库遵循功能优先的结构,位于 lib/src/。
功能
- flashing/ 烧录流程的核心逻辑和用户界面。
- firmware_manager/ 处理从制品库下载和缓存固件。
- configurator/ 用于设置用户选项(如 Binding Phrases 和 WiFi)的用户界面。
核心
- networking/ 用于进程绑定到硬件热点的平台特定逻辑。
- storage/ 本地缓存管理和 SQLite 持久化。
- analytics/ 隐私优先的可观测性(Sentry 和 Aptabase)。
我们使用 Riverpod 进行全局状态管理,并使用 Flutter Hooks 进行局部小部件级状态管理。这种组合确保了高度响应式的用户界面,同时避免了标准 StatefulWidgets 的样板代码。
如需更详细的技术信息,请参阅以下指南:
关于 JSON 最小化的注意事项
Section titled “关于 JSON 最小化的注意事项”在审计二进制文件时,您可能会注意到与标准 Python Configurator 相比存在细微的字节偏移。这是由于 JSON 最小化造成的。
Python Configurator 通常在冒号后注入空格(例如,{"uid": [1,2,3]}),而 ELRS Mobile 则生成紧凑的 JSON(例如,{"uid":[1,2,3]})。两者在硬件功能上是相同的,因为 ESP32 的内部解析器会忽略这些空格。