O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Aplicativo de TV de referência

Um aplicativo de TV que reproduz conteúdo de TV ao vivo é necessário para algumas classes de dispositivos Android TV, como TVs de painel e STBs de operador. Um aplicativo de referência de TV ( TV ao vivo ) é fornecido junto com a plataforma Android, que pode ser personalizado, estendido ou substituído. O código-fonte está disponível no Android Open Source Project.

Este artigo resume como criar e personalizar um aplicativo de TV do sistema baseado em TV ao vivo para seu dispositivo de televisão Android. (Você pode estender seu aplicativo de TV para implementar o fabricante do dispositivo ou recursos específicos do país, no entanto, isso não está no escopo do aplicativo de TV de referência.)

Dependências

O aplicativo TV é um componente do TV Input Framework (TIF) e não pode ser usado independentemente dos outros componentes. Isso significa que apenas dispositivos com TIF poderão executar o aplicativo Live TV .

O aplicativo de TV ao vivo depende de APIs do Android. Ramificações diferentes têm dependências diferentes nos níveis de API:

Tabela 1. Filiais de TV ao vivo.

Galho Nível de API de destino Nível mínimo de API
mestre 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

Obtenha a fonte

Para começar, selecione qual versão de TV ao vivo você gostaria do Git. As instruções abaixo são para a versão atual da TV ao vivo, mas você pode selecionar facilmente uma versão anterior alterando o branch master para um diferente listado na tabela acima.

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

Construir

Para construir o código da TV ao vivo, execute:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Empurrar

Para enviar TV ao vivo para o seu dispositivo de teste:

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

Se o desenvolvedor quiser que o aplicativo LIVE TV tenha permissões do sistema, na primeira vez que for instalado, ele precisa ser enviado para / system / priv-app com:

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

Teste

Assim que a TV ao vivo estiver em seu dispositivo, você deve testar se ela está devidamente integrada. Além de executar o conjunto de testes de compatibilidade e os testes CTS Verifier para o aplicativo de TV, você pode usar os seguintes testes:

Testes de unidade

Existem testes de unidade e funcionais para o aplicativo Live TV. Você deve ter um dispositivo (ou emulador) conectado para executar os testes.

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'

Testes Funcionais

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'

Testes Jank

Os testes de Jank procuram frames perdidos e atrasos na renderização.

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'