Referans TV uygulaması

Panel TV'ler ve operatör STB'leri gibi bazı Android TV cihaz sınıfları için canlı TV içeriği oynatan bir TV uygulaması gerekir. Referans uygulamanın kaynak kodu Android Açık Kaynak Projesi'nde mevcuttur.

Bu sayfada, Android televizyon cihazınız için Live TV'ye dayalı bir sistem TV uygulamasının nasıl oluşturulacağı ve özelleştirileceği özetlenmiştir.

Bağımlılıklar

Canlı TV uygulaması, TV Giriş Çerçevesi'nin (TIF) bir bileşenidir ve diğer TIF bileşenlerinden bağımsız olarak kullanılamaz. Uygulamanın farklı dallarının Android API düzeylerine göre farklı bağımlılıkları vardır:

Ş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'nin mevcut sürümü içindir. Önceki bir sürümü kullanmak için önceki tabloda listelenen Git dallarından birine geçin.

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

Topluluk

Canlı TV kodunu derlemek için şunları çalıştırın:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Başlat

Canlı TV'yi test cihazınıza göndermek 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ı ilk kez yüklerken /system/priv-app'e göndermek için aşağıdaki kodu kullanın:

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

Test

Canlı TV cihazınıza yüklendikten sonra, TV uygulaması için Uyumluluk Testi Paketi ve CTS Doğrulayıcı testlerine ek olarak aşağıdaki testleri kullanarak düzgün bir şekilde entegre edilip edilmediğini test edin. Tüm test türlerini çalıştırmak için bağlı bir cihazınız veya emülatörünüz olmalıdır.

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'

Duraksama testleri

Takılma testleri, atlanan kareleri ve oluşturmadaki 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'