Une application TV qui diffuse des contenus télévisés en direct est requise pour certaines classes d'appareils Android TV, tels que les téléviseurs à écran plat et les box TV des opérateurs. Le code source d'une application de référence est disponible dans le projet Android Open Source.
Cette page explique comment créer et personnaliser une application TV système basée sur la TV en direct pour votre appareil de télévision Android.
Dépendances
L'application de télévision en direct est un composant du TV Input Framework (TIF) et ne peut pas être utilisée indépendamment des autres composants TIF. Les différentes branches de l'application ont des dépendances différentes sur les niveaux d'API Android:
Branch | Niveau d'API cible | Niveau d'API minimal |
---|---|---|
main |
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 une version de la TV en direct dans Git. Les instructions suivantes concernent la version actuelle de la télévision en direct. Pour utiliser une version antérieure, passez à l'une des branches Git listé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
Créer
Pour créer le code de la TV en direct, exécutez la commande suivante:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Push
Utilisez le code suivant pour transférer la télévision en direct vers votre appareil de test:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Si vous souhaitez que l'application de télévision en direct dispose d'autorisations système, utilisez le code suivant pour la transférer vers /system/priv-app
lors de la première installation:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Test
Une fois que la TV en direct est installée sur votre appareil, vérifiez qu'elle est correctement intégrée à 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 à-coups
Les tests de saccade recherchent des images perdues et des 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'