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

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

Каракатицы конфигурируемый виртуальный Android устройство , которое может работать как удаленно ( с помощью сторонних облачных предложений , таких как Google Cloud Engine) и локально (на машинах Linux x86).

Цели каракатицы

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

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

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

Каракатица и эмулятор Android

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

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

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

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

Чем может помочь каракатица?

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

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

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

Вот некоторые распространенные применения Cuttlefish для тестирования:

  • CTS
  • Соответствие рамкам
  • Непрерывное интеграционное тестирование
  • Индивидуальные наборы тестов

Могу ли я разместить каракатиц в облаке?

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

Начиная

Смотрите руководство по началу работы для руководства по созданию каракатицы экземпляра , основанный на AOSP.