런타임 지원 SDK 빌드 및 사용

1
Key concepts
2
Set up your development environment
3
Build an RE SDK
4
Consume the RE SDK
5
Testing, and building for distribution

주요 개념

이 섹션에서는 SDK 런타임 아키텍처, 런타임 지원 SDK 설치 방식, 이전 버전과의 호환성, 기존 SDK를 SDK 런타임으로 이전하는 방법을 설명합니다.

용어 설명

  • 런타임 지원 SDK (RE SDK): SDK 런타임에서 실행되도록 만들어진 SDK 애플리케이션 환경을 만들고 프로세스 간 통신을 통해 (IPC).
  • 런타임 인식 SDK (RA SDK): 런타임을 지원하지 않는 SDK로, 앱에 연결되어 있습니다. 정적으로 생성됩니다. 여기에는 기존 SDK 코드와 런타임 지원 SDK를 호출할 새 코드가 포함될 수 있습니다.
    • 정적으로 연결된 또는 정적 SDK라고도 합니다.
  • Shim: 시스템 전반에서 추상화된 통신을 지원하는 Jetpack 라이브러리입니다. 프로세스 또는 프로세스 간 통신 (IPC), app-SDK 인터페이스입니다.

SDK 런타임 아키텍처

SDK 런타임은 client-server 유형 모델의 성능을 모니터링할 수 있습니다

