TV 앱은 스마트폰 및 태블릿 앱과 동일한 구조를 사용합니다. 이러한 유사성이 있으므로 기존 앱을 수정하여 TV 기기에서도 실행되게 하거나 Android 앱 빌드에 관해 이미 알고 있는 지식을 바탕으로 새로운 앱을 만들 수 있습니다.
중요: 앱이 Google Play에서 Android TV 앱으로 승인받으려면 특정 요구사항을 준수해야 합니다. 자세한 정보는 TV 앱 품질에 나열된 요구사항을 참조하세요.
이 과정에서는 TV 앱을 빌드하기 위한 개발 환경을 준비하는 방법과 앱이 TV 기기에서 실행될 수 있게 하는 데 필요한 최소 변경사항을 설명합니다.
TV 디자인 및 TV 레이아웃 빌드도 참조해야 합니다. 또한 Android TV GitHub 저장소에 있는 Android Leanback 샘플 앱을 사용해 보세요. .
미디어 형식 지원 결정
Android TV가 지원하는 코덱, 프로토콜, 형식에 관한 정보는 다음 문서를 참조하세요.
TV 프로젝트 설정
이 섹션에서는 TV 기기에서 실행되도록 기존 Android 앱을 수정하거나 새로운 앱을 만드는 방법을 설명합니다. 기존 Android 앱이 있는 경우 Android TV 지원을 추가하면 기존 앱 아키텍처를 다시 사용하여 TV용 사용자 인터페이스를 디자인할 수 있습니다.
다음은 TV 기기에서 실행되는 앱을 만드는 데 사용해야 하는 주요 구성요소입니다.
- TV 활동(필수) - 애플리케이션 매니페스트에 TV 기기에서 실행할 활동을 선언합니다.
- TV 라이브러리(선택사항) - TV 기기에서 사용할 수 있는 여러 androidx 라이브러리에서 사용자 인터페이스 빌드를 위한 위젯을 제공합니다.
기본 요건
TV용 앱을 빌드하기 전에 다음 작업을 해야 합니다.
-
SDK 도구를 버전 24.0.0 이상으로 업데이트
SDK 도구를 업데이트하면 TV용 앱을 빌드하고 테스트할 수 있습니다. -
SDK를 Android 5.0(API 21) 이상으로 업데이트
업데이트된 플랫폼 버전에서는 TV 앱용 새 API를 제공합니다. -
앱 프로젝트 만들기 또는 업데이트
TV 기기용 새 API에 액세스하려면 프로젝트를 만들거나 Android 5.0(API 수준 21) 이상을 타겟팅하는 기존 프로젝트를 수정해야 합니다.
TV 활동 선언
TV 기기에서 실행되도록 개발하는 애플리케이션은 해당 manifest에서 TV 런처 활동을
선언해야 합니다. 이 작업을 위해 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>
이 예의 두 번째 활동 manifest 항목은 해당 활동을 TV 기기에서 실행할 활동으로 지정합니다.
주의: 앱에
CATEGORY_LEANBACK_LAUNCHER
인텐트 필터를
포함하지 않으면 TV 기기에서 Google Play를 실행하는 사용자에게 앱이 표시되지 않습니다. 또한, 개발자 도구를 사용해 TV 기기에 앱을 로드했을 때 이 필터가 앱에 없으면 앱이 TV 사용자 인터페이스에 표시되지 않습니다.
TV에서 사용하도록 기존 앱을 수정할 경우 앱이 스마트폰 및 태블릿에서 사용하는 활동 레이아웃을 TV에서도 사용해서는 안 됩니다. TV 앱의 사용자 인터페이스(또는 기존 앱의 TV 부분)는 소파에서 리모컨을 사용해 쉽게 탐색할 수 있는 더욱 단순한 인터페이스를 제공해야 합니다. TV 앱 디자인에 관한 가이드라인은 TV 디자인 가이드를 참조하세요. TV 인터페이스 레이아웃의 최소 구현 요구사항에 관한 자세한 정보는 TV 레이아웃 빌드를 참조하세요.
Leanback 지원 선언
앱이 Android TV에 필요한 Leanback 사용자 인터페이스를 사용한다고 선언합니다. Android TV는 물론
휴대기기(스마트폰, 웨어러블 기기, 태블릿 등)에서도 실행되는 앱을 개발하는 경우
required
속성 값을 false
로 설정합니다. required
속성 값을
true
로 설정하면 앱이 Leanback UI를 사용하는 기기에서만 실행됩니다.
<manifest> <uses-feature android:name="android.software.leanback" android:required="false" /> ... </manifest>
터치스크린이 필수가 아니라고 선언
TV 기기에서 실행될 애플리케이션은 터치스크린으로 입력을 받지 않습니다.
이를 명확하게 하려면 TV 앱의 매니페스트에서
android.hardware.touchscreen
기능이 필요하지 않음을 선언해야 합니다. 이 설정은 앱을
TV 기기에서 작동하는 것으로 식별하고 Google Play에서 TV 앱으로 인식되도록 하는 데
필요합니다. 다음 코드 예시는 이 manifest 선언을 포함하는 방법을 보여줍니다.
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest>
주의: 이 코드 예에 표시된 것처럼 앱 manifest에서 터치스크린이 필요하지 않다고 선언해야 합니다. 그러지 않으면 앱이 TV 기기의 Google Play에 표시되지 않습니다.
홈 화면 배너 제공
애플리케이션에 Leanback 런처 인텐트 필터가 포함되어 있으면 각 현지화에 관해 홈 화면 배너 이미지를 제공해야 합니다. 배너는 앱과 게임 행의 홈 화면에 나타나는 앱 실행 지점입니다. 앱에 배너를 추가하려면 다음과 같이 매니페스트에 배너를 설명하세요.
<application ... android:banner="@drawable/banner" > ... </application>
<application>
태그가 포함된 android:banner
속성을 사용하여
모든 애플리케이션 활동에 기본 배너를 제공하거나
<activity>
태그를 포함하여 특정 활동에 관한 배너를 제공합니다.
배너는 크기가 320 x 180픽셀인 xhdpi 리소스여야 합니다. 텍스트는 이미지에 포함되어 있어야 합니다. 앱이 두 개 이상의 언어로 제공되는 경우 별도 버전의 배너를 지원되는 각 언어의 텍스트로 제공해야 합니다.
런처 색상 변경
TV 앱이 실행되면 채워진 원 모양이 확장되는 애니메이션이 표시됩니다. 이 애니메이션의 색상을 맞춤설정하려면 TV 앱 또는 활동의 android:colorPrimary
속성을 특정 색상으로 설정합니다. 다음 스니펫에 나와 있는 것처럼
테마 리소스 XML 파일에서 두 개의 추가 전환 중복 속성도 true
로
설정해야 합니다.
<resources> <style ... > <item name="android:colorPrimary">@color/primary</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> <item name="android:windowAllowEnterTransitionOverlap">true</item> </style> </resources>
테마 및 스타일 사용에 관한 자세한 정보는 스타일 및 테마를 참조하세요.
TV 라이브러리 추가
Jetpack에는 TV 앱에 사용할 androidx 패키지가 포함되어 있습니다. 이러한 라이브러리는 TV 기기에 사용할 API와 사용자 인터페이스 위젯을 제공합니다.
androidx.leanback.app
androidx.leanback.database
androidx.leanback.graphics
androidx.leanback.media
androidx.leanback.preference
androidx.leanback.system
androidx.leanback.widget
androidx.leanback.widget.picker
TV 앱 빌드
위에서 설명한 단계를 완료했으면 큰 화면용 앱 빌드를 시작해볼 때가 되었습니다! 다음 추가 주제를 살펴보면 TV용 앱 빌드에 도움이 될 것입니다.
- TV 재생 앱 빌드 - TV는 엔터테인먼트를 제공하기 위해 만들어졌습니다. 그러므로 Android에서는 동영상과 음악을 재생하는 TV 앱을 빌드하는 데 필요한 일련의 사용자 인터페이스 도구와 위젯을 제공하여 사용자가 원하는 콘텐츠를 탐색할 수 있도록 합니다.
- 사용자가 TV에서 콘텐츠를 찾도록 돕기 - 앱에는 사용자가 바로 이용할 수 있는 모든 콘텐츠가 있으므로 사용자가 즐기는 콘텐츠를 찾도록 도와주는 작업은 콘텐츠를 제공하는 것만큼이나 중요합니다. 이 과정에서는 콘텐츠를 TV 기기에 표시하는 방법을 설명합니다.
- TV 게임 빌드 - TV 기기는 게임하기에 좋은 플랫폼입니다. TV에서 우수한 게임 환경을 빌드하는 방법에 관한 정보는 이 주제를 참조하세요.
- TV 입력 서비스 빌드 - 동영상 콘텐츠를 선형 '지상파 TV' 스타일로 보여줄 수 있습니다. 여기에는 사용자가 프로그램 가이드 및 채널 위/아래 버튼을 이용해 액세스할 수 있는 채널과 프로그램도 포함되어 있습니다.
TV 앱 실행
앱 실행은 개발 과정에서 중요한 부분입니다. USB 디버깅을 지원하도록 구성된 TV 기기에서 앱을 실행하거나 가상 TV 기기를 사용할 수 있습니다.
실제 기기에서 실행
다음 단계에 따라 TV 기기를 설정합니다.
- USB 케이블을 사용하여 TV 기기를 개발 시스템에 연결합니다. 필요한 경우 기기 제조업체에서 제공한 설명서를 참조하세요.
- TV 기기에서 설정으로 이동합니다.
- 기기 행에서 정보를 선택합니다.
- 아래의 빌드로 스크롤하여 빌드를 선택합니다. '개발자가 되셨습니다.' 메시지가 표시될 때까지 여러 번 선택합니다.
- 설정으로 돌아갑니다. 환경설정 행에서 개발자 옵션을 선택합니다.
- 디버깅 > USB 디버깅을 선택하고 설정을 선택합니다.
- TV 홈 화면으로 돌아갑니다.
TV 기기에서 애플리케이션을 테스트하려면 다음과 같이 합니다.
- Android 스튜디오에서 프로젝트를 선택하고 툴바에서
실행
을 클릭합니다.
- 배포 타겟 선택 창에서 TV 기기를 선택하고 확인을 클릭합니다.
가상 기기에서 실행
Android SDK의 AVD Manager는 애플리케이션 실행과 테스트를 위한 가상 TV 기기를 만들 수 있는 기기 정의를 제공합니다.
가상 TV 기기를 만들려면 다음과 같이 합니다.
- AVD Manager를 시작합니다. 자세한 정보는 AVD Manager 도움말을 참조하세요.
- AVD Manager 대화상자에서 기기 정의 탭을 클릭합니다.
- Android TV 기기 정의 중 하나를 선택하고 AVD 만들기를 클릭합니다.
- 에뮬레이터 옵션을 선택하고 확인을 클릭하여 AVD를 만듭니다.
참고: TV 에뮬레이터 기기가 최고의 성능을 발휘하게 하려면 x86 에뮬레이터를 사용하고 호스트 GPU 사용 옵션을 사용 설정합니다. 또한, 사용할 수 있는 경우 가상 기기 가속을 사용합니다. 에뮬레이터의 하드웨어 가속에 관한 자세한 정보는 하드웨어 가속 구성을 참조하세요.
가상 TV 기기에서 애플리케이션을 테스트하려면 다음과 같이 합니다.
- Android 스튜디오에서 프로젝트를 선택하고 툴바에서
실행
을 클릭합니다.
- 배포 타겟 선택 창에서 가상 TV 기기를 선택하고 확인을 클릭합니다.
에뮬레이터 사용에 관한 자세한 정보는 에뮬레이터 사용을 참조하세요. Android 스튜디오에서 가상 기기로 앱을 배포하는 방법에 관한 자세한 정보는 Android 스튜디오로 디버깅을 참조하세요.