패널 TV 및 통신사 STB와 같은 일부 유형의 Android TV 기기에는 실시간 TV 콘텐츠를 재생하는 TV 애플리케이션이 필요합니다. Android 플랫폼과 함께 제공되는 참조용 TV 앱(실시간 TV)은 맞춤설정하거나 확장하거나 대체할 수 있습니다. 소스 코드는 Android 오픈소스 프로젝트에서 사용할 수 있습니다.
이 문서에는 Android 텔레비전 기기와 관련하여 실시간 TV 기반의 시스템 TV 앱을 빌드하고 맞춤설정하는 방법이 요약되어 있습니다. TV 애플리케이션을 확장하여 기기 제조업체 또는 국가별 기능을 구현할 수 있지만 이는 참조용 TV 앱의 범위에 속하지 않습니다.
종송 항목
TV 애플리케이션은 TV 입력 프레임워크의 구성요소이며 다른 구성요소와 별개로 사용할 수 없습니다. 즉, TIF가 포함된 기기만 실시간 TV 애플리케이션을 실행할 수 있습니다.
실시간 TV 애플리케이션은 Android API에 종속됩니다. 분기별로 API 수준에 관한 종속 항목이 서로 다릅니다.
표 1. 실시간 TV 분기.
분기 | 대상 API 레벨 | 최소 API 레벨 |
---|---|---|
master | 24(Android 7.0) | 23 |
android-live-tv | 23(Android 6.0) | 21 |
android-live-tv-l-mr1 | 22(Android 5.1) | 21 |
소스 가져오기
시작하려면 Git에서 어떤 실시간 TV 버전을 가져올지 선택합니다. 아래 지침은 최신 버전의 실시간 TV와 관련이 있지만 마스터의 분기를 위의 표에 나열된 다른 분기로 변경하여 초기 버전을 쉽게 선택할 수 있습니다.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8 -c
빌드
실시간 TV 코드를 빌드하려면 다음을 실행합니다.
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
푸시
실시간 TV를 테스트 기기에 푸시하는 방법은 다음과 같습니다.
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
개발자가 실시간 TV 앱에 시스템 권한을 포함하고 싶어하는 경우 처음 설치할 때 다음을 사용하여 권한을 /system/priv-app에 푸시해야 합니다.
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
테스트
실시간 TV가 기기에 설치된 후에는 제대로 통합되었는지 테스트해야 합니다. TV 앱에 호환성 테스트 도구 모음 및 CTS 인증기 테스트를 실행하는 것 외에 아래의 테스트도 사용할 수 있습니다.
단위 테스트
실시간 TV 앱과 관련된 단위 테스트 및 기능 테스트가 있습니다. 테스트를 실행하려면 기기 또는 에뮬레이터가 연결되어 있어야 합니다.
adb shell logcat -c m LiveTv TVTestInput TVUnitTests -j20 &&\ adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\ adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk && \ adb install -r -d $OUT/data/app/TVUnitTests/TVUnitTests.apk && \ adb shell pm clear com.android.providers.tv && \ adb shell pm clear com.google.android.tv && \ adb shell am instrument \ -e testSetupMode unit \ -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\ adb shell input keyevent KEYCODE_HOME &&\ adb shell am instrument \ -w 'com.android.tv.tests/android.support.test.runner.AndroidJUnitRunner'
기능 테스트
adb shell logcat -c m LiveTv TVTestInput TVFuncTests -j20 &&\ adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\ adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk && \ adb install -r -d $OUT/data/app/TVFuncTests/TVFuncTests.apk && \ adb shell pm clear com.android.providers.tv && \ adb shell pm clear com.google.android.tv && \ adb shell am instrument \ -e testSetupMode func \ -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\ adb shell input keyevent KEYCODE_HOME &&\ adb shell am instrument \ -w 'com.android.tv.tests.ui/android.support.test.runner.AndroidJUnitRunner'
버벅거림 테스트
버벅거림 테스트는 프레임 저하 및 렌더링 지연 시간을 찾습니다.
adb shell logcat -c m LiveTv TVTestInput TVJankTests -j20 &&\ adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\ adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk &&\ adb install -r -d $OUT/data/app/TVJankTests/TVJankTests.apk &&\ adb shell pm clear com.android.providers.tv &&\ adb shell pm clear com.google.android.tv &&\ echo "Creating a lot of channels and EPG data, this may take a while" &&\ adb shell am instrument \ -e testSetupMode jank \ -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\ adb shell input keyevent KEYCODE_HOME &&\ adb shell am instrument \ -w 'com.android.tv.tests.jank/android.support.test.runner.AndroidJUnitRunner'