방법

Android XR용 앱 게시 및 배포에 관해 알아야 할 5가지 사항

전문 길이: 4분
Jan Kleinert
개발자 관계팀 엔지니어

Android XR로 구동되는 삼성 갤럭시 XR이 출시되었습니다. 이 블로그 게시물은 Android XR Spotlight Week의 일부로, Android XR용 앱을 학습, 빌드, 준비하는 데 도움이 되는 리소스(블로그 게시물, 동영상, 샘플 코드 등)를 제공합니다.  

오늘은 개발 여정의 마지막 단계 중 하나인 이러한 환경이 사용자에게 성공적으로 도달하도록 하는 데 중점을 둡니다. 올바르게 게시하면 앱이 효율적으로 패키징되고, 적절한 기기에서 검색되며, 최상의 방식으로 표시됩니다.

Google Play에 Android XR용 앱을 게시하고 배포할 때 알아야 할 5가지 사항은 다음과 같습니다.

1. Android XR 앱 품질 가이드라인을 준수하여 품질 유지 

게시하기 전에 가장 중요한 단계 중 하나는 앱이 안전하고 편안하며 성능이 우수한 사용자 환경을 제공하는지 확인하는 것입니다.

Android XR 앱 품질 가이드라인을 따르면 앱이 갤럭시 XR과 같은 기기에서 사용자에게 우수한 환경을 제공할 수 있습니다.

품질이 중요한 이유

이 가이드라인은 대형 화면 앱 품질 가이드라인을 기반으로 하며 다음을 비롯한 중요한 XR 관련 기준에 중점을 둡니다.

  • 안전 및 편안함: 이는 가장 중요한 요소입니다. 이 가이드라인은 카메라 움직임과 프레임 속도에 대한 표준을 설정하고 스트로빙과 같은 시각적 요소를 제한하여 멀미를 유발하지 않도록 도와줍니다.
  • 성능: 앱이 지연을 방지하고 부드럽고 편안한 환경을 보장하려면 타겟 프레임 속도와 같은 성능 측정항목을 충족해야 합니다.
  • 상호작용: 가이드라인에서는 시선 추적 및 손 추적 입력과 잘 작동하도록 상호작용 타겟의 권장 최소 크기 (예: 최소 48dp, 권장 56dp)를 지정합니다.

2. 앱 매니페스트를 올바르게 구성

AndroidManifest.xml 파일은 앱에 관한 중요 정보를 설명합니다. Android 빌드 도구, Android 시스템, Google Play는 이 정보를 사용하여 개발자가 어떤 종류의 환경을 빌드했고 어떤 하드웨어 기능이 필요한지 파악합니다. 올바른 기기 타겟팅과 앱 실행을 위해서는 적절한 구성이 중요합니다.

앱에서 사용하는 Android XR SDK 지정

앱 매니페스트에 android.software.xr.api.spatial 또는 android.software.xr.api.openxr를 포함하여 Jetpack XR SDK로 빌드하는지 아니면 OpenXR 또는 Unity로 빌드하는지 나타냅니다.

사용된 SDK매니페스트 선언
Jetpack XR SDKandroid.software.xr.api.spatial
OpenXR 또는 Unityandroid.software.xr.api.openxr

OpenXR 또는 Unity를 사용하여 앱을 빌드하는 경우 android:required 속성을 true로 설정해야 합니다. Jetpack XR SDK로 빌드된 앱의 경우 앱이 Android XR 전용 출시 트랙에 게시되면 android:required 속성을 true로 설정하고 앱이 모바일 출시 트랙에 게시되면 android:required 속성을 false로 설정합니다.

활동 시작 모드 설정

기본 활동에서 android.window.PROPERTY_XR_ACTIVITY_START_MODE 속성을 사용하여 기본 사용자 환경을 정의합니다.

시작 모드목적SDK
XR_ACTIVITY_START_MODE_HOME_SPACE공유 멀티태스킹 환경인 홈 스페이스에서 앱을 실행합니다.Jetpack XR SDK
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED완전한 몰입형 단일 앱 환경인 전체 공간에서 실행됩니다.Jetpack XR SDK
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED완전한 몰입형 단일 앱 환경인 전체 공간에서 실행됩니다. OpenXR 또는 Unity로 빌드된 앱은 항상 전체 공간에서 실행됩니다.OpenXR 또는 Unity

