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

Cuttlefish — это настраиваемое виртуальное устройство Android, которое может работать как удалённо (используя облачные сервисы сторонних разработчиков, такие как Google Cloud Engine), так и локально (на машинах Linux x86 и ARM64).

голы каракатицы

  • Освободите разработчиков платформ и приложений от зависимости от физического оборудования при разработке и проверке изменений кода.
  • Воспроизведите поведение реального устройства, основанное на используемой в фреймворке модели, с упором на высокую точность , поддерживая тесную связь с основным фреймворком.
  • Поддерживаются все уровни API после 28.
  • Обеспечьте согласованный уровень функциональности на всех уровнях API, соответствующий поведению на физическом оборудовании.
  • Включить масштабирование:

    • Предоставьте возможность параллельного запуска нескольких устройств.
    • Обеспечьте параллельное выполнение тестов с высокой точностью при более низких начальных затратах.
  • Предоставьте настраиваемое устройство с возможностью регулировки форм-фактора, оперативной памяти, процессора и т.д.

Сравните устройство Cuttlefish с другими устройствами.

Cuttlefish и эмулятор Android

Есть много сходств с эмулятором Android , но Cuttlefish гарантирует полную совместимость с фреймворком Android (будь то чистый AOSP или собственная реализация в вашем собственном репозитории). В реальных приложениях это означает, что вы должны ожидать, что Cuttlefish будет реагировать на ваши действия на уровне ОС так же, как и физический целевой телефон, собранный с использованием того же модифицированного или чистого исходного кода ОС Android.

Эмулятор Android был разработан с учетом упрощения разработки приложений и содержит множество функциональных возможностей, отвечающих потребностям разработчиков Android-приложений. Это может создать определенные сложности, если вы хотите создать эмулятор с использованием собственной платформы Android. Если вам нужно виртуальное устройство, которое будет представлять код вашей пользовательской платформы/фреймворка или самую последнюю версию Android, то Cuttlefish — идеальный вариант. Это каноническое устройство для представления текущего состояния разработки AOSP.

Каракатица и физическое устройство

Основные различия между виртуальным устройством Cuttlefish и вашим физическим устройством заключаются на уровне аппаратной абстракции (HAL), а также в любом программном обеспечении, взаимодействующем с любым специализированным оборудованием. За исключением аппаратно-специфических реализаций, следует ожидать функционально эквивалентного поведения между Cuttlefish и физическим устройством.

Чем могут помочь каракатицы?

Взаимодействовать с Cuttlefish можно так же, как и с любым другим устройством Android, используемым для отладки. Он зарегистрируется как обычное устройство через adb, и вы сможете взаимодействовать с ним как с физическим устройством через удаленный рабочий стол. Варианты использования широки и могут включать тестирование приложений, тестирование пользовательских системных сборок и многое другое.

Поскольку Cuttlefish стремится к полной совместимости с фреймворком, его можно использовать для функционального тестирования вашего фреймворка или приложений, где нет физических зависимостей от оборудования, которые невозможно эмулировать.

Каким образом сегодня обычно используют каракатицу для проведения анализов?

К числу распространенных применений каракатицы для тестирования относятся:

  • CTS
  • Соответствие рамочной программе
  • Непрерывное интеграционное тестирование
  • Пользовательские наборы тестов

Можно ли разместить Cuttlefish в облаке?

Да, Cuttlefish изначально поддерживает Google Cloud, и планируется поддержка других облачных платформ.

Начните

Инструкции по созданию экземпляра Cuttlefish на основе AOSP см. в разделе «Использование Cuttlefish» .