728x90
Android TV 앱 개발을 위한 새로운 프로젝트 생성
- Create New Project 창에서 Android TV - Empty Activity를 선택해 프로젝트 생성
- No Activity를 선택하지 않는 이유
- No Activitiy를 선택해 프로젝트를 생성하면 Android TV를 위한 기본적인 세팅이 되지 않아 불편합니다.
- No Activity를 선택하지 않는 이유
- Empty Activity를 선택해서 프로젝트를 생성하면 기존에 보던 새로운 프로젝트와 다르게 뭔가 파일이 많이 생성된 것을 확인할 수 있습니다.
- 샘플 프로젝트 같은 느낌으로 바로 빌드해서 실행하면 여러 가지 레이아웃을 경험할 수 있습니다.
- 여기서 생성된 클래스들을 참고하면서 개발하는 것이 좋지만 당장은 필요하지 않기 때문에 MainActivity를 제외하고 전부 지워줍니다.(선택)
- 불필요한 리소스도 제거합니다.
- drawable
- default_background.xml
- movie.png
- layout
- activity_details.xml
- drawable
기본적인 세팅 확인
- Manifest 확인
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.jhdroid.tv.sample">
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.software.leanback"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.Jhdroidtvsample">
<activity
android:name=".MainActivity"
android:banner="@drawable/app_icon_your_company"
android:icon="@drawable/app_icon_your_company"
android:label="@string/app_name"
android:logo="@drawable/app_icon_your_company"
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>
- 기존 프로젝트와 다르게 Manifest에 뭔가 많이 추가된 것을 확인 가능합니다.
- uses-feature
- touchscreen
- 해당 설정을 false로 변경하지 않으면 Play Store에서 Android TV 앱으로 인식되지 않습니다.
- leanback
- true로 설정하면 앱이 Leanback UI를 사용하는 기기에서만 실행됩니다.
- touchscreen
- banner
- Android TV 홈 화면에서 앱 아이콘을 대체합니다.
- intent-filter
- category.LEANBACK_LAUNCHER
- 스마트폰 용 앱에서의 LAUNCHER와 동일한 역할을 하며 이 선언을 빼먹으면 Android TV 앱으로 인식되지 않습니다.
- category.LEANBACK_LAUNCHER
- uses-feature
- gradle 확인
plugins {
id 'com.android.application'
id 'kotlin-android'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.1"
defaultConfig {
applicationId "com.jhdroid.tv.sample"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.leanback:leanback:1.0.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.github.bumptech.glide:glide:3.8.0'
}
- Manifest와 다르게 gradle은 스마트폰 용 프로젝트에 비해 짧습니다.
- androidx.leanback:leanback
- Android TV 앱 개발을 위한 UI 템플릿을 제공하며 leanback 라이브러리를 통해 UI 개발을 합니다.
- glide는 샘플 코드 때문에 추가되었으며 사용하지 않으면 지워도 됩니다.(선택)
- androidx.leanback:leanback
- 어차피 추가하게 될 설정을 미리 추가합니다.
android {
...
buildTypes {
...
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
...
- 여기까지 완료됐다면 기본적인 세팅은 끝나고 개발을 시작하면 됩니다.
- 다음에는 Leanback 라이브러리의 UI 템플릿을 확인하는 글로 찾아오겠습니다 감사합니다!
* 글에 틀린 부분이 있으면 댓글 부탁드립니다 :D
728x90
'개발 > Android' 카테고리의 다른 글
[Android] BottomNavigationView 선택되지 않은 메뉴의 라벨이 보이지 않을 때 (0) | 2021.04.03 |
---|---|
[Android] 클래시 오브 클랜 맵(배치) 복사 앱을 만드는 방법 (0) | 2021.01.25 |
[Android] Android TV와 개발 주의사항 (2) | 2021.01.19 |
[Android] OpenCSV로 안드로이드에서 csv 파일 읽고 쓰기 (2) | 2021.01.08 |
[Android] Timber와 Log를 Debug 상태에서만 출력하기 (0) | 2021.01.06 |