Как камера изменилась в Android 12 — ключевые нововведения и что с этим делать
Коротко: Android 12 добавил доступ к vendor‑extensions в Camera2, поддержку Quad/Nona‑Bayer сенсоров, AVIF и совместное транскодирование видео, а также визуальные индикаторы и переключатели приватности — всё это упрощает интеграцию фирменных режимов и повышает безопасность. Ниже — что именно изменилось и практические шаги.
Ключевые нововведения
- Vendor‑extensions в Camera2: теперь приложения на Camera2 могут запрашивать фирменные режимы (Bokeh, Night, HDR) без обходных путей. Это даёт доступ к OEM‑обработке прямо из платформы.
- CameraExtensionCharacteristics: API для проверки доступности расширений, допустимых размеров и задержек захвата — обязательно проверяйте перед включением режима.
- Quad / Nona‑Bayer: учёт группировки пикселей влияет на выбор потоков (preview/full/RAW) и на предобработку изображений для минимизации шума.
- AVIF: нативная поддержка более эффективного формата изображений, полезна для экономии места и передачи по сети.
- Совместимое транскодирование: система может автоматически перекодировать современные кодеки (HEVC) в более совместимые (AVC) для воспроизведения в старых плеерах.
Коротко для разработчика: начните с CameraX для быстрого решения, а для тонкой настройки используйте Camera2 Extensions API и заранее проверяйте CameraExtensionCharacteristics.
Приватность и системные настройки
- Индикаторы доступа: в статус‑баре видно, когда камера или микрофон задействованы; через UI можно узнать, какое приложение и когда использовало датчик.
- Quick Settings: переключатели для мгновенного блокирования камеры/микрофона для всех приложений. Проектируйте UX с учётом возможности полного блокирования доступа.
- Privacy Dashboard: хронология обращений к камере и управление разрешениями.
При тестировании учитывайте, что пользователи могут в любой момент отключить доступ к камере через быстрые настройки — приложение должно корректно это обрабатывать.
Практические рекомендации
Для разработчиков
- По возможности используйте CameraX: покрывает большинство сценариев и упрощает поддержку diverse‑устройств.
- Если нужен контролируемый доступ к vendor‑extensions — используйте Camera2 Extensions API и всегда проверяйте availability через CameraExtensionCharacteristics.
- Тесты для Quad/Nona‑Bayer: проверяйте поведение preview vs full resolution, сравнивайте метаданные сенсора и протестируйте RAW/алгоритмы шумоподавления.
- Поддержка AVIF: реализуйте fallback в JPEG при проблемах совместимости у клиентов или библиотек отображения.
- Сценарий fallback — алгоритм: 1) проверить список поддерживаемых расширений; 2) запросить параметры (размеры/latency); 3) при отсутствии — переключиться на стандартный режим.
Пример псевдокода (концепция проверки расширения):
val extChars = cameraManager.getExtensionCharacteristics(cameraId)
if (extChars.supports(EXTENSION_NIGHT)) {
enableNightExtension(cameraId)
} else {
useStandardNightProcessing()
}
Для пользователей
- Используйте Privacy Dashboard и Quick Settings для контроля доступа.
- Если приложение не открывает AVIF — обновите просмотрщик или экспортируйте в JPEG при расшаривании.
Частые ошибки
- Предположение, что поддержка расширения у одного производителя означает одинаковое качество у всех — внимательное тестирование обязательно.
- Игнорирование режима pixel grouping → артефакты или неправильные размеры изображений.
- Необработанный случай, когда пользователь блокирует камеру через Quick Settings — приложение должно корректно сообщать и сохранять состояния.
FAQ
- Можно ли обходиться без Camera2 Extensions? Да — для многих задач CameraX достаточно. Для полного доступа к OEM‑режимам нужен Camera2 Extensions API.
- AVIF повсеместно поддерживается? На Android 12 платформа поддерживает AVIF, но сторонние библиотеки и старые просмотровщики могут не отображать его корректно — делайте fallback.
- Как проверить, используется ли камера фоном? Смотрите индикатор в статус‑баре и историю в Privacy Dashboard.
Короткое резюме: Android 12 упрощает доступ к фирменной обработке камеры и вводит форматы/инструменты для современных сенсоров, при этом усиливая контроль приватности — сочетание дает больше возможностей, но требует тщательного тестирования на реальных устройствах.