Applicazione TV di riferimento

Per alcune classi di dispositivi Android TV, come TV a pannello e STB dell'operatore, è necessaria un'app TV che riproduca contenuti TV in diretta. Il codice sorgente per un'app di riferimento è disponibile nel progetto Android Open Source.

Questa pagina riassume come creare e personalizzare un'app TV di sistema basata su Live TV per il tuo dispositivo televisivo Android.

Dipendenze

L'app Live TV è un componente del TV Input Framework (TIF) e non può essere utilizzata indipendentemente dagli altri componenti TIF. Diversi rami dell'app hanno dipendenze diverse dai livelli API Android:

Ramo 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

Ottieni la fonte

Per iniziare, seleziona una versione TV in diretta da Git. Le seguenti istruzioni si riferiscono alla versione corrente di Live TV. Per utilizzare una versione precedente, passa a uno dei rami Git elencati nella tabella precedente.

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

Costruire

Per creare il codice TV in diretta, esegui:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Spingere

Utilizza il seguente codice per inviare Live TV al tuo dispositivo di prova:

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

Se desideri che l'app Live TV disponga di autorizzazioni di sistema, utilizza il seguente codice per inviarla a /system/priv-app la prima volta che la installi:

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

Test

Dopo aver installato Live TV sul tuo dispositivo, verifica che sia correttamente integrato utilizzando i seguenti test oltre alla suite di test di compatibilità e ai test CTS Verifier per l'app TV. È necessario disporre di un dispositivo o un emulatore connesso per eseguire tutti i tipi di test.

Test unitari

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 di Jank

I jank test cercano fotogrammi persi e 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'