[Taiga #32] Режим тупого радара для минимального графического дисплея #3

Open
opened 2026-05-20 04:09:06 +00:00 by Grigo · 0 comments
Owner

Linked Taiga story: #32

Suggested branch:
feature/taiga-32-rezhim-tupogo-radara-dlya-minimalnogo-graficheskogo-displeya

Project type: work
AI tags: work, ais, android, performance, graphics-optimization, low-power-device, radar-mode, ais-visualization

Description

Реализовать упрощённый режим визуализации АИС точек на низкомощных устройствах. Режим должен минимизировать нагрузку на процессор и GPU за счёт упрощения графики: простые точки/квадраты вместо текстур, отключение анимаций, минимальное количество слоёв. Учитывать существующую архитектуру MapLibreMapImpl.java и систему режимов в SettingsManager.java.

Taiga: https://tasks.grigowashere.ru/project//us/32

Acceptance criteria

  • В SettingsManager добавлен новый режим 'Режим тупого радара' (Dumb Radar Mode) с сохранением в SharedPreferences
  • При включении режима вместо текстур судов отображаются простые цветные точки/квадраты размером 4-8px
  • Отключены все анимации движения судов в режиме (прямое обновление позиции без плавного перемещения)
  • Удалены детальные иконки и векторная графика, используются только растровые примитивы
  • Количество одновременно отрисовываемых меток сокращено (вероятно, вернуть на экран только видимые в текущем zoom)
  • В UI добавлен переключатель режима в activity_settings.xml с описанием 'Упрощённая визуализация для слабых устройств'
  • Производительность (FPS/рендер-время) на устройстве с низкими характеристиками улучшена минимум на 30%
  • Все остальные режимы данных (гибридный, NMEA, Android GPS) совместимы с режимом тупого радара

Code notes

  • В SettingsManager.java уже существует система режимов (HYBRID, NMEA_ONLY, ANDROID_ONLY). Режим радара должен быть ортогональным, т.е. независимым флагом, работающим в комбинации с любым режимом данных.
  • MapLibreMapImpl.java содержит методы updateAISMarker(), createVesselClusterLayers() и обновление позиций. Здесь нужно добавить проверки на режим радара и переключать логику рендеринга.
  • Файлы из rawAssets/PNG/ содержат иконки судов (Target, ChosenTarget, LosingTarget, Moored, Engine и др.). В режиме радара они не должны загружаться/использоваться.
  • CompassView.java и CoordinatesDockWidget.java имеют dock/draggable режимы. Убедиться, что режим радара не конфликтует с этой логикой.
  • В базовой архитектуре NMEAController.java настраивает источники данных. Режим радара это чисто визуальная опция, поэтому не должен менять логику парсинга/обработки данных.
  • Вероятно, потребуется новый метод в MapInterface (абстрактный класс) для применения режима радара к разным реализациям карт (MapLibreMapImpl, MapForgeImpl и др.).

Questions

  • Какой целевой диапазон характеристик устройства (модель, Android версия, объём памяти)? Есть конкретные низкомощные устройства для тестирования?
  • Должны ли разные типы судов (AIS класс A/B, своё судно, якорь, рыболовство) иметь разные цвета точек в режиме радара, или единая цветовая схема?
  • Требуется ли отображение информационного слоя морских знаков (вероятно, из MapLibreMapImpl.java:3131) в режиме радара, или полностью отключить?
  • Нужно ли сохранять историю маршрутов/треков в режиме радара, или только текущие позиции?
  • Какой целевой прирост производительности считать успехом (30%, 50%, 2x)?
  • Применять ли режим радара ко всем источникам данных (UDP, Android NMEA, BLE) одинаково, или есть специфика?
Linked Taiga story: #32 Suggested branch: `feature/taiga-32-rezhim-tupogo-radara-dlya-minimalnogo-graficheskogo-displeya` Project type: `work` AI tags: work, ais, android, performance, graphics-optimization, low-power-device, radar-mode, ais-visualization ## Description Реализовать упрощённый режим визуализации АИС точек на низкомощных устройствах. Режим должен минимизировать нагрузку на процессор и GPU за счёт упрощения графики: простые точки/квадраты вместо текстур, отключение анимаций, минимальное количество слоёв. Учитывать существующую архитектуру MapLibreMapImpl.java и систему режимов в SettingsManager.java. Taiga: https://tasks.grigowashere.ru/project//us/32 ## Acceptance criteria - В SettingsManager добавлен новый режим 'Режим тупого радара' (Dumb Radar Mode) с сохранением в SharedPreferences - При включении режима вместо текстур судов отображаются простые цветные точки/квадраты размером 4-8px - Отключены все анимации движения судов в режиме (прямое обновление позиции без плавного перемещения) - Удалены детальные иконки и векторная графика, используются только растровые примитивы - Количество одновременно отрисовываемых меток сокращено (вероятно, вернуть на экран только видимые в текущем zoom) - В UI добавлен переключатель режима в activity_settings.xml с описанием 'Упрощённая визуализация для слабых устройств' - Производительность (FPS/рендер-время) на устройстве с низкими характеристиками улучшена минимум на 30% - Все остальные режимы данных (гибридный, NMEA, Android GPS) совместимы с режимом тупого радара ## Code notes - В SettingsManager.java уже существует система режимов (HYBRID, NMEA_ONLY, ANDROID_ONLY). Режим радара должен быть ортогональным, т.е. независимым флагом, работающим в комбинации с любым режимом данных. - MapLibreMapImpl.java содержит методы updateAISMarker(), createVesselClusterLayers() и обновление позиций. Здесь нужно добавить проверки на режим радара и переключать логику рендеринга. - Файлы из rawAssets/PNG/ содержат иконки судов (Target, ChosenTarget, LosingTarget, Moored, Engine и др.). В режиме радара они не должны загружаться/использоваться. - CompassView.java и CoordinatesDockWidget.java имеют dock/draggable режимы. Убедиться, что режим радара не конфликтует с этой логикой. - В базовой архитектуре NMEAController.java настраивает источники данных. Режим радара это чисто визуальная опция, поэтому не должен менять логику парсинга/обработки данных. - Вероятно, потребуется новый метод в MapInterface (абстрактный класс) для применения режима радара к разным реализациям карт (MapLibreMapImpl, MapForgeImpl и др.). ## Questions - Какой целевой диапазон характеристик устройства (модель, Android версия, объём памяти)? Есть конкретные низкомощные устройства для тестирования? - Должны ли разные типы судов (AIS класс A/B, своё судно, якорь, рыболовство) иметь разные цвета точек в режиме радара, или единая цветовая схема? - Требуется ли отображение информационного слоя морских знаков (вероятно, из MapLibreMapImpl.java:3131) в режиме радара, или полностью отключить? - Нужно ли сохранять историю маршрутов/треков в режиме радара, или только текущие позиции? - Какой целевой прирост производительности считать успехом (30%, 50%, 2x)? - Применять ли режим радара ко всем источникам данных (UDP, Android NMEA, BLE) одинаково, или есть специфика?
Sign in to join this conversation.