Создайте и используйте SDK с поддержкой среды выполнения.

1
Ключевые понятия
2
Настройте среду разработки
3
Создайте RE SDK
4
Используйте RE SDK
5
Тестирование и сборка для распространения
,
1
Ключевые понятия
2
Настройте среду разработки
3
Создайте RE SDK
4
Используйте RE SDK
5
Тестирование и сборка для распространения

Ключевые понятия

В этом разделе описывается архитектура среды выполнения SDK, порядок установки SDK с поддержкой среды выполнения, обратная совместимость и способы миграции существующих SDK на среду выполнения SDK.

Глоссарий

  • SDK с поддержкой среды выполнения (RE SDK) : SDK, предназначенный для работы в среде выполнения SDK и взаимодействия с приложением посредством межпроцессного взаимодействия (IPC).
  • SDK, поддерживающий среду выполнения (RA SDK) : SDK, не поддерживающий среду выполнения, статически связанный с приложением, который может содержать как существующий код вашего SDK, так и новый код для вызова функций SDK, поддерживающего среду выполнения.
    • Иногда это также называют статически связанным или статическим SDK .
  • Shim : Библиотека Jetpack, которая помогает абстрагировать взаимодействие между процессами или межпроцессное взаимодействие (IPC) и поддерживать единый интерфейс между приложением и SDK.

Архитектура среды выполнения SDK

В среде выполнения SDK используется клиент-серверная модель.

Основное отличие заключается в том, что «клиент» (приложение) и «сервер» (SDK с поддержкой среды выполнения) работают на одном устройстве, и взаимодействие происходит между процессами.

Для решения этих задач мы разработали следующие библиотеки и инструменты Jetpack , упрощающие интеграцию приложений с SDK в среду выполнения SDK:

  • Библиотека- оболочка (или shim- библиотека) помогает абстрагировать взаимодействие между процессами или межпроцессное взаимодействие (IPC). Она также помогает поддерживать единый интерфейс между приложением и SDK.
  • Библиотека обратной совместимости: Эта библиотека обеспечивает обратную совместимость, гарантируя совместимость вашего SDK независимо от того, доступна ли среда выполнения SDK или нет.
  • Библиотека пользовательского интерфейса: Мы также предоставляем библиотеки для обработки удаленного отображения, например, для получения пользовательского интерфейса из SDK с поддержкой среды выполнения или для изменения размера и перестановки представлений.
Архитектурный обзор среды выполнения SDK
Диаграмма, демонстрирующая взаимодействие приложения с SDK, поддерживающим среду выполнения, через различные библиотеки.

Изменения в процессе установки

При сборке SDK с поддержкой среды выполнения в Android Studio или других инструментах вы создаете Android SDK Bundle (ASB) — формат публикации для SDK с поддержкой среды выполнения.

bundletool обрабатывает ASB для создания APK-файла для вашего SDK с поддержкой среды выполнения: этот отдельный APK-файл содержит код вашего SDK, но не код приложения.

В файле манифеста приложения указывается зависимость от имени и версии вашего SDK с поддержкой среды выполнения, и эта зависимость разрешается приложением-установщиком.

После того, как установщик получит APK-файл SDK, начнётся установка с установки APK-файла SDK. В случае успеха будет установлена ​​APK-версия приложения.

Процесс установки отличается, если приложение установлено на Android 13 и более ранних версиях, а также на устройствах, не поддерживающих среду выполнения SDK. В этом случае магазин устанавливает один APK-файл, содержащий как ваш SDK с поддержкой среды выполнения, так и код приложения. Подробнее см. в разделе «Распространение» .

Всякий раз, когда приложение в рабочей среде зависит от этого SDK, магазин приложений создает соответствующий APK-файл SDK из этого ASB и устанавливает его.

Обратная совместимость

Поскольку среда выполнения SDK была представлена ​​в Android 14, нам необходимо было обеспечить поддержку более ранних версий без создания дополнительных затрат для разработчиков SDK или приложений.

Для обеспечения обратной совместимости с Android 13 и более ранними версиями мы внедрили библиотеку Jetpack, которая позволяет беспрепятственно запускать ваш SDK с поддержкой среды выполнения независимо от того, поддерживает ли устройство среду выполнения SDK.

