Что такое каракатица?
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 обычно используется для тестирования сегодня?
Некоторые распространенные приложения Cuttlefish для тестирования включают:
- КТС
- Соответствие рамок
- Непрерывное интеграционное тестирование
- Пользовательские наборы тестов
Могу ли я разместить каракатиц в облаке?
Да, Cuttlefish изначально поддерживает Google Cloud, и планируется поддержка других облачных платформ.
Начиная
См. руководство по началу работы для получения инструкций по созданию экземпляра Cuttlefish на основе AOSP.