Для некоторых классов устройств Android TV, таких как панельные телевизоры и операторские приставки, требуется ТВ-приложение, воспроизводящее телеконтент в прямом эфире. Исходный код эталонного приложения доступен в проекте Android с открытым исходным кодом.
На этой странице описано, как создать и настроить приложение системного телевидения на основе Live TV для вашего телевизионного устройства Android.
Зависимости
Приложение Live TV является компонентом TV Input Framework (TIF) и не может использоваться независимо от других компонентов TIF. Различные ветки приложения имеют разные зависимости от уровней Android API:
Ветвь | Целевой уровень API | Минимальный уровень API |
---|---|---|
main | 24 (Андроид 7.0) | 23 |
android-live-tv | 23 (Андроид 6.0) | 21 |
android-live-tv-l-mr1 | 22 (Андроид 5.1) | 21 |
Получить исходный код
Чтобы начать, выберите версию Live TV из Git. Следующие инструкции относятся к текущей версии Live TV. Чтобы использовать более раннюю версию, переключитесь на одну из ветвей Git, перечисленных в предыдущей таблице.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c
Строить
Чтобы создать код Live TV, запустите:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Толкать
Используйте следующий код, чтобы перенести Live TV на тестовое устройство:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Если вы хотите, чтобы приложение Live TV имело системные разрешения, используйте следующий код, чтобы отправить его в /system/priv-app
при первой установке:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Тест
После установки Live TV на ваше устройство проверьте правильность его интеграции, используя следующие тесты в дополнение к набору тестов совместимости и тестам CTS Verifier для приложения TV. Для запуска всех типов тестов необходимо подключить устройство или эмулятор.
Модульные тесты
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'
Функциональные тесты
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'
Джанк-тесты
Джанк-тесты ищут пропущенные кадры и задержки при рендеринге.
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'