Panel TV'ler ve operatör STB'leri gibi bazı Android TV cihazı sınıfları için canlı TV içeriğini oynatan bir TV uygulaması gereklidir. Referans uygulamasının kaynak kodu Android Açık Kaynak Projesinde mevcuttur.
Bu sayfada Android televizyon cihazınız için Canlı TV'yi temel alan bir sistem TV uygulamasının nasıl oluşturulacağı ve özelleştirileceği özetlenmektedir.
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ının Android API düzeylerine farklı bağımlılıkları vardır:
Dal | 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ğı alın
Başlamak için Git'ten bir Canlı TV sürümü seçin. Aşağıdaki talimatlar Canlı TV'nin güncel sürümü içindir. Daha ö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
İ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, uygulamayı ilk yüklediğinizde /system/priv-app
dizinine aktarmak için aşağıdaki kodu kullanın:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Ölçek
Canlı TV cihazınıza yüklendikten sonra, TV uygulaması için Uyumluluk test paketi ve CTS Doğrulayıcı testlerine ek olarak aşağıdaki testleri kullanarak düzgün bir şekilde entegre edildiğini test edin. Tüm test türlerini çalıştırmak için bağlı bir cihaza veya emülatöre sahip olmanız gerekir.
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, 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'