Что такое Camera2 API простыми словами

Camera2 API — это современный интерфейс Android для работы с камерой, дающий приложениям ручной контроль (выдержка, ISO, фокус, RAW). Ниже — как понять, поддерживается ли он на вашем телефоне и зачем это даст практическое преимущество.

Оглавление {{TOC_AUTOMATIC}}

Что это и чем Camera2 отличается от старого Camera API

Camera2 заменил устаревший Camera API (Camera1). Главное отличие — модель запрос–ответ: приложение формирует CaptureRequest и получает детализированный CaptureResult. Это даёт:

  • точный ручной контроль выдержки, ISO, фокуса и баланса белого;
  • возможность получать несколько потоков одновременно (превью + RAW + запись);
  • поддержку съёмки в RAW и высокоскоростного видео при наличии аппаратной поддержки;
  • гибкость для реализации HDR, брекетинга, ночных режимов и собственных алгоритмов обработки.

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

Уровни поддержки и как их проверить на смартфоне

Уровни (INFO_SUPPORTED_HARDWARE_LEVEL) — не просто включено/выключено:

  • LEGACY — совместимость с Camera1, большинство ручных функций недоступны.
  • LIMITED — частичная поддержка, некоторые ручные параметры возможны.
  • FULL — почти все возможности Camera2: ручная выдержка/ISO/фокус, RAW, улучшенная серийная съёмка.
  • LEVEL_3 — расширенная поддержка (дополнительные форматы, быстрый поток, улучшенная многокадровая обработка).

Как проверить (для обычного пользователя)

  1. Установите из Play Store приложение-проверку Camera2 (по словам «camera2 api probe», «camera2 checker»).
  2. Запустите, дайте доступ к камере — увидите список камер (rear, front) и их уровень (LEGACY/LIMITED/FULL/LEVEL_3).
  3. Альтернатива: установите «ручное» приложение (Open Camera, Manual и т. п.) и проверьте, доступны ли RAW, ручной фокус, ручная выдержка и ISO.

Производитель может ограничить возможности на уровне прошивки: даже мощный сенсор при урезанных драйверах покажет низкий уровень поддержки.

Как проверить (для разработчика)

  • Через CameraManager.getCameraIdList() и CameraCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL).
  • Дополнительно смотреть REQUEST_AVAILABLE_CAPABILITIES: MANUAL_SENSOR, MANUAL_POST_PROCESSING, RAW, CONSTRAINED_HIGH_SPEED_VIDEO и др. Это даст точную картину доступных возможностей.

Когда и зачем нужна поддержка Camera2

Для фотографа/видеографа:

  • Ручной контроль — точные выдержки и ISO для ночных и творческих съёмок.
  • RAW — больше деталей и возможностей для коррекции экспозиции и цвета.
  • Стабильная серийная съёмка и многокадровая обработка — лучшее качество HDR и портретов.
  • Для видео — фиксирование экспозиции и возможности лог/кинематографичных профилей.

Для разработчика:

  • Возможность реализовать сложные режимы (ночной режим, брекетинг, собственные алгоритмы).
  • Работа с несколькими потоками для одновременного превью, записи и анализа (AR, CV).
  • Поддержка RAW и высокоскоростной съёмки для профессиональных приложений.

Если ваша основная камера помечена как FULL или LEVEL_3 — попробуйте установить профессиональное приложение и снять в RAW: вы сразу увидите разницу в возможностях для постобработки.

Частые ошибки

  • Ожидать «волшебного» улучшения качества при любой поддержке Camera2. Поддержка лишь открывает доступ — качество зависит от алгоритмов приложения и оптики.
  • Игнорировать, что разные модули на одном телефоне (ширик, макро, фронталка) могут иметь разные уровни поддержки.
  • Пытаться «включить» FULL через root или build.prop без глубокого понимания — это часто нестабильно и рискованно.

FAQ

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

  • Можно ли «улучшить» уровень поддержки через прошивку или root?
    Иногда эксперты модифицируют прошивки, но это не гарантирует безопасного перехода с LIMITED на FULL и может привести к нестабильности камеры.

  • Что важнее — уровень FULL или реально работающие ручные режимы в приложении?
    Оба важны: FULL даёт возможность, но нужен ещё грамотный софт, который эту возможность реализует.


Если хотите — могу помочь подобрать проверенное приложение для теста Camera2 на вашем устройстве или показать пример кода для проверки в Android Studio.