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. Bir referans uygulamasının kaynak kodu , Android Açık Kaynak Projesi'nde mevcuttur.

Bu sayfa, 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.

bağımlılıklar

Canlı TV uygulaması, TV Giriş Çerçevesinin (TIF) bir bileşenidir ve diğer TIF bileşenlerinden bağımsız olarak kullanılamaz. Uygulamanın farklı dalları, Android API seviyelerinde farklı bağımlılıklara sahiptir:

Dal Hedef API düzeyi Minimum API seviyesi
master 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

kaynağı al

Başlamak için Git'ten bir Canlı TV sürümü seçin. Aşağıdaki talimatlar, Live TV'nin güncel sürümü içindir. Daha eski 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 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 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, onu ilk yüklediğinizde /system/priv-app göndermek için aşağıdaki kodu kullanın:

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

Ölçek

Live TV cihazınıza yüklendikten sonra, TV uygulaması için Uyumluluk test paketine ve CTS Verifier testlerine ek olarak aşağıdaki testleri kullanarak düzgün şekilde entegre edildiğini test edin. Tüm test türlerini çalıştırmak için bağlı bir aygıtınız veya öykünücü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'

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