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