Google is committed to advancing racial equity for Black communities. See how.
Эта страница переведена с помощью Cloud Translation API.
Switch to English

Виртуальные 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 для тестирования:

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

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

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

Начиная

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