ТВ-приложение, воспроизводящее телевизионный контент в прямом эфире, требуется для некоторых классов устройств Android TV, таких как панельные телевизоры и операторские приставки. Наряду с платформой Android предоставляется эталонное ТВ-приложение ( Live TV ), которое можно настраивать, расширять или заменять. Исходный код доступен в Android Open Source Project.
В этой статье кратко описано, как создать и настроить системное ТВ-приложение на основе Live TV для вашего телевизионного устройства Android. (Вы можете расширить свое телевизионное приложение, чтобы реализовать функции производителя устройства или страны, однако это не входит в объем эталонного телевизионного приложения.)
Зависимости
Приложение TV является компонентом TV Input Framework (TIF) и не может использоваться независимо от других компонентов. Это означает, что только устройства с TIF смогут запускать приложение Live TV .
Приложение Live TV зависит от API Android. Различные ветки имеют разные зависимости от уровней API:
Ответвляться | Целевой уровень API | Минимальный уровень API |
---|---|---|
мастер | 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, но вы можете легко выбрать более раннюю версию, изменив ветку с master на другую, указанную в таблице выше.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
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 вы можете использовать следующие тесты:
Модульные тесты
Существуют модульные и функциональные тесты для приложения Live 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.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'
Функциональные тесты
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'
Джанк-тесты
Тесты Jank ищут пропущенные кадры и задержки в рендеринге.
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'