Android · офлайн-сбор данных · версия 1.5.2

Телефон, который работает
как настоящий прибор.

Signal Collector непрерывно записывает данные датчиков, радио и сети, до которых телефон может дотянуться, — прямо в телефон, без облачного хранилища и без того, чтобы измеренные данные покидали устройство.

Настоящие снимки · Pixel 10a

  1. Идущее измерение с раскрытым кольцом

    Идущее измерение. Кольцо показывает спутники, сети и датчики по мере их поступления.

  2. Выбор технологий для измерения

    Выбор того, что измеряется. Каждый источник — строка, которая говорит, что он записывает.

  3. Кнопки управления во время идущего измерения

    Старт, сброс и стоп, над ними — длительность, расстояние и число записей.

  4. Состояние сбора и панель экспорта

    Низ панели: чем занят каждый источник и файл, который уходит из телефона.

  5. Меню настроек, открытое из заголовка

    Настройки: отправка на собственный сервер, единицы и то, что происходит после остановки.

Локально Room / SQLite в телефоне, ничто не уходит само
Непрерывно Продолжает собирать при заблокированном экране
Под рукой Четыре виджета, плитка в быстрых настройках и шторка
Экспорт TXT или GZIP, выбирается по размеру

Внутренний тест

Следующая версия — раньше, чем её получит магазин.

Каждая сборка попадает во внутреннее тестирование раньше, чем уходит в продакшен. Присоединитесь тем аккаунтом Google, под которым работает телефон, и обновление придёт как любое другое.

Один сеанс.
Весь контекст.

Каждый случай заканчивается
файлом.

Измерительный прибор продаётся не списком источников, а вопросом, на который умеет ответить. Шесть из двенадцати ситуаций, ради которых сделано приложение, — каждый раз проход и файл в его конце.

01

Мёртвая зона в переговорной

Пройдите этаж с телефоном в кармане и у каждой двери наговорите заметку. На выходе — пропускная способность по секундам, точка доступа, на которой телефон был на самом деле, и комната вместо спора двух отделов.

02

Drive test без фургона

Обе SIM сканируют, GPS раз в секунду, телефон заперт на приборной панели. Каждая смена технологии, Cell ID или PCI ложится событием, так что хендоверы выходят привязанными к метру.

03

Съёмка там, где GPS не даёт ничего

На складе небо — это крыша. Отметьте каждый проход снимком из видоискателя приложения и собирайте точки доступа, соединения MLO и расстояния по RTT — карта покрытия до покупки первой новой точки.

04

Датчики, которые сообщают сами

По зданию висят десятки термометров BLE, и ни один не сопряжён. Пройдите мимо — их температура, влажность и напряжение батареи придут названными и в единицах СИ, рядом с байтами, из которых они получены.

05

Доказательство для арендодателя

Десять минут ходьбы дают файл с отметкой времени, положением, уровнем сигнала и фотографиями помещений. «Сигнал везде нормальный» становится утверждением, которое можно проверить.

06

Заказчик, который не хочет облака

Измеряйте как обычно и доставляйте на свой S3, WebDAV или SFTP — или передайте файл. Фотографии и голосовые заметки никогда не попадают в галерею телефона, поэтому NDA остаётся подписываемым.

Все двенадцать случаев и чем читаются данные

Полный changelog

Работа, за которой можно
следить.

Версия 1.5.1 кладёт все двенадцать языков в каждую установку, показывает длинный экспорт или Сброс в работе и добавляет свободный блокнот для точек, снимков и тестов, сделанных без идущего измерения.

01

Языки, которые действительно есть

Google Play раньше доставлял только те языки, которые были в телефоне при установке, поэтому выбор языка приложения предлагал чешский и остальные без текстов за ними. Все двенадцать переводов теперь ставятся всегда.

02

Комета на клавише

