Key concepts | Set up your development environment | Build an RE SDK | Consume the RE SDK | 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 가져오기나 애플리케이션의 크기 조정 및 재배치 할 수 있습니다.
설치 흐름의 변경사항
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로 이전하는 것이 좋습니다. 런타임:
- 상응하는 Thick 런타임 인식 SDK와 함께 전환 기간 런타임 지원 SDK 빌드 이를 통해 기존 SDK에서 비즈니스 로직을 점진적으로 이전하고 A/B 테스트를 위한 테스트 플랫폼을 제공할 수 있습니다.
- 앱을 쉽게 마이그레이션할 수 있도록 씬 런타임 인식 SDK를 사용하여 기존의 모든 SDK 비즈니스 로직을 안정된 상태로 오랫동안 이동
- 씬 런타임 인식 SDK 없이 런타임 지원 SDK를 직접 사용할 수 있도록 전체 이전으로 관심 있는 앱 지원
1단계 - 전환 기간: Thick 런타임 인식 SDK
먼저 런타임 인식 SDK에 일부 비즈니스 로직을 유지하도록 선택할 수 있습니다. 이를 Thick 런타임 인식 SDK 또는 인앱 래퍼라고 합니다.
이 접근 방식을 사용하면 SDK의 전체 또는 일부를 정적 앱 라이브러리와 새로 빌드된 런타임 지원 SDK를 함께 제공합니다.
이를 통해 사용 사례를 런타임 지원 버전으로 점진적으로 마이그레이션할 수 있습니다. 기존 SDK를 대상으로 런타임 지원 SDK를 테스트할 수 있습니다.
이 단계에서는 앱 개발자가 앱의 실행 방식을 변경할 필요가 SDK를 사용하는 경우 SDK의 작업을 수행하는 것은 정적 앱 라이브러리 (런타임 인식 SDK)이기 때문입니다. 소비하는 데 필요합니다.
<ph type="x-smartling-placeholder">2단계 - 안정적인 상태: 씬 런타임 인식 SDK
얇은 런타임 인식 SDK와 달리 씬 래퍼 또는 씬 런타임 인식 SDK (씬 RA_SDK), API 변환 및 런타임 지원 SDK 호출만 포함 코드를 작성할 수 있습니다.
이 단계에서 모든 SDK 코드를 런타임 지원 SDK에 가져올 수 있습니다.
앱 개발자가 1단계에서 변경하지 않아도 됩니다. 인앱은 씬 런타임 인식 SDK가 SDK 내에서 런타임 지원 SDK 호출을 처리합니다. 런타임.
<ph type="x-smartling-placeholder">3단계 - 전체 마이그레이션
이 마지막 단계에서는 모든 SDK 기능을 런타임 지원 SDK를 추가하고 앱에서 모든 정적 라이브러리를 삭제했습니다.
이 시점에서 앱 클라이언트는 더 이상 라이브러리를 빌드하고, 매니페스트에 SDK 종속 항목만 나열하고 SDK 호출을 처리할 수 있습니다.
SDK 호출은 시스템에 의해 SDK 런타임으로 라우팅됩니다. 런타임 지원 SDK가 자동으로 로드됩니다.
<ph type="x-smartling-placeholder">