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'