Скачать, Отправить и Сброс на большом измерении занимают от секунд до минут. По краю клавиши теперь бежит комета, хвост растёт вместе с готовой частью, а живая строка под ней говорит, сколько готово, сколько это идёт и сколько примерно осталось. Свободное место показывается до начала записи — жёлтым, когда его мало, красным, когда экспорт не поместится.

03

Свободный блокнот

Точки съёмки, снимки, голосовые заметки, разовый тест интернета и цикл пропускной способности Wi-Fi больше не требуют Старт. Без идущего измерения они уходят в отдельную запись без коллекторов, без wake lock и без вычета из бесплатного часа — со своей карточкой, своим файлом для отправки и своим Очистить.

04

Отправить из значка, системные элементы

Задержите значок приложения, когда измерение остановлено, и Отправить стоит рядом со Старт; он открывает приложение и сразу запускает экспорт. Переключатели, текстовые поля, выборы и сообщения теперь стандартные элементы Android — клавиши и прибор остались, как были.

Устанавливается только
через Google Play.

Версия1.5.2
ПлатформаAndroid 12+
ДоступностьВсе страны, которые разрешает Play
Установить из Google Play
  1. 1

    Установите из Google Play — без приглашения, без списка тестировщиков, без ожидания.

  2. 2

    Измеряйте до часа в год, ничего не платя.

  3. 3

    Разблокируйте неограниченное измерение прямо в приложении, когда часа перестанет хватать.

Google Play — единственный канал распространения: он подписывает цепочку обновлений, и нигде не предлагается прямой APK. Самому приложению для работы не нужен ни наш аккаунт, ни наш сервер.

Час в год
на размышление.

Полевой прибор нельзя оценить по скриншотам, поэтому Signal Collector даёт каждому телефону час измерительного времени в год — достаточно, чтобы пройти маршрут, посмотреть, как заполняется кольцо, и открыть экспорт. Считается измерительное время, а не число сеансов, так что его можно потратить в нескольких местах и за несколько дней. Когда он закончится, разблокировка — разовая покупка в приложении по цене Google Play для вашей страны: без подписки, без даты продления, и она действует на каждом телефоне с тем же аккаунтом.

1 часизмерительного времени бесплатно, каждый год заново
Одна покупкаи дальше без ограничений, на любом вашем телефоне
24 часаот отзыва до разобранной заявки

Обратная связь приходит через отзыв в Google Play; каждый новый отзыв поднимается в течение суток, превращается в заявку и получает ответ, а исправления едут со следующим обновлением. В платном приложении нет ни рекламы, ни аналитики, ни чужого SDK внутри измерения — именно цена оплачивает разработку вместо них.

От физических датчиков
до сетей вокруг вас.

Каждый источник можно включить или выключить по отдельности перед измерением, а у выбранных технологий задать и интервал.

01

Мобильная сеть

Обслуживающая и соседние соты, параметры LTE/NR/3G/2G, смены регистрации и экспериментальное активное сканирование.

02

ГНСС и местоположение

GPS с частотой 1 Гц, спутники, сырые измерения ГНСС, часы, AGC, навигационные сообщения, NMEA и сведения об антенне.

03

Wi‑Fi и RTT

Текущее подключение, точки доступа поблизости, Wi‑Fi 7 MLO, возможности и расстояния RTT/FTM до поддерживаемых точек доступа.

04

Bluetooth

Классический поиск и содержимое пакетов BLE-объявлений, включая данные производителя и службы.

05

Датчики и шум

Движение, магнитное поле, давление, освещённость, приближение, вектор поворота и ориентировочный уровень dBFS без сохранения звука.

06

Сеть и передача

Посекундные пробы реальной загрузки, отдачи, RTT, джиттера и таймаутов, 30-секундные всплески пропускной способности и одновременная привязка к конкретной сети Wi‑Fi и мобильной сети.

07

SIM и eSIM

