참조용 TV 앱

패널 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'