런타임에 선택적 하드웨어 기능 확인

선택사항인 XR 기능 (예: 손 추적 또는 컨트롤러)이 앱에 정말로 필요한 경우가 아니라면 android:required="true"로 설정하지 마세요. 기기에서 필수 기능을 지원하지 않으면 Google Play에서 해당 기기에 앱을 숨깁니다. 필수로 설정된 기능이 있지만 앱이 해당 기능 없이도 작동할 수 있다면 불필요하게 잠재고객을 제한할 수 있습니다.

대신 hasSystemFeature()을 사용하여 PackageManager 클래스를 통해 런타임에 고급 기능을 동적으로 확인하세요.

  Kotlin

val hasHandTracking = packageManager.hasSystemFeature("android.hardware.xr.input.hand_tracking")

if (hasHandTracking) {

    // Enable high-fidelity hand tracking features

} else {

    // Provide a fallback experience

}

이렇게 하면 앱이 광범위하게 호환되고 고급 기능을 사용할 수 있을 때 활용할 수 있습니다.


3. Play Asset Delivery (PAD)를 사용하여 대규모 애셋 전송

몰입형 앱과 게임에는 표준 크기 제한을 초과할 수 있는 대규모 애셋이 포함되는 경우가 많습니다. Play Asset Delivery (PAD)를 사용하여 대규모의 고품질 애셋을 관리합니다. PAD는 콘텐츠의 점진적 다운로드를 위한 유연한 전송 모드(설치 시, 빠른 추적, 주문형)를 제공합니다. Android XR용으로 빌드된 앱은 추가 애셋 팩을 전송할 수 있습니다. 주문형 또는 패스트 팔로우로 전송된 애셋 팩의 누적 합계가 4GB인 대신 이러한 앱에는 더 높은 누적 합계인 30GB가 제공됩니다.

Unity로 빌드하는 개발자는 Play Asset Delivery와 함께 Unity Addressables를 사용하여 애셋 팩을 관리합니다.


4. 공간 동영상 미리보기로 앱 선보이기 

XR 헤드셋에서 Play 스토어를 둘러보는 사용자의 관심을 사로잡으려면 공간 동영상 애셋을 사용하여 앱의 몰입형 미리보기를 제공하면 됩니다. 180°, 360° 또는 스테레오 동영상이어야 합니다. Android XR 기기에서 Play 스토어는 이를 몰입형 3D 미리보기로 자동 표시하므로 사용자는 앱을 설치하기 전에 콘텐츠의 깊이와 크기를 경험할 수 있습니다.


5. Google Play 출시 트랙 선택

Google Play에서는 동일한 Play Console 계정을 사용하는 두 가지 경로를 통해 Android XR 앱을 게시할 수 있습니다.

옵션 A: 모바일 출시 트랙에서 계속 (공간화된 모바일 앱의 경우)

기존 모바일 앱에 공간 XR 기능을 추가하는 경우 XR 기능이나 콘텐츠를 기존 Android App Bundle (AAB)에 번들로 묶을 수 있습니다.

이 접근 방식은 앱이 모바일 기기와 XR 기기 모두에서 대부분의 핵심 기능을 유지하고 모바일 트랙에 동일한 AAB를 계속 게시할 수 있는 경우에 적합합니다. 이 안내를 검토하여 이 사용 사례를 지원하도록 앱의 매니페스트 파일을 올바르게 구성하고 있는지 확인하세요.

옵션 B: 전용 Android XR 출시 트랙에 게시 

XR용 새 앱을 빌드하거나 XR 버전이 단일 AAB에 비해 기능적으로 너무 다른 경우 Android XR 전용 출시 트랙에 게시해야 합니다.

Android XR 전용 출시 트랙에 게시된 앱은 android.software.xr.api.spatial 기능 또는 android.software.xr.api.openxr 기능을 지원하는 Android XR 기기에만 표시되므로 배포를 관리할 수 있습니다.

이 가이드를 따르면 혁신적인 Android XR 앱이 고품질 사용자 환경을 제공하고, 효율적으로 패키징되고, PAD를 사용하여 원활하게 제공되고, 앱을 실행할 수 있는 기기를 타겟팅할 수 있습니다. 즐거운 게시 되세요.

작성자:

계속 읽기