Создайте и используйте 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: Библиотека-оболочка (или 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 Runtime.

Следуя этому руководству, ваш 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 с поддержкой среды выполнения.

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

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

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

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

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

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

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


Введение

Шаг 2. Настройте среду