728x90
Android TV?
- Android TV는 구글이 개발한 스마트 TV용 안드로이드 운영체제입니다.
- 스마트폰, 태블릿용 앱과 동일한 아키텍처를 사용합니다.
- 셋톱박스에 따라 스마트폰 용 Android OS를 기반으로 한 셋톱박스와 Android TV OS를 기반으로 한 셋톱박스로 나뉩니다. (제조사에 따라 다릅니다.)
- 개발자 가이드 : https://developer.android.com/training/tv?hl=ko
스마트폰 용 Android OS와 Android TV OS의 차이
- Google Play Store에서 사용자에게 표시되는 앱이 서로 다릅니다.
- Manifest intent-filter에 LEANBACK_LAUNCHER를 포함한 앱만이 Android TV OS의 Google Play Store앱에 표시됩니다.
- Android TV OS를 기반으로한 셋톱박스를 사용 중이라면 스마트폰 용 앱을 Play Store에서 설치할 수 없습니다.
- Android TV 앱의 UI는 Leanback 라이브러리를 사용합니다.(선택사항)
- Leanback 라이브러리를 사용하지 않고 개발이 가능하지만 난이도가 올라가지 않을까 생각합니다..
- Android TV는 banner를 추가해야 합니다.
- banner는 기존 Android에서 icon과 동일한 것으로 Android TV OS의 홈 화면에서 앱 아이콘이 됩니다.
- 스마트폰 용 Android OS를 탑재한 셋톱박스도 지원하려면 icon도 추가하는게 좋습니다.
- 등록하지 않으면 앱을 설치해도 홈 화면에 나타나지 않습니다.
Android TV 앱 개발 시 주의사항
- 개발하면서 중요하고 배포를 위해 반드시 작업해야하는 부분들을 정리해봤습니다
- 당연하지만 배포 전 Android TV 체크 리스트와 품질 가이드를 읽어보시는길 바랍니다.
- Manifest에서 필수로 추가, 설정해야 하는 내용이 있습니다.
<!--필수-->
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<!--선택-->
<uses-feature
android:name="android.software.leanback"
android:required="true" />
<!--banner 필수-->
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:banner="@drawable/app_icon_your_company"
android:supportsRtl="true"
android:theme="@style/Theme.Jhdroidtvlistlowsample">
<activity
android:name=".MainActivity"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" /> <!--필수-->
</intent-filter>
</activity>
</application>
- Manifest에서 설정이 필요한 내용
- touchscreen사용 설정을 false로 설정하지 않으면 TV 앱으로 표시되지 않습니다.
- banner를 추가해야 합니다.
- intent-filter에 LEANBACK_LAUNCHER 설정이 필요합니다.
- leanback의 경우 false로 설정해도 TV 앱으로 배포가 가능하지만 true로 설정하면 앱이 LeanbackUI를 사용하는기기에서만 실행됩니다.
- targetSdkVersion을 Android 5.0(API 21) 이상으로 설정해야 합니다.
- 새로운 Android TV 프로젝트를 만들면 자동으로 설정되어 있습니다.
- 모든 UI 요소가 D 패드(리모컨)나 게임 컨트롤러(TV 게임)에서 작동되어야 합니다.
- Leanback 라이브러리를 사용해 UI를 개발했다면 따로 신경 쓰지 않아도 됩니다.
- 배포 시 구글 콘솔에 TV 스크린샷과 배너 이미지를 필수로 추가해야 합니다.
- Android TV를 지원하려면 TV 스크린샷 1장과 TV 배너 1장을 업로해야 합니다.
- WebView를 사용하면 앱 배포 시 거절당할 수 있습니다.(확인 필요)
- 제가 예전에 TV 앱을 배포할 때 WebView 사용으로 거절당한 적이 있어서 추가했는데 가이드라인이나 품질 가이드에 정확한 내용이 없어서 확인이 필요한 부분입니다.
- 당시 단순한 텍스트만 있는 html 파일을 불러오기 위해 WebView를 사용했었습니다.
- Android TV Games 배포 가이드에는 Android TV에서 웹 브라우저를 지원하지 않는다는 내용이 존재하지만 이게 Android TV Games 배포 시에만 해당되는 내용인지 Android TV 전체에 해당되는 내용인지 확인할 수 없었습니다.
- 제가 예전에 TV 앱을 배포할 때 WebView 사용으로 거절당한 적이 있어서 추가했는데 가이드라인이나 품질 가이드에 정확한 내용이 없어서 확인이 필요한 부분입니다.
* 불확실한 내용은 추가하지 않는 편이지만 WebView관련된 내용은 경험이 있어서 추가했습니다(__)
* 글에 틀린 부분이 있으면 댓글 부탁드립니다 :D
728x90
'개발 > Android' 카테고리의 다른 글
[Android] 클래시 오브 클랜 맵(배치) 복사 앱을 만드는 방법 (0) | 2021.01.25 |
---|---|
[Android] Android TV 새로운 프로젝트 생성 (0) | 2021.01.20 |
[Android] OpenCSV로 안드로이드에서 csv 파일 읽고 쓰기 (2) | 2021.01.08 |
[Android] Timber와 Log를 Debug 상태에서만 출력하기 (0) | 2021.01.06 |
[Android] Firebase - Android 연동 방법 (0) | 2021.01.05 |