Слот, оператор, MCC/MNC, роуминг и то, какая карта везёт данные — соты сами по себе называют передатчик, а не того, кто смотрел. Ни ICCID, ни EID не записываются: это постоянные идентификаторы подписки, которые переживают даже смену телефона.

Датчик, которого нет
внутри телефона.

Телефон измеряет то, до чего дотягивается. Зонд на стене, прибор на кабеле, приёмник на крыше — этим нужно попасть внутрь иначе. Путей четыре, и первый уже работает.

01

Датчики, которые вещают · уже работает

BTHome, Ruuvi, ATC и pvvx, телеметрия Eddystone. Нечего сопрягать и не к чему подключаться: датчик выкрикивает своё показание в комнату, а скан, который и так идёт, его слышит. Температура, влажность, давление, CO₂, взвешенные частицы, напряжение — с именем, в единицах СИ, в том же файле, что и всё остальное.

02

Профили Bluetooth LE · планируется

Environmental Sensing сам описывает свои измерения, поэтому даже прибор, о котором никто никогда не слышал, читается вместе с единицей. Рядом — стандартные профили: батарея, термометр, положение — и служба Nordic UART, на которой говорит самодельная приставка.

03

Последовательная линия на кабеле · планируется

CDC-ACM, FTDI, CP210x, PL2303, CH340. Пять семейств микросхем покрывают почти всё, что втыкается в USB и не является диском: платы Arduino и ESP32, приёмники u-blox, анализаторы спектра, приборы, отвечающие на SCPI.

04

Устройство в локальной сети · планируется

Находится через mDNS, читается по HTTP или как простой поток TCP. Запрос привязан к сети Wi-Fi, чтобы он не ушёл через мобильные данные и не потерялся по дороге к прибору в соседней комнате.

Ничего не угадывается. Показание, которое сам датчик пометил как недействительное, пропускается, а не записывается числом; зашифрованные данные отмечаются как зашифрованные, а не расшифровываются в выдумку; а формат, которого приложение не знает, остаётся в файле сырыми байтами. Ключи перечисляет словарь данных.

Клавиша, которой не нужно
сначала открывать приложение.

Измерять в поле — это одна рука на телефоне, а другая занята чем-то ещё. Поэтому у каждого важного органа управления есть место и вне приложения, и все они посылают ровно ту же команду, что и экран.

01

Панель измерения

Виджет, который запускает сохранённый в нём набор источников и интервалов. Во время измерения он говорит об этом, несёт его числа, а второе касание спрашивает, прежде чем остановить. Клавиша хранит собственную копию того, что запускает, поэтому смена предустановки в приложении позже не изменит молча то, что измеряет главный экран.

02

Отметить точку

До четырёх собственных подписей рядом — дверь, угол, окно по одному касанию каждая и сразу попадают в точку. Если ничего не идёт, клавиша запускает измерение и отмечает точку за один раз.

03

Плитка источника

Один источник как одно большое число: точки доступа в зоне приёма, спутники в фиксе, громкость. Касание, когда ничего не идёт, запускает измерение только с этим источником.

04

Сводка источников

До шести источников, по одной строке на каждый, в том порядке, в каком вы их выбрали, — список, который читают одним взглядом, а не ищут в нём.

05

Плитка в быстрых настройках

Старт и стоп из любого приложения и поверх экрана блокировки. Измеряет тем же, чем приложение измеряло в последний раз. Поверх защищённой блокировки она сначала просит разблокировать телефон: запускается местоположение вместе с микрофоном.

06

Ярлыки под значком

Долгое нажатие на значок предлагает Старт, пока ничего не идёт, и Стоп с отметкой точки, как только что-то пошло. Точка отмечается без подписи — подписи на клавише виджета, где для них есть место.

07

Уведомление

Во время измерения оно несёт длительность, число записей и пройденное расстояние, а под ними отметку точки и Стоп. Старт можно оставить в шторке на всё время, пока ничего не идёт, чтобы измерение по частям не означало каждый раз искать приложение.

