Инженерное расследование

CameraX agent

Реальная история отладки: Preview показывал правильную картинку, а ImageAnalysis получал кадры с неверной ориентацией после поворота планшета на 180°.

Что это

Небольшой кейс о том, как coding agent участвовал в настоящем цикле расследования: читал код, добавлял instrumentation, запускал adb и logcat, анализировал данные и обновлял MR.

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

гипотеза → instrumentation → эксперимент на устройстве → данные → следующая гипотеза

Что показало расследование

При переходе от ROTATION_90 к ROTATION_270 Android продолжал считать устройство landscape. Поэтому Configuration.orientation не менялась, а ImageAnalysis.targetRotation оставался старым.

Симптом
Preview ≠ Analysis
Поворот
90° → 270°
Root cause
stale target
Workaround
отменён
Решение
dynamic rotation
Проверка
реальный планшет

Итоговое решение

Вместо задержки и повторного rebind использован OrientationEventListener. Существующие Preview и ImageAnalysis получают новый targetRotation без пересоздания use cases.

После исправления ImageProxy.rotationDegrees изменился с 0 на 180, а диагностические значения стали согласованными.

Почему это важно для работы с агентами

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

Читать статьюВсе статьиНа главнуюпубличная витрина · реальный кейс