Виртуальные Android-устройства Cuttlefish

Что такое каракатица?

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.