Виртуальные 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.