Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

참조용 TV 앱

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'