Приложения

Что такое Android NDK (C++ в приложении)

Что это

Инструменты, чтобы написать часть Android-приложения на C++. Нужны там, где важны время и точность: звук, видео, работа с оборудованием.

Как используем

В OshaPlay на C++ через NDK написаны поток звука на USB-ЦАП с кольцевым буфером и собственный ресемплер с искажениями ниже −130 дБ.

Где это нужно бизнесу

  • Приложение работает с оборудованием напрямую, и задержки в миллисекунды ломают результат.
  • Нужна обработка сигнала с точностью, которую сложно получить в обычном коде приложения.

Как мы это используем

В OshaPlay на C++ через NDK написаны поток звука на USB-ЦАП с кольцевым буфером и собственный многофазный ресемплер с искажениями ниже −130 дБ для частот 88,2 и 176,4 кГц. Звук уходит изохронными передачами через USB Host API, а частота следует за треком. Интерфейс и логика при этом на Kotlin.

Типичные проблемы

  • Проверка на реальном железе. Прямой вывод в эмуляторе проверен только для случая «ЦАПа нет», а работа с настоящим донглом видна по отчётам с телефона.
  • Поддерживается не всё. Прямой вывод умеет ЦАП по UAC2 с адаптивной или синхронной передачей; асинхронные ЦАПы и UAC1 пока играют через систему.

Когда это не нужно

Для обычного приложения — каталог, форма, кабинет — C++ не нужен: Kotlin справляется и проще в поддержке.

← Все термины

Нужен сайт, бот или автоматизация?

Термины объяснили — теперь давайте к делу: расскажите о задаче, а мы переведём её на понятный план работ.