É necessário ter um app de TV que mostre conteúdo de TV ao vivo para algumas classes do Android TV dispositivos, como TVs de painel e STBs do operador. O código-fonte para um app de referência está disponível no Android Open Source Project.
Esta página resume como criar e personalizar um app de TV do sistema com base na TV ao vivo para seu dispositivo de televisão Android.
Dependências
O app de TV ao vivo é um componente do TV Input Framework (TIF) (link em inglês). e não pode ser usado independentemente dos outros componentes do TIF. Diferentes ramificações do app têm dependências nos níveis da API do Android:
Filial | Nível desejado da API | Nível mínimo da API |
---|---|---|
main |
Android 7.0 | 23 |
android-live-tv |
Android 6.0 | 21 |
android-live-tv-l-mr1 |
Android 5.1 | 21 |
Acessar a fonte
Para começar, selecione uma versão de TV ao vivo no Git. As instruções a seguir servem para a configuração e a versão mais recente da TV ao vivo. Para usar uma versão anterior, mude para uma das ramificações Git listados na tabela anterior.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c
Criar
Para criar o código da TV ao vivo, execute:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Enviar por push
Use o código a seguir para enviar a TV ao vivo ao dispositivo de teste:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Se você quer que o app de TV ao vivo tenha permissões do sistema, use o código a seguir para enviá-lo ao
/system/priv-app
na primeira vez que você o instalar:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Teste
Depois que a TV ao vivo estiver instalada no dispositivo, teste se ela está integrada corretamente usando o seguinte: testes, além do conjunto de teste de compatibilidade e os testes do CTS Verifier para o app de TV. Você precisa ter um dispositivo ou emulador conectado para executar todos os tipos de teste.
Testes de unidade
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'
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.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 de instabilidade
Os testes de instabilidade 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.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'