패널 TV 및 통신사 STB와 같은 일부 유형의 Android TV 기기에는 라이브 TV 콘텐츠를 재생하는 TV 앱이 필요합니다. 참조 앱의 소스 코드는 Android 오픈소스 프로젝트에서 확인할 수 있습니다.
이 페이지에는 Android TV 기기와 관련하여 실시간 TV 기반의 시스템 TV 앱을 빌드하고 맞춤설정하는 방법이 요약되어 있습니다.
종속 항목
실시간 TV 앱은 TV 입력 프레임워크(TIF)의 구성요소이며 다른 TIF 구성요소와 독립적으로 사용할 수 없습니다. 앱의 브랜치에 따라 Android API 수준에 따른 종속 항목이 다릅니다.
브랜치 | 대상 API 수준 | 최소 API 수준 |
---|---|---|
main |
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의 현재 버전에 관한 명령입니다. 이전 버전을 사용하려면 위의 표에 나열된 Git 브랜치 중 하나로 변경하세요.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
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 인증 도구 테스트와 함께 다음 테스트를 사용하여 올바르게 통합되었는지 테스트합니다. 모든 테스트 유형을 실행하려면 기기나 에뮬레이터가 연결되어 있어야 합니다.
단위 테스트
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.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.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.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'