Что такое каракатица?
Cuttlefish - это настраиваемое виртуальное устройство Android, которое может работать как удаленно (с использованием сторонних облачных предложений, таких как Google Cloud Engine), так и локально (на машинах Linux x86).
Цели каракатицы
- Освободите разработчика платформы и приложения от зависимости от физического оборудования при разработке и проверке изменений кода.
- Воспроизведите поведение реального устройства на основе фреймворка с акцентом на высокую точность воспроизведения , поддерживая точное соответствие с базовым фреймворком.
- Поддержка всех уровней API после 28.
- Обеспечьте согласованный уровень функциональности на всех уровнях API, согласованный с поведением физического оборудования.
Включить масштаб:
- Обеспечьте возможность параллельной работы нескольких устройств.
- Обеспечьте одновременное выполнение тестов с высокой точностью при более низкой стоимости входа.
Предоставляет настраиваемое устройство с возможностью настройки форм-фактора, оперативной памяти, процессоров и т. Д.
Сравнение Cuttlefish с другими устройствами
Каракатица и эмулятор Android
Есть много общего с эмулятором Android , но Cuttlefish гарантирует полную совместимость с платформой Android (будь то чистый AOSP или пользовательская реализация в вашем собственном дереве). В реальном приложении это означает, что вы должны ожидать, что Cuttlefish будет реагировать на ваши взаимодействия на уровне ОС так же, как физическая цель телефона, созданная с тем же настроенным или чистым источником ОС Android.
Эмулятор Android был построен на основе сценария использования, упрощающего разработку приложений, и содержит множество функциональных ловушек, которые подходят для вариантов использования разработчика приложений Android. Это может вызвать проблемы, если вы хотите создать эмулятор с помощью настраиваемой платформы Android. Если вам нужно виртуальное устройство, которое будет представлять вашу пользовательскую платформу / код фреймворка или простой Android, тогда Cuttlefish - идеальный виртуальный вариант. Это каноническое устройство для представления текущего состояния развития AOSP.
Каракатица и физическое устройство
Основные различия между виртуальным устройством Cuttlefish и вашим физическим устройством заключаются в уровне абстракции оборудования (HAL), а также в любом программном обеспечении, которое взаимодействует с любым настраиваемым оборудованием. За исключением аппаратно-зависимых реализаций, вы должны ожидать функционально эквивалентного поведения между Cuttlefish и физическим устройством.
Чем может помочь каракатица?
Вы можете взаимодействовать с Cuttlefish так же, как с любым другим устройством Android, которое вы можете использовать для отладки. Он зарегистрируется как обычное устройство через adb, и вы сможете взаимодействовать с ним как с физическим устройством через удаленный рабочий стол. Сценарии использования обширны и могут включать тестирование приложений, тестирование сборки пользовательской системы и многое другое.
Поскольку Cuttlefish стремится к полной верности фреймворку, его можно использовать для функционального тестирования вашего фреймворка и / или приложений, где нет физических зависимостей оборудования, которые невозможно эмулировать.
Как сегодня обычно используют каракатицу для тестирования?
Вот некоторые распространенные применения Cuttlefish для тестирования:
- CTS
- Соответствие рамкам
- Непрерывное интеграционное тестирование
- Индивидуальные наборы тестов
Могу ли я разместить каракатиц в облаке?
Да, Cuttlefish изначально поддерживает Google Cloud, и планируется поддержка других облачных платформ.
Начиная
См. Руководство по началу работы для получения инструкций по созданию экземпляра Cuttlefish на основе AOSP.