TV 앱 만들기 및 실행

TV 앱은 스마트폰 및 태블릿용 앱과 동일한 구조를 사용합니다. 이러한 유사성이 있으면 TV 기기에서도 실행되도록 기존 앱을 수정하거나 기존 앱을 기반으로 새 앱을 만들 수 있습니다. Android용 앱 개발에 대해 알아보도록 하겠습니다.

중요: 앱이 특정 요구사항을 충족해야 합니다. Google Play에서 Android TV 앱의 요건을 충족해야 합니다. 자세한 내용은 아래 나열된 요구사항을 참조하세요. (TV 앱 품질)

이 가이드에서는 TV 앱 빌드를 위한 개발 환경을 준비하는 방법과 TV 기기에서 앱을 실행할 수 있도록 하기 위해 필요한 최소 변경 사항을 충족해야 합니다.

TV용 앱 디자인에 관한 자세한 내용은 TV용 앱 디자인 TV로 이동합니다. 또한 Android TV GitHub 저장소

미디어 형식 지원 결정

코덱, 프로토콜, 형식에 관한 자세한 내용은 다음 문서를 참고하세요. Android TV에서 지원:

TV 프로젝트 설정

이 섹션에서는 TV 프로젝트를 설정하는 방법을 설명합니다. TV 기기에서 실행되도록 기존 Android 앱을 수정하거나 새로운 TV 앱 기존 Android 앱이 있는 경우 Android TV 지원을 추가하면 TV용 사용자 인터페이스를 만드는 동시에 기존 앱 아키텍처를 재사용하세요.

TV 기기에서 실행되는 앱을 제작할 때는 두 가지 기본 구성요소를 사용합니다.

  • TV 활동: 애플리케이션 매니페스트에 TV 기기에서 실행할 활동을 선언해야 합니다.
  • TV 라이브러리: 필요에 따라 androidx 라이브러리 TV 기기에서 사용할 수 있으며, 이는 이 가이드의 다른 섹션에 나와 있습니다. 이 라이브러리는 사용자 인터페이스 빌드를 위한 위젯을 제공합니다.

기본 요건

TV 앱을 빌드하려면 먼저 다음 단계를 따라야 합니다.

  • <ph type="x-smartling-placeholder"></ph><ph type="x-smartling-placeholder"></ph> SDK 도구를 버전 24.0.0 이상으로 업데이트합니다.
    업데이트된 SDK 도구를 사용하여 TV용 앱을 빌드하고 테스트할 수 있습니다.
  • SDK를 Android 5.0 (API 21) 이상으로 업데이트합니다.
    업데이트된 플랫폼 버전에서는 TV 앱용 새로운 API를 제공합니다.
  • <ph type="x-smartling-placeholder"></ph><ph type="x-smartling-placeholder"></ph> 앱 프로젝트를 만들거나 업데이트합니다.
    TV 기기용 새 API에 액세스하려면 프로젝트를 만들거나 기존 API를 수정하세요. 프로젝트에서 Android 5.0 (API 수준 21) 이상을 타겟팅하는 프로젝트를 실행합니다.

TV 활동 선언

TV 기기에서 실행되도록 고안된 애플리케이션은 TV용 런처 활동을 선언해야 합니다. kube-APIserver입니다 CATEGORY_LEANBACK_LAUNCHER 인텐트를 사용합니다. 필터링할 수 있습니다. 이 필터는 앱이 TV용으로 사용 설정된 것을 식별하고 Google Play에서 TV 앱으로 식별합니다. 사용자가 TV 홈 화면에서 앱을 선택하면 이 인텐트는 실행할 활동을 식별합니다.

다음 코드 스니펫은 manifest에서 인텐트 필터를 포함하는 방법을 보여줍니다.

<application
  android:banner="@drawable/banner" >
  ...
  <activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>

  <activity
    android:name="com.example.android.TvActivity"
    android:label="@string/app_name"
    android:theme="@style/Theme.Leanback">

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

  </activity>
</application>

이 예의 두 번째 액티비티 매니페스트 항목은 TV 기기에서 실행할 수 있습니다.

주의: 인텐트 필터 CATEGORY_LEANBACK_LAUNCHER개 TV 기기에서 Google Play를 실행하는 사용자에게는 앱이 표시되지 않습니다. 또한 개발자 도구를 사용하여 TV 기기에 로드하는 경우 앱에 이 필터가 없는 경우 TV 사용자 인터페이스에 표시되지 않습니다.

