Диагностические инструменты и управление питанием
Отладка фоновой геолокации крайне сложна, особенно на фрагментированных устройствах Android с агрессивной экономией заряда батареи. Tracelet предоставляет набор инструментов, которые помогут вам визуализировать работу механизма и смягчить ограничения OEM.
Треслет Доктор
Tracelet Doctor (tracelet_doctor) — это встраиваемая панель пользовательского интерфейса, которая визуализирует внутреннее состояние механизма Tracelet в режиме реального времени. Это необходимо для полевых испытаний.
Никогда не развертывайте Tracelet Doctor для обычных конечных пользователей в производстве. Защитите точку входа с помощью скрытого меню разработчика (например, нажав номер версии 7 раз).
Установка
Tracelet Doctor — это инструмент отладки, поэтому добавьте его как зависимость от разработчиков, а не как регулярная зависимость. Flutter исключает пакеты, зависящие от разработки, из сборок выпуска, поэтому Доктор автоматически исключается из того, что вы отправляете пользователям:
flutter pub add dev:tracelet_doctorЭто добавит его в dev_dependencies в вашем pubspec.yaml:
dev_dependencies:
tracelet_doctor: ^3.6.6Интеграция
Поскольку это зависимость от разработчиков, защищайте каждую ссылку на нее за kDebugMode, чтобы
import is tree-shaken out of release builds and your app still compiles in release mode:
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:tracelet_doctor/tracelet_doctor.dart';
// Show the interactive diagnostic overlay — debug builds only:
if (kDebugMode) {
TraceletDoctor.show(context);
}Основные функции
Панель мониторинга предоставляет 5 важных вкладок для отладки:
-
Обзорная панель Отображает состояние
isMovingв реальном времени, текущие координаты GPS, точность (в метрах), уровень заряда батареи и активныйTraceletProfile. Если двигатель находится в состоянииSTATIONARY, на этом экране будет явно показано, что оборудование GPS выключено. -
Живая карта геозоны Визуальная карта, отображающая ваше текущее местоположение, границы
stationaryRadiusи все зарегистрированные геозоны (как круглые, так и сложные многоугольные зоны). Важно отметить, что он визуализируетgeofenceProximityRadius, поэтому вы можете убедиться, что геозоны динамически загружаются и выгружаются по мере вашего перемещения. -
Инспектор базы данных Непосредственно проверьте необработанные строки SQLite. Вы можете увидеть, сколько местоположений поставлено в очередь для HTTP-синхронизации, проверить, успешно ли логика дельта-сжатия сжала координаты, и вручную запустить очистку.
-
Консоль журнала Живой поток собственных журналов SDK с цветовой кодировкой (трассировка, отладка, информация, предупреждение, ошибка). Здесь вы можете увидеть, как двигатель принимает решения: “Обнаружено 65 миль в час, расстояние фильтра увеличено до 50 м”.
-
Инспектор конфигурации Средство просмотра дерева JSON, показывающее точный объект
Config, который в настоящее время внедрен в собственный движок, гарантируя, что ваша конфигурация Dart успешно пересекла канал платформы.
OEM Power Manager (Состояние настроек)
Китайские OEM-производители (Xiaomi, Huawei, Oppo, Vivo, OnePlus) поставляют очень агрессивные запатентованные менеджеры батареи, которые полностью игнорируют стандартные правила приоритетного обслуживания Android.
Чтобы узнать, как Tracelet обрабатывает эти устройства и какие производители поддерживаются, прочтите наше специальное руководство OEM Power Management 📖.