Руководство по разработке
Добро пожаловать в руководство по разработке ELRS Mobile! Этот проект представляет собой нативную реализацию Flutter конвейера компиляции и прошивки ExpressLRS, разработанную для работы полностью в автономном режиме.
Предварительные требования
Заголовок раздела «Предварительные требования»Чтобы внести свой вклад в этот проект, вам понадобятся следующие установленные инструменты:
Начало работы
Заголовок раздела «Начало работы»-
Клонируйте репозиторий:
Окно терминала git clone https://github.com/wbhinton/ELRS-Mobile.gitcd ELRS-Mobile -
Установите зависимости:
Окно терминала flutter pub get -
Запустите приложение:
Окно терминала # Для Androidflutter run# Для iOS (требуется Mac и физическое устройство/симулятор)flutter run
Архитектура проекта
Заголовок раздела «Архитектура проекта»Кодовая база следует структуре, ориентированной на функции, расположенной в lib/src/.
Функции
- flashing/ Основная логика и пользовательский интерфейс для конвейера прошивки.
- firmware_manager/ Обрабатывает загрузку и кэширование firmware из artifactory.
- configurator/ Пользовательский интерфейс для настройки пользовательских параметров, таких как Binding Phrases и WiFi.
Ядро
- networking/ Логика, специфичная для платформы, для привязки процессов к аппаратным точкам доступа.
- storage/ Управление локальным кэшем и сохранение данных в SQLite.
- analytics/ Наблюдаемость, ориентированная на конфиденциальность (Sentry и Aptabase).
Управление состоянием
Заголовок раздела «Управление состоянием»Мы используем Riverpod для глобального управления состоянием и Flutter Hooks для локального состояния на уровне виджетов. Эта комбинация обеспечивает высокореактивный пользовательский интерфейс без шаблонного кода стандартных StatefulWidgets.
Подробные обзоры
Заголовок раздела «Подробные обзоры»Для получения более подробной технической информации, пожалуйста, обратитесь к следующим руководствам:
- Техническая архитектура: Подробное описание
FirmwareAssemblerи нативного сетевого стека. - Проверка прошивки: Как использовать инструменты Dart и Python для проверки целостности binary.
Примечание о минификации JSON
Заголовок раздела «Примечание о минификации JSON»При аудите binaries вы можете заметить небольшие byte-offsets по сравнению со стандартным Python Configurator. Это связано с минификацией JSON.
Python Configurator часто вс��авляет пробелы после двоеточий (например, {"uid": [1,2,3]}), в то время как ELRS Mobile генерирует плотный JSON (например, {"uid":[1,2,3]}). Оба функционально идентичны на аппаратном уровне, поскольку внутренний парсер ESP32 игнорирует этот whitespace.