Application TV de référence

Une application TV qui diffuse du contenu TV en direct est requise pour certaines classes d'appareils Android TV, tels que les téléviseurs à panneau et les décodeurs d'opérateur. Le code source d'une application de référence est disponible dans le projet Android Open Source.

Cette page résume comment créer et personnaliser une application TV système basée sur Live TV pour votre appareil de télévision Android.

Dépendances

L'application Live TV est un composant de TV Input Framework (TIF) et ne peut pas être utilisée indépendamment des autres composants TIF. Différentes branches de l'application ont différentes dépendances aux niveaux de l'API Android :

Bifurquer Niveau d'API cible Niveau API minimum
main 24 (Android 7.0) 23
android-live-tv 23 (Androïde 6.0) 21
android-live-tv-l-mr1 22 (Androïde 5.1) 21

Obtenez la source

Pour commencer, sélectionnez une version Live TV depuis Git. Les instructions suivantes concernent la version actuelle de Live TV. Pour utiliser une version antérieure, passez à l’une des branches Git répertoriées dans le tableau précédent.

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

Construire

Pour créer le code Live TV, exécutez :

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Pousser

Utilisez le code suivant pour transférer Live TV sur votre appareil de test :

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

Si vous souhaitez que l'application Live TV dispose d'autorisations système, utilisez le code suivant pour la transférer vers /system/priv-app la première fois que vous l'installez :

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

Test

Une fois Live TV installé sur votre appareil, vérifiez qu'il est correctement intégré à l'aide des tests suivants en plus de la suite de tests de compatibilité et des tests CTS Verifier pour l'application TV. Vous devez disposer d'un appareil ou d'un émulateur connecté pour exécuter tous les types de tests.

Tests unitaires

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'

Tests fonctionnels

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'

Tests de Jank

Les tests Jank recherchent les images perdues et les retards de rendu.

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'