Referans TV uygulaması

Bazı Android TV sınıfları için canlı TV içeriği oynatan bir TV uygulaması gerekir panel TV'ler ve operatör STB'leri gibi cihazlar için de geçerlidir. Kaynak kod Android Açık Kaynak Projesi'nde kullanıma sunulmaktadır.

Bu sayfada, TV'nize dayalı bir sistem TV uygulamasının nasıl geliştirileceği ve TV'nizde canlı TV'yi izlemeye devam edin.

Bağımlılıklar

Canlı TV uygulaması, TV Giriş Çerçevesi'nin (TIF) bileşenlerinden biridir. ve diğer TIF bileşenlerinden bağımsız olarak kullanılamaz. Uygulamanın farklı dallarında Android API seviyelerinde farklı bağımlılıklar var:

Şube Hedef API düzeyi Minimum API düzeyi
main 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

Kaynağı alma

Başlamak için Git'ten bir Canlı TV sürümü seçin. Aşağıdaki talimatlar, canlı TV sürümü. Önceki bir sürümü kullanmak için Git dallarından birine geçiş yapın listelenen değerlerdir.

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

Topluluk

Canlı TV kodu oluşturmak için şu komutu çalıştırın:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Başlat

Canlı TV'yi test cihazınıza aktarmak için aşağıdaki kodu kullanın:

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

Canlı TV uygulamasının sistem izinlerine sahip olmasını istiyorsanız uygulamayı İlk kez yüklediğinizde /system/priv-app:

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

Test

Canlı TV cihazınıza yüklendikten sonra, aşağıdakileri kullanarak doğru şekilde entegre edilip edilmediğini test edin: Uyumluluk test paketi ve testler ve TV uygulaması için CTS Doğrulayıcı testleri. Tüm test türlerini çalıştırmak için cihaz veya emülatör cihazınızın bağlı olması gerekir.

Birim testleri

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'

İşlevsel testler

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'

Jank testleri

Jank testleri, oluşturmada atlanan kareleri ve gecikmeleri arar.

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'