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ı gereklidir. Android platformunun yanında özelleştirilebilen, genişletilebilen veya değiştirilebilen bir referans TV uygulaması ( Canlı TV ) sağlanır. Kaynak kodu , Android Açık Kaynak Projesi'nde mevcuttur.

Bu makale, Android televizyon cihazınız için Canlı TV'ye dayalı bir sistem TV Uygulamasının nasıl oluşturulacağını ve özelleştirileceğini özetler. (TV uygulamanızı, cihaz üreticisini veya ülkeye özgü özellikleri uygulamak için genişletebilirsiniz, ancak bu, referans TV Uygulaması kapsamında değildir.)

Bağımlılıklar

TV uygulaması, TV Giriş Çerçevesi'nin (TIF) bir bileşenidir ve diğer bileşenlerden bağımsız olarak kullanılamaz. Bu, yalnızca TIF'li cihazların Canlı TV uygulamasını çalıştırabileceği anlamına gelir.

Canlı TV uygulaması, Android API'lerine bağlıdır. Farklı dalların API seviyelerine farklı bağımlılıkları vardır:

Tablo 1. Canlı TV şubeleri.

Şube Hedef API seviyesi Minimum API seviyesi
usta 24 (Android 7.0) 23
android canlı tv 23 (Android 6.0) 21
android-canlı-tv-l-mr1 22 (Android 5.1) 21

Kaynağı al

Başlamak için, Git'ten istediğiniz Canlı TV sürümünü seçin. Aşağıdaki talimatlar Canlı TV'nin mevcut sürümü içindir, ancak dalı ana bilgisayardan yukarıdaki tabloda listelenen farklı bir şubeye değiştirerek daha önceki bir sürümü kolayca seçebilirsiniz.

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

İnşa etmek

Canlı TV kodunu oluşturmak için şunu çalıştırın:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

it

Canlı TV'yi test cihazınıza göndermek için:

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

Geliştirici, LIVE TV uygulamasının sistem izinlerine sahip olmasını istiyorsa, ilk kurulduğunda / system / priv-app'e şu şekilde gönderilmesi gerekir:

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

Ölçek

Canlı TV cihazınızda olduğunda, düzgün şekilde entegre olup olmadığını test etmelisiniz. TV uygulaması için Uyumluluk testi paketini ve CTS Doğrulayıcı testlerini çalıştırmanın yanı sıra aşağıdaki testleri de kullanabilirsiniz:

Birim testleri

Canlı TV uygulaması için birim ve işlev testleri vardır. Testleri çalıştırmak için bağlı bir cihazınız (veya emülatörünüz) olması gerekir.

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'

Fonksiyonel 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.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 Testleri

Jank 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.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'