Клавиши перерисовывает само измерение, раз в пять секунд: виджет не может быть свежее приложения, которое его кормит. Поэтому каждая клавиша несёт время, на которое сняты её числа; исключение — секундомер, он тикает сам. Настраиваются они все в одном месте, Клавиши на главном экране в меню настроек, а описывает их справка.

Данные с настоящего
телефона.

Всё, что ниже, измерено на Google Pixel 10a с Android 16. В версии 0.7.2 одно измерение в трёх отрезках собрало 87 597 записей: длительность выросла с 2:49 через 7:21 до 8:12, номер измерения ни разу не изменился, а более двадцати минут пауз между отрезками в длительность не вошли. Цифры расстояния взяты из девятиминутного сеанса версии 0.7.1 на том же телефоне — фильтр расстояния с тех пор не менялся.

429 mGPS-шума выброшено фильтром расстояния
0 mпрошёл телефон, который ни разу не сдвинулся
9/9всплесков, старт которых связан с результатом

Первые 274 определения имели точность от 9 до 114 м. Сумма расстояний между соседними определениями дала бы 429 м или 28 м после отсева грубых; перенос якоря за порог дал ноль. В тестовом телефоне не было SIM, поэтому мобильная ветвь картирования корректно сообщила, что сеть недоступна.

Установка, изменения
и исходный код.

Репозиторий остаётся закрытым. Вошедшие соучастники находят в нём исходный код, помеченные выпуски и контрольные суммы APK.

Измеренные данные никогда не покидают телефон.

Приложение работает офлайн и не содержит ни SDK аналитики, ни рекламного, ни атрибуции, ни отчётов о сбоях — и ни одного не добавится. Каждая библиотека, из которой собрано приложение, названа в политике конфиденциальности, и каждая закреплена за точной версией, так что внутри ничто не меняется без выпуска, который об этом говорит. Необязательное непрерывное картирование качества передачи использует публичные точки Cloudflare Speedtest для небольших тестовых HTTPS-передач и периодических всплесков; это не измерение максимальной скорости интернета. Модуль по умолчанию выключен. Если вы купите разблокировку, телефон покинет одно сообщение о покупке, в котором нет никаких измеренных данных; оно описано в политике конфиденциальности. Экспорт может содержать чувствительные данные о местоположении и идентификаторы соседних сетей.

От датчика
до строки в файле.

Каждый источник идёт в своём темпе. Проба помечается временем и последним известным местоположением, проходит через неблокирующую очередь и партиями сохраняется в локальную базу. Подчёркнутые ключи на схеме ведут в словарь данных.

Схема пути данных: источники, SampleSink, очередь, writer, Room/SQLite, пульс и экспорт

Настройки сбора

Те же параметры, которые приложение предлагает для каждого источника перед началом измерения. Диапазоны и оценка данных соответствуют реализации; изменение сразу видно на схеме выше.

мс

Диапазон 10–1000 мс

мс

Диапазон 100–60000 мс

s

Диапазон 5–300 с

s

Диапазон 5–60 с

s

Диапазон 5–300 с

Картирование интернетаСеть для непрерывного измерения

Если выбраны обе, одновременно работают два отдельных дескриптора Network в Android.

мс

Диапазон 500–5000 мс

КиБ

Диапазон 1–1024 КиБ

КиБ

Диапазон 1–256 КиБ

s

Диапазон 10–300 с

КиБ

Диапазон 64–10240 КиБ

КиБ

Диапазон 8–2048 КиБ

407 МБверхняя оценка трафика за 30 минут картирования
8 400проб в минуту с семи датчиков
120проб в минуту из картирования интернета
20сканирований Wi-Fi и мобильной сети за 10 минут

Оценка — верхняя граница: на медленном канале проба длится дольше, поэтому за то же время их помещается меньше и передаётся меньше данных. Это не измерение максимальной скорости — почему.

Changelog 1.0.0

Открыть как TXT ↗