App TV di riferimento

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

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 dell'API Android:

Ramo Livello API di destinazione Livello API minimo
master 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 master
repo sync -j8 -c

Costruire

Per creare il codice TV in diretta, eseguire:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Spingere

Utilizzare il codice seguente per inviare la TV in diretta al dispositivo di prova:

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

Se desideri che l'app Live TV disponga delle autorizzazioni di sistema, utilizza il codice seguente 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 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. Devi avere 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'

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

Jank test

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'