Per alcune classi di Android TV è necessaria un'app TV che riproduca contenuti TV in diretta come TV a schermo piatto e STB degli operatori. Il codice sorgente per un'app di riferimento è disponibile nell'Android Open Source Project.
Questa pagina riassume come creare e personalizzare un'app di sistema per TV basata su sulla TV in diretta sul tuo televisore Android.
Dipendenze
L'app Live TV è un componente del TV Input Framework (TIF) e non può essere utilizzato indipendentemente dagli altri componenti TIF. I vari rami dell'app hanno con dipendenze diverse dai livelli API Android:
Branch | Livello API target | Livello API minimo |
---|---|---|
main |
24 (Android 7.0) | 23 |
android-live-tv |
23 (Android 6.0) | 21 |
android-live-tv-l-mr1 |
22 (Android 5.1) | 21 |
Recupera l'origine
Per iniziare, seleziona una versione di Live TV da Git. Le seguenti istruzioni sono per la versione attuale di TV in diretta. Per utilizzare una versione precedente, passa a uno dei rami Git elencate nella tabella precedente.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c
Crea
Per creare il codice per la TV in diretta, esegui:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Push
Usa il seguente codice per trasmettere la TV in diretta al tuo dispositivo di test:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Se vuoi che l'app Live TV disponga delle autorizzazioni di sistema, utilizza il codice seguente per eseguirne il push
/system/priv-app
la prima volta che lo installi:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Test
Dopo aver installato la TV in diretta sul tuo dispositivo, verifica che sia integrata correttamente utilizzando il seguente codice test di compatibilità e test di compatibilità con la suite di test di compatibilità e i test CTS Verifier per l'app TV. Per eseguire tutti i tipi di test è necessario che sia collegato un dispositivo o un emulatore.
Test delle unità
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'
Test funzionali
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'
Test Jank
I test di jank cercano i frame interrotti e i ritardi nel rendering.
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'