Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Приложение Reference TV

Для некоторых классов устройств Android TV, таких как Panel TV и Operator STB, требуется приложение TV, которое воспроизводит телепрограммы в прямом эфире. Вместе с платформой Android предоставляется эталонное телевизионное приложение ( Live TV ), которое можно настроить, расширить или заменить. Исходный код доступен в Android Open Source Project.

В этой статье рассказывается, как создать и настроить системное ТВ-приложение на основе Live TV для вашего телевизионного устройства Android. (Вы можете расширить свое ТВ-приложение для реализации функций производителя устройства или страны, но это не входит в сферу применения эталонного ТВ-приложения.)

Зависимости

Приложение TV является компонентом TV Input Framework (TIF) и не может использоваться независимо от других компонентов. Это означает, что только устройства с TIF смогут запускать приложение Live TV .

Приложение Live TV зависит от API Android. Разные ветки имеют разные зависимости от уровней API:

Таблица 1. Филиалы Live TV.

Филиал Целевой уровень API Минимальный уровень API
мастер 24 (Android 7.0) 23
Android-Live-TV 23 (Android 6.0) 21 год
Android-Live-TV-L-MR1 22 (Android 5.1) 21 год

Получить исходник

Для начала выберите желаемую версию Live TV из Git. Приведенные ниже инструкции относятся к текущей версии Live TV, но вы можете легко выбрать более раннюю версию, изменив ветку с главной на другую, указанную в таблице выше.

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 Tests

Тесты 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'