Referans TV Uygulaması

Panel TV'ler ve Operatör STB'leri gibi bazı Android TV cihazları 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 üreticisi veya ülkeye özgü özellikleri uygulayacak şekilde genişletebilirsiniz, ancak bu, referans TV Uygulaması kapsamında değildir.)

bağımlılıklar

TV uygulaması, TV Giriş Çerçevesinin (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 dalları.

Dal Hedef API düzeyi 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 hangi Canlı TV sürümünü istediğinizi seçin. Aşağıdaki talimatlar, Live TV'nin güncel sürümü içindir, ancak dalı, yukarıdaki tabloda listelenen ana daldan farklı bir dalla değiştirerek kolayca önceki bir sürümü 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

İtmek

Canlı TV'yi test cihazınıza aktarmak için:

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

Geliştirici, CANLI TV uygulamasının sistem izinlerine sahip olmasını istiyorsa, ilk kurulduğunda /system/priv-app'e şu şekilde iletilmelidir:

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

Ölçek

Live TV cihazınıza girdikten sonra, düzgün şekilde entegre edildiğini test etmelisiniz. TV uygulaması için Uyumluluk test paketini ve CTS Verifier testlerini çalıştırmanın yanı sıra aşağıdaki testleri kullanabilirsiniz:

Birim testleri

Canlı TV uygulaması için birim ve işlevsel testler vardır. Testleri çalıştırmak için bağlı bir cihaza (veya emülatöre) sahip olmanız 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, atılan 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'