Aplikacja TV referencyjna

Aplikacja telewizyjna, która odtwarza treści telewizyjne na żywo, jest wymagana w przypadku niektórych klas urządzeń z Androidem TV, takich jak telewizory z ekranem panelowym i dekodery operatora. Kod źródłowy aplikacji referencyjnej jest dostępny w projekcie Android Open Source.

Na tej stronie znajdziesz podsumowanie informacji o tym, jak tworzyć i dostosowywać aplikację telewizyjną opartą na Live TV na telewizorze z Androidem.

Zależności

Aplikacja Telewizja na żywo jest elementem ramowego interfejsu wejściowego telewizji (TIF) i nie można jej używać niezależnie od innych komponentów TIF. Różne gałęzie aplikacji mają różne zależności od poziomów interfejsu API Androida:

Oddział Docelowy poziom interfejsu API Minimalny poziom interfejsu 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

Pobieranie źródła

Aby rozpocząć, wybierz wersję Live TV z Git. Poniższe instrukcje dotyczą bieżącej wersji telewizji na żywo. Aby użyć wcześniejszej wersji, przejdź do jednej z gałęzi Git wymienionych w poprzedniej tabeli.

mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c

Budowanie

Aby utworzyć kod transmisji na żywo, uruchom:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Push

Aby przesłać kanał telewizyjny na urządzenie testowe, użyj tego kodu:

adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk

Jeśli chcesz, aby aplikacja telewizji na żywo miała uprawnienia systemowe, podczas jej pierwszej instalacji prześlij do /system/priv-app ten kod:

adb push $OUT/system/priv-app/LiveTv/LiveTv.apk  /system/priv-app/LiveTv/

Test

Po zainstalowaniu aplikacji Live TV na urządzeniu sprawdź, czy jest ona prawidłowo zintegrowana, wykonując te testy, a także komplet testów zgodnościtesty weryfikacyjne CTS dotyczące aplikacji TV. Aby wykonać wszystkie typy testów, musisz mieć podłączone urządzenie lub emulator.

Testy jednostkowe

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'

Testy funkcjonalne

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'

Testy Janka

Testy płynności sprawdzają, czy nie doszło do utraty klatek i opóźnień w renderowaniu.

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'