Что такое 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 — расширенная поддержка (дополнительные форматы, быстрый поток, улучшенная многокадровая обработка).
Как проверить (для обычного пользователя)
- Установите из Play Store приложение-проверку Camera2 (по словам «camera2 api probe», «camera2 checker»).
- Запустите, дайте доступ к камере — увидите список камер (rear, front) и их уровень (LEGACY/LIMITED/FULL/LEVEL_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.