Следуя этому руководству, вы обеспечите обратную совместимость вашего SDK с поддержкой среды выполнения по умолчанию, и вам не потребуется предпринимать никаких дополнительных действий.

Мы подробно описываем действия, связанные с обратной совместимостью, на соответствующих этапах, но в целом следует убедиться, что вы правильно указали зависимости и используете классы *Compat везде, где это применимо.

Перенести существующие SDK

Если у вас есть существующий SDK, который вы хотели бы перенести в среду выполнения, вам не нужно переписывать весь код сразу. Вместо этого вы можете постепенно переносить существующую логику SDK в новый SDK с поддержкой среды выполнения.

Для миграции существующего SDK в среду выполнения SDK мы рекомендуем следующие три этапа:

  1. Создание SDK с поддержкой среды выполнения на переходный период , а также соответствующего SDK с поддержкой среды выполнения на более позднем этапе. Это позволит вам постепенно переносить бизнес-логику из существующего SDK и предоставит платформу для A/B-тестирования.
  2. Перенос всей существующей бизнес-логики SDK в стабильное состояние вместе с соответствующим упрощенным SDK, учитывающим среду выполнения, для упрощения миграции приложений.
  3. Поддержка заинтересованных приложений с полной миграцией для прямого использования вашего SDK с поддержкой среды выполнения без использования упрощенного SDK, учитывающего среду выполнения.

Этап 1 — Переходный период: SDK с расширенными возможностями обработки данных во время выполнения.

Для начала можно оставить часть бизнес-логики в SDK, поддерживающем работу во время выполнения. Мы называем это «толстым SDK, поддерживающим работу во время выполнения» или «внутриприкладной оболочкой».

Такой подход позволяет сохранить все или часть возможностей вашего SDK в статической библиотеке приложения, наряду с новым SDK, поддерживающим среду выполнения.

Это позволяет постепенно переносить ваши сценарии использования в SDK с поддержкой среды выполнения, а также тестировать ваш SDK с поддержкой среды выполнения в сравнении с существующим SDK.

На этом этапе разработчику приложения не нужно ничего менять в способе использования вашего SDK, поскольку необходимую работу по использованию вашего SDK выполняет статическая библиотека приложения (SDK, поддерживающий среду выполнения).

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

Этап 2 — Стационарное состояние: Тонкий SDK, учитывающий особенности среды выполнения.

В отличие от «толстого» SDK, учитывающего особенности среды выполнения, «тонкая оболочка», или «тонкий SDK, учитывающий особенности среды выполнения» (thin RA_SDK), содержит только код трансляции API и код вызова SDK, поддерживающий особенности среды выполнения, в вашей статически связанной библиотеке SDK.

На этом этапе вы должны были перенести весь код SDK из статической библиотеки приложений в SDK с поддержкой среды выполнения.

Разработчикам приложений не нужно вносить никаких изменений по сравнению с первым этапом, поскольку ваш встроенный в приложение тонкий SDK, поддерживающий среду выполнения, обрабатывает вызовы к вашему SDK с поддержкой среды выполнения внутри среды выполнения SDK.

Приложение вызывает статический SDK, который содержит только слой трансляции.
Приложение вызывает статический SDK, который содержит только слой трансляции.

Этап 3 — Полная миграция

На этом заключительном этапе вы перенесли все возможности вашего SDK в SDK с поддержкой среды выполнения и удалили все статические библиотеки из приложения.

На этом этапе вашим клиентам больше не нужно включать ваши библиотеки в свои сборки, а достаточно указать зависимости SDK в манифесте и включить вызовы SDK в код своего приложения.

Вызовы SDK перенаправляются системой в среду выполнения SDK, где автоматически загружается ваш SDK с поддержкой среды выполнения.

Архитектура полного этапа миграции, на котором рекламный код приложения напрямую вызывает SDK с поддержкой среды выполнения.
Архитектура полного этапа миграции, на котором рекламный код приложения напрямую вызывает SDK с поддержкой среды выполнения.


Введение

Шаг 2 : Настройка среды разработки