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