Application TV de référence

Une application TV qui lit le 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. Une application TV de référence ( Live TV ) est fournie à côté de la plateforme Android, qui peut être personnalisée, étendue ou remplacée. Le code source est disponible dans le projet Android Open Source.

Cet article 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. (Vous pouvez étendre votre application TV pour mettre en œuvre des fonctionnalités spécifiques au fabricant de l'appareil ou à un pays, mais cela n'entre pas dans le cadre de l'application TV de référence.)

Dépendances

L'application TV est un composant de TV Input Framework (TIF) et ne peut pas être utilisée indépendamment des autres composants. Cela signifie que seuls les appareils avec TIF pourront exécuter l'application Live TV .

L'application Live TV dépend des API Android. Différentes branches ont des dépendances différentes sur les niveaux d'API :

Tableau 1. Succursales de télévision en direct.

Bifurquer Niveau d'API cible Niveau d'API minimal
Maître 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

Obtenir la source

Pour commencer, sélectionnez la version de Live TV que vous souhaitez dans Git. Les instructions ci-dessous concernent la version actuelle de Live TV, mais vous pouvez facilement sélectionner une version antérieure en changeant la branche de master à une autre répertoriée dans le tableau ci-dessus.

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

Construire

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

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Pousser

Pour transférer la TV en direct sur votre appareil de test :

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

Si le développeur souhaite que l'application LIVE TV dispose des autorisations système, la première fois qu'elle est installée, elle doit être poussée vers /system/priv-app avec :

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

Test

Une fois que Live TV est sur votre appareil, vous devez tester qu'il est correctement intégré. En plus d'exécuter la suite de tests de compatibilité et les tests CTS Verifier pour l'application TV, vous pouvez utiliser les tests ci-dessous :

Tests unitaires

Il existe des tests unitaires et fonctionnels pour l'application Live TV. Vous devez avoir un appareil (ou un émulateur) connecté pour exécuter les tests.

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'

Essais 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.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'

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.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'