App TV di riferimento

Per alcune classi di dispositivi Android TV, come TV a pannello e STB operatore, è necessaria un'applicazione TV che riproduca contenuti TV in diretta. Insieme alla piattaforma Android viene fornita un'applicazione TV di riferimento ( Live TV ) che può essere personalizzata, estesa o sostituita. Il codice sorgente è disponibile nel progetto Android Open Source.

Questo articolo riassume come creare e personalizzare un'app TV di sistema basata su Live TV per il tuo dispositivo televisivo Android. (È possibile estendere l'applicazione TV per implementare il produttore del dispositivo o le funzionalità specifiche del paese, tuttavia ciò non rientra nell'ambito dell'app TV di riferimento.)

Dipendenze

L'applicazione TV è un componente di TV Input Framework (TIF) e non può essere utilizzata indipendentemente dagli altri componenti. Ciò significa che solo i dispositivi con TIF potranno eseguire l'applicazione Live TV .

L'applicazione TV in diretta dipende dalle API Android. Diversi rami hanno dipendenze diverse sui livelli API:

Tabella 1. Filiali della TV in diretta.

Ramo Livello API di destinazione Livello API minimo
maestro 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 la versione di Live TV che desideri da Git. Le istruzioni seguenti si riferiscono alla versione corrente di Live TV, ma puoi facilmente selezionare una versione precedente cambiando il ramo da principale a uno diverso elencato nella tabella sopra.

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 della TV in diretta, esegui:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Spingere

Per inviare Live TV al tuo dispositivo di prova:

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

Se lo sviluppatore desidera che l'app LIVE TV disponga delle autorizzazioni di sistema, la prima volta che viene installata deve essere inviata a / system / priv-app con:

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

Test

Una volta che Live TV è sul tuo dispositivo, dovresti verificare che sia correttamente integrato. Oltre a eseguire la suite di test di compatibilità e i test CTS Verifier per l'app TV, puoi utilizzare questi test di seguito:

Test unitari

Sono disponibili test funzionali e di unità per l'app Live TV. È necessario disporre di un dispositivo (o emulatore) connesso per eseguire i test.

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'

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

Test Jank

I test Jank 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.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'