주요 차이점은 '클라이언트'는 (앱)과 '서버' (runtime-enabled 같은 기기에서 실행되고, 이 통신은 프로세스 전반에서 발생합니다.

이러한 어려움을 해소하기 위해 Google에서는 다음과 같은 기능을 마련했습니다. 간소화를 위한 Jetpack 라이브러리 및 도구 SDK 런타임 내에서 앱과 SDK 간 통합:

  • Shim 라이브러리: 래퍼 라이브러리 (또는 shim)는 추상화를 지원합니다. 프로세스 간 통신 (IPC)을 통해 통신하도록 할 수 있습니다. 또한 앱과 SDK 간 인터페이스를 동일하게 유지하는 데 도움이 됩니다.
  • Backcompat 라이브러리: 이 라이브러리는 이전 버전과의 호환성을 처리하므로 SDK 런타임이 나타냅니다.
  • UI 라이브러리: 원격 프레젠테이션을 처리하는 라이브러리도 제공합니다. 런타임 지원 SDK에서 UI 가져오기나 애플리케이션의 크기 조정 및 재배치 할 수 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다. <ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">SDK 런타임 아키텍처 개요</ph>
다양한 라이브러리를 통해 런타임 지원 SDK와 상호작용하는 앱을 보여주는 다이어그램

설치 흐름의 변경사항

Android 스튜디오나 다른 도구에서 런타임 지원 SDK를 빌드할 때 만들기 Android SDK 번들 ASB(런타임 지원 SDK의 게시 형식)

bundletool이 ASB를 처리합니다. 를 생성합니다. 이 별도의 APK에는 런타임 지원 SDK를 위한 APK가 들어 있습니다. SDK 코드는 있지만 앱 코드는 없습니다.

앱의 매니페스트 파일에서 런타임 지원 SDK 이름에 대한 종속 항목을 선언합니다. 설치 프로그램 앱에서 이 종속 항목을 해결합니다.

설치 프로그램에서 SDK APK를 제공하면 설치가 SDK APK 설치 성공하면 앱의 APK가 설치됩니다.

앱이 Android 13 및 이전 버전에 설치되어 있고 SDK 런타임을 지원하지 않는 기기 이 시나리오에서는 상점에서 런타임 지원 SDK와 앱 코드를 둘 다 포함하는 단일 APK 자세한 내용은 배포 섹션을 참고하세요.

앱이 프로덕션에서 이 SDK를 사용할 때마다 앱 스토어는 이 ASB에서 올바른 SDK APK를 가져와서 설치합니다.

이전 버전과의 호환성

SDK 런타임이 Android 14에 도입됨에 따라 새 버전을 출시할 수 있게 됩니다

Android 13 이하의 이전 버전과의 호환성을 처리하기 위해 SDK 런타임의 기기 지원과 관계없이 런타임 지원 SDK를 원활하게 실행할 수 있는 Jetpack 라이브러리를 도입했습니다.

이 가이드를 따르면 런타임 지원 SDK가 기본적으로 이전 버전과 호환되므로 별도로 취해야 할 조치는 없습니다.

관련 단계에서 이전 버전과의 호환성과 연결된 작업이 무엇인지 강조하지만, 일반적으로 올바른 종속 항목을 선언하고 해당하는 경우 *Compat 클래스를 사용하는지 확인해야 합니다.

기존 SDK 이전

런타임으로 마이그레이션하려는 기존 SDK가 있다면 한 번에 전체 코드베이스를 리팩터링할 수 있습니다. 대신 기존 SDK 로직을 새로운 런타임 지원 SDK로 점진적으로 마이그레이션할 수도 있습니다.

다음 세 단계에 따라 기존 SDK를 SDK로 이전하는 것이 좋습니다. 런타임:

  1. 상응하는 Thick 런타임 인식 SDK와 함께 전환 기간 런타임 지원 SDK 빌드 이를 통해 기존 SDK에서 비즈니스 로직을 점진적으로 이전하고 A/B 테스트를 위한 테스트 플랫폼을 제공할 수 있습니다.
  2. 앱을 쉽게 마이그레이션할 수 있도록 씬 런타임 인식 SDK를 사용하여 기존의 모든 SDK 비즈니스 로직을 안정된 상태로 오랫동안 이동
  3. 씬 런타임 인식 SDK 없이 런타임 지원 SDK를 직접 사용할 수 있도록 전체 이전으로 관심 있는 앱 지원

1단계 - 전환 기간: Thick 런타임 인식 SDK

먼저 런타임 인식 SDK에 일부 비즈니스 로직을 유지하도록 선택할 수 있습니다. 이를 Thick 런타임 인식 SDK 또는 인앱 래퍼라고 합니다.

이 접근 방식을 사용하면 SDK의 전체 또는 일부를 정적 앱 라이브러리와 새로 빌드된 런타임 지원 SDK를 함께 제공합니다.

이를 통해 사용 사례를 런타임 지원 버전으로 점진적으로 마이그레이션할 수 있습니다. 기존 SDK를 대상으로 런타임 지원 SDK를 테스트할 수 있습니다.

이 단계에서는 앱 개발자가 앱의 실행 방식을 변경할 필요가 SDK를 사용하는 경우 SDK의 작업을 수행하는 것은 정적 앱 라이브러리 (런타임 인식 SDK)이기 때문입니다. 소비하는 데 필요합니다.

<ph type="x-smartling-placeholder">
</ph> 앱은 자체적으로 정적 런타임 인식 SDK를 호출합니다. 이 SDK에는 런타임 지원 SDK와 그 안에 있는 다른 비즈니스 로직을 호출하는 변환 계층이 포함될 수 있습니다.
앱이 자체적으로 정적 런타임 인식 SDK를 호출합니다. 이 SDK에는 런타임 지원 SDK와 그 안에 있는 다른 비즈니스 로직을 호출하는 변환 레이어가 포함될 수 있습니다.

2단계 - 안정적인 상태: 씬 런타임 인식 SDK

얇은 런타임 인식 SDK와 달리 씬 래퍼 또는 씬 런타임 인식 SDK (씬 RA_SDK), API 변환 및 런타임 지원 SDK 호출만 포함 코드를 작성할 수 있습니다.

이 단계에서 모든 SDK 코드를 런타임 지원 SDK에 가져올 수 있습니다.

앱 개발자가 1단계에서 변경하지 않아도 됩니다. 인앱은 씬 런타임 인식 SDK가 SDK 내에서 런타임 지원 SDK 호출을 처리합니다. 런타임.

<ph type="x-smartling-placeholder">
</ph> 앱이 자체 내에서 변환 레이어만 포함된 정적 SDK를 호출합니다.
앱이 자체 내에서 변환 레이어만 포함된 정적 SDK를 호출합니다.

3단계 - 전체 마이그레이션

이 마지막 단계에서는 모든 SDK 기능을 런타임 지원 SDK를 추가하고 앱에서 모든 정적 라이브러리를 삭제했습니다.

이 시점에서 앱 클라이언트는 더 이상 라이브러리를 빌드하고, 매니페스트에 SDK 종속 항목만 나열하고 SDK 호출을 처리할 수 있습니다.

SDK 호출은 시스템에 의해 SDK 런타임으로 라우팅됩니다. 런타임 지원 SDK가 자동으로 로드됩니다.

<ph type="x-smartling-placeholder">
</ph> 앱의 광고 코드가 런타임 지원 SDK를 직접 호출하는 전체 이전 단계의 아키텍처
앱의 광고 코드가 런타임 지원 SDK를 직접 호출하는 전체 이전 단계의 아키텍처


소개

2단계: 개발 환경 설정