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