Niektóre klasy Androida TV wymagają aplikacji, która odtwarza treści z telewizji na żywo takich jak telewizory panelowe i dekodery STB operatora. Kod źródłowy dla aplikacji referencyjnej jest dostępna w projekcie Android Open Source.
Z tej strony dowiesz się, jak utworzyć i dostosować systemową aplikację TV w telewizji na żywo na telewizorze z Androidem.
Zależności
Aplikacja Live TV jest komponentem platformy sygnału TV (TIF). i nie można ich używać niezależnie od innych komponentów TIF. Różne gałęzie aplikacji różne zależności od poziomów interfejsu Android API:
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 |
Pobierz źródło
Aby rozpocząć, wybierz wersję telewizji na żywo z Gita. Poniższe instrukcje dotyczą bieżącego i wersji TV na żywo. Aby użyć wcześniejszej wersji, przełącz się na jedną z gałęzi Git podane 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 telewizji na żywo, uruchom polecenie:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Push
Aby przekazać telewizję na żywo na urządzeniu testowym, użyj tego kodu:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Jeśli chcesz, aby aplikacja Live TV miała uprawnienia systemowe, przekaż ją do
/system/priv-app
przy pierwszej instalacji:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Test
Po zainstalowaniu telewizji Live TV na urządzeniu sprawdź, czy jest ona prawidłowo zintegrowana, korzystając z tych wskazówek testy zgodności, a nie tylko zestaw testów zgodności. oraz testy CTS Verifier na aplikację na telewizory. Aby uruchamiać 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 stymulujące
Testy zacinań wykrywają pominięte klatki i opóźnienia 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'