TV 앱의 사용자 인터페이스 또는 기존 앱의 TV 부분에서는 쉽게 탐색할 수 있는 간단한 인터페이스를 제공해야 합니다. 원격으로 제어할 수 있습니다. TV에서 사용하도록 기존 앱을 수정하는 경우 동일한 앱을 사용해서는 안 됩니다. TV용 활동 레이아웃입니다. TV 앱 디자인에 관한 가이드라인은 TV용 디자인을 참고하세요.

TV 기기 지원 선언

다음을 선언하여 앱이 Android TV용으로 빌드되었다고 선언합니다. android.software.leanback 기능을 사용할 수 있습니다.

앱이 모바일과 TV 모두에서 실행되는 경우 required 속성 값을 다음과 같이 설정합니다. false입니다. required 속성 값을 true로 설정하면 Google Play에서는 Android TV OS에서만 앱을 사용할 수 있도록 합니다.

<manifest>
    <uses-feature android:name="android.software.leanback"
        android:required="false" />
    ...
</manifest>

터치스크린이 필수가 아니라고 선언

TV 기기에서 실행할 애플리케이션은 입력에 터치스크린을 사용하지 않습니다. 이를 명확하게 하려면 TV 앱의 매니페스트에서 android.hardware.touchscreen 기능은 필요하지 않습니다. 이 설정은 앱이 TV 기기에서 작동할 수 있어야 하며, Google에서 앱이 TV 앱으로 인식되려면 재생. 다음 코드 예시는 이 manifest 선언을 포함하는 방법을 보여줍니다.

<manifest>
    <uses-feature android:name="android.hardware.touchscreen"
              android:required="false" />
    ...
</manifest>

주의: 앱 매니페스트에서 터치스크린이 필요하지 않음을 선언해야 합니다. 이 코드 예에 표시된 것과 같습니다. 그러지 않으면 앱이 TV용 Google Play에 표시되지 않습니다. 기기에서 사용할 수 있습니다.

홈 화면 아이콘과 배너 제공

Android TV 앱은 각 현지화에 대해 홈 화면 아이콘과 배너 이미지를 모두 제공해야 합니다. Android TV 기기에 따라 아이콘 또는 배너가 앱 실행으로 사용됩니다. 앱 및 게임 행의 홈 화면에 표시되는 포인트입니다.

앱에 추가하려면 다음과 같이 매니페스트에서 아이콘과 배너를 설명하세요.

<application
    ...
    android:icon="@mipmap/ic_launcher"
    android:banner="@drawable/banner" >
    ...
</application>

홈 화면 아이콘

Android TV 앱은 다른 모든 Android 앱과 마찬가지로 홈 화면 아이콘을 제공해야 합니다. 다음에 대한 권장사항을 보려면 자세한 애셋 요구사항을 알아보려면 Android TV 앱 아이콘 및 배너 가이드라인을 참고하세요.

android:banner 사용 속성(<application> 사용) 태그를 지정하여 모든 애플리케이션 활동에 대한 기본 배너를 제공하거나 <activity> 태그를 사용하여 특정 활동에 대한 배너를 제공합니다.

배너의 경우 320x180픽셀 크기의 xhdpi 리소스를 사용하세요. 텍스트는 이미지 앱이 두 개 이상의 언어로 제공되는 경우 각 언어로 지원되는 언어별 텍스트가 포함된 배너가 표시됩니다.

런처 색상 변경

주의: Android 12 이상에서는 SplashScreen 플랫폼 API는 Android TV 앱에서 지원되지 않습니다.

TV 앱이 실행되면 확장되고 채워진 화면과 비슷한 있습니다. 이 애니메이션의 색상을 맞춤설정하려면 android:colorPrimary를 설정하세요. 속성을 특정 색상으로 지정할 수 있습니다. 또한 2를 설정합니다. 다음 스니펫에 표시된 대로 중복 속성을 true로 변경해야 합니다. 테마 리소스 XML 파일:

<resources>
    <style ... >
      <item name="android:colorPrimary">@color/primary</item>
      <item name="android:windowAllowReturnTransitionOverlap">true</item>
      <item name="android:windowAllowEnterTransitionOverlap">true</item>
    </style>
</resources>

테마 및 스타일 사용에 대한 자세한 내용은 다음을 참조하세요. 스타일 및 테마.

Android TV OS용 앱 빌드

Jetpack에는 TV 앱에 사용할 androidx 패키지가 포함되어 있습니다.

TV용 Compose

Compose는 Android TV OS용 앱을 빌드하는 데 권장되는 방법입니다. 핵심 Compose와 함께 TV용 Compose 라이브러리는 대형 화면:

Android TV에서 Jetpack Compose 사용에서 TV용 Compose를 사용하여 TV 앱을 빌드하는 방법을 알아보세요.

Leanback UI 툴킷

Leanback UI 툴킷은 TV 기기용 API와 사용자 인터페이스 위젯을 제공합니다.

Leanback UI 툴킷을 사용하여 TV 앱을 빌드하는 방법을 알아보려면 TV 재생 앱 빌드

TV 앱 실행

앱 실행은 개발 과정에서 중요한 부분입니다. 앱을 실행할 수 있는 USB 디버깅을 지원하거나 가상 TV 기기를 사용하도록 구성된 TV 기기

실제 기기에서 실행

다음 단계에 따라 TV 기기를 설정합니다.

  1. USB 케이블을 사용하여 TV 기기를 개발 시스템에 연결합니다. 필요한 경우 기기 제조업체에서 제공한 설명서를 참조하세요.
  2. TV 기기에서 설정으로 이동합니다.
  3. 기기 행에서 정보를 선택합니다.
  4. 빌드로 스크롤하고 메시지가 표시될 때까지 빌드를 여러 번 선택합니다. "개발자가 되셨습니다."
  5. 설정으로 돌아갑니다. 환경설정 행에서 개발자 옵션을 선택합니다.
  6. 디버깅 > USB 디버깅을 선택하고 설정을 선택합니다.
  7. TV 홈 화면으로 돌아갑니다.

TV 기기에서 애플리케이션을 테스트하려면 다음과 같이 합니다.

  1. Android 스튜디오에서 프로젝트를 선택하고 실행 를 클릭합니다.
  2. Select Deployment Target 창에서 TV 기기를 선택하고 확인을 클릭합니다.

가상 기기에서 실행

Android의 AVD Manager SDK는 Android TV를 같이 운영하기 위한 가상 TV 기기를 만들 수 있는 기기 정의를 애플리케이션을 테스트할 수 있습니다

가상 TV 기기를 만들려면 다음과 같이 합니다.

  1. AVD Manager를 시작합니다. 자세한 내용은 가상 기기 만들기 및 관리
  2. AVD Manager 대화상자에서 기기 정의 탭을 클릭합니다.
  3. Android TV 기기 정의 중 하나를 선택하고 AVD 만들기를 클릭합니다.
  4. 에뮬레이터 옵션을 선택하고 OK를 클릭하여 AVD를 만듭니다.

    참고: TV 에뮬레이터 기기가 최고의 성능을 발휘하게 하려면 x86 에뮬레이터를 사용하세요. 호스트 GPU 사용 옵션을 사용 설정합니다. 가상 기기 가속도 사용 있습니다. 에뮬레이터의 하드웨어 가속에 관한 자세한 내용은 Android Emulator를 사용할 수 있습니다.

가상 TV 기기에서 애플리케이션을 테스트하려면 다음과 같이 합니다.

  1. Android 스튜디오에서 프로젝트를 선택하고 실행 를 클릭합니다.
  2. Select Deployment Target 창에서 가상 TV 기기를 선택하고 OK를 클릭합니다.

에뮬레이터 사용에 관한 자세한 내용은 Android Emulator에서 앱 실행 Android 스튜디오에서 가상 환경으로 앱을 배포하는 방법에 관한 자세한 내용은 앱 디버그를 참고하세요.

인스턴트 환경으로 TV 앱을 실행하도록 설정

사용자가 쉽게 만들 수 있는 인스턴트 환경 TV 앱을 사용해 보고 채택률을 높이는 데 도움이 될 수 있습니다.

Android TV 기기나 에뮬레이터에서 인스턴트 앱으로 실행되도록 TV 앱을 설정하려면 다음 단계를 따르세요. 먼저 안내에 따라 인스턴트 지원 App Bundle 만들기를 참고하세요.

다음으로 TV 앱의 intent-filter에서 MainActivity인 경우 LAUNCHERLEANBACK_LAUNCHERAndroidManifest.xml에서 선언됩니다.

<activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>
  </activity>

이제 TV 앱이 인스턴트 환경으로 실행되도록 구성되었습니다.

게시용 TV 앱 준비

다음 단계를 위해 TV 앱 체크리스트를 검토합니다. 을 사용하여 게시 및 배포용 TV 앱을 준비하세요.