О клиенте
Наш клиент — европейская технологическая компания, разрабатывающая специализированное оборудование для систем контроля доступа, биометрической идентификации и финансовых технологий. Одним из ключевых продуктов компании был сканер ладоней и жестов, предназначенный для идентификации пользователей и обеспечения безопасности объектов.
Клиенту требовалось разработать готовое к промышленной эксплуатации программное обеспечение на базе AOSP (Android Open Source Project). Приложение должно было одновременно обрабатывать RGB- и инфракрасные видеопотоки, стабильно работать на устройстве с ограниченными вычислительными ресурсами и обеспечивать передачу больших объемов биометрических данных. Дополнительным требованием стала возможность удаленного обновления программного обеспечения без использования Google Mobile Services (GMS).
- Отрасль: Биометрия, безопасность, контроль доступа
- Тип решения: Приложение для специализированного Android-оборудования
- Сроки: Около 3 месяцев
Задача проекта
Разработка приложения требовала адаптации программного обеспечения к особенностям специализированного оборудования и ограничениям кастомной сборки Android. Необходимо было обеспечить стабильную обработку видеоданных, синхронизацию двух потоков, надежную передачу файлов и независимое управление устройством.
Основными задачами проекта стали:
- Оптимизация обработки видео: Обеспечить стабильную обработку видеопотоков на устройствах с ограниченными вычислительными ресурсами, минимизировав риск перегрева и потери кадров.
- Разработка нативного мультимедийного конвейера: Интегрировать FFmpeg с использованием C/C++ и Android NDK для обработки видео в кастомной среде AOSP, не располагающей необходимыми мультимедийными кодеками.
- Синхронизация видеопотоков: Реализовать синхронизацию RGB- и инфракрасного видео с точностью до кадра для корректной обработки биометрических данных.
- Отказоустойчивая передача данных: Реализовать загрузку больших биометрических файлов по частям с автоматическим возобновлением передачи после сетевых сбоев.
- Мониторинг состояния оборудования: Организовать контроль температуры процессора, доступного пространства в хранилище и состояния сетевого подключения для обеспечения стабильной работы устройства.
- Удаленное управление и обновление: Реализовать безопасное удаленное обновление приложения без зависимости от Google Mobile Services (GMS).
Обзор проекта
Команда СКЭНД разработала приложение на Kotlin, которое обеспечило управление специализированным оборудованием для сканирования ладоней и жестов.
Взаимодействие со сканером было реализовано через RNDIS, что позволило одновременно получать RGB- и инфракрасные видеопотоки. Для их обработки команда разработала нативный конвейер на базе FFmpeg, скомпилировала и оптимизировала его на C/C++ с использованием Android NDK. Это решение обеспечило совместимость мультимедийных компонентов с кастомной средой AOSP.
Помимо обработки видео, приложение обеспечивало настройку сканера, мониторинг состояния устройства, ведение журналов и управление локальными данными. Для передачи результатов сканирования команда реализовала механизм загрузки файлов по частям с поддержкой параллельной передачи и автоматического возобновления после разрыва соединения.
Для удаленного управления обновлениями команда интегрировала стороннюю OTA-платформу, которая обеспечила безопасное обновление программного обеспечения без зависимости от Google Mobile Services.
Решение
Команда СКЭНД объединила легкое приложение на Kotlin с оптимизированными нативными компонентами на C/C++. Такое решение позволило организовать обработку биометрических данных и управление оборудованием с учетом ограниченных ресурсов устройства.
Основные возможности приложения
- Синхронное сканирование в двух спектральных диапазонах. Одновременный захват RGB- и инфракрасного видео с синхронизацией потоков на уровне отдельных кадров.
- Оптимизированная обработка видео. Собственный конвейер FFmpeg на C/C++ с использованием Android NDK для обработки мультимедийных данных в кастомной среде AOSP.
- Интеграция со специализированным оборудованием. Обмен данными со сканером через RNDIS и пользовательские API производителя.
- Отказоустойчивая передача файлов. Разделение больших биометрических файлов на фрагменты, параллельная загрузка и автоматическое возобновление передачи после сетевых сбоев.
- Мониторинг состояния устройства. Контроль температуры процессора, доступного пространства в хранилище и подключения к Wi-Fi/Ethernet.
- Управление конфигурацией и журналами. Файловое хранение настроек сканера, логов и очередей операций с минимальными накладными расходами.
- Удаленные OTA-обновления. Автоматическое обновление приложения через стороннюю платформу управления устройствами без зависимости от GMS.
Технологический стек
Для разработки и интеграции программного обеспечения использовались следующие технологии и инструменты:
- Платформа и приложение: Kotlin, Android Open Source Project (AOSP)
- Нативная разработка: C/C++, Android NDK
- Обработка видео: FFmpeg, кастомная сборка и интеграция мультимедийных компонентов
- Взаимодействие с оборудованием: RNDIS, пользовательские API производителя
- Передача данных: HTTP/REST API, параллельная загрузка файлов по частям с возможностью возобновления
- Управление данными: файловые операции для конфигурации, журналов и очередей задач
- Удаленное управление: сторонняя платформа OTA-обновлений
Результаты
За три месяца команда СКЭНД разработала программное обеспечение для специализированного биометрического сканера, обеспечив стабильную работу на устройствах с ограниченными вычислительными ресурсами и надежную передачу данных.
- Готовность к промышленной эксплуатации. Разработано кастомное AOSP-приложение, адаптированное к особенностям биометрического оборудования и ограничениям аппаратной платформы.
- Точная синхронизация видеопотоков. Реализована синхронизация RGB- и инфракрасного видео с точностью до кадра на базе нативного конвейера FFmpeg.
- Отказоустойчивая передача данных. Настроена параллельная загрузка биометрических файлов по частям с автоматическим возобновлением передачи после сетевых сбоев.
- Стабильность работы оборудования. Внедрен мониторинг температуры процессора, доступного пространства в хранилище и состояния сетевого подключения для своевременного выявления потенциальных проблем.
- Независимое удаленное управление. Интегрирована система безопасного OTA-обновления приложения, работающая без зависимости от Google Mobile Services.