Ключевые понятия | Настройте среду разработки | Создайте RE SDK | Используйте RE SDK | Тестирование и сборка для распространения |
Ключевые понятия | Настройте среду разработки | Создайте RE SDK | Используйте RE SDK | Тестирование и сборка для распространения |
Ключевые понятия
В этом разделе объясняется архитектура среды выполнения 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 с поддержкой среды выполнения в 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:
- Создание SDK с поддержкой среды выполнения переходного периода вместе с аналогом SDK с расширенной поддержкой среды выполнения. Это позволяет постепенно переносить бизнес-логику из существующего SDK и предоставляет платформу для A/B-тестирования.
- Перемещение всей существующей бизнес-логики SDK в стабильное состояние на длительный срок с помощью аналогичного SDK с поддержкой тонкой среды выполнения, чтобы упростить миграцию приложений.
- Поддержка заинтересованных приложений с полной миграцией для использования вашего SDK с поддержкой среды выполнения напрямую без тонкого SDK с поддержкой среды выполнения.
Этап 1. Переходный период: толстый 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.
Этап 3. Полная миграция
На этом заключительном этапе вы перенесли все возможности вашего SDK в SDK с поддержкой среды выполнения и удалили все статические библиотеки из приложения.
На этом этапе клиентам вашего приложения больше не нужно включать ваши библиотеки в свои сборки, а нужно только перечислить зависимости SDK в манифесте и включить вызовы SDK в код своего приложения.
Вызовы SDK перенаправляются системой в среду выполнения SDK, где ваш SDK с поддержкой среды выполнения автоматически загружается.