Referensi Aplikasi TV

Aplikasi TV yang memutar konten TV langsung diperlukan untuk beberapa kelas perangkat Android TV, seperti TV Panel dan STB Operator. Aplikasi TV referensi ( Live TV ) disediakan di samping platform Android, yang dapat disesuaikan, diperluas, atau diganti. Kode sumber tersedia di Android Open Source Project.

Artikel ini merangkum cara membuat dan menyesuaikan Aplikasi TV sistem berdasarkan TV Langsung untuk perangkat televisi Android Anda. (Anda dapat memperluas aplikasi TV Anda untuk menerapkan fitur khusus produsen perangkat atau negara, namun ini tidak termasuk dalam cakupan Aplikasi TV referensi.)

Ketergantungan

Aplikasi TV adalah komponen dari TV Input Framework (TIF) dan tidak dapat digunakan secara terpisah dari komponen lainnya. Artinya, hanya perangkat dengan TIF yang dapat menjalankan aplikasi TV Langsung .

Aplikasi TV Langsung bergantung pada API Android. Cabang yang berbeda memiliki ketergantungan yang berbeda pada level API:

Tabel 1. Cabang TV langsung.

Cabang Tingkat API target Tingkat API minimum
menguasai 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

Dapatkan sumbernya

Untuk memulai, pilih versi Live TV yang Anda inginkan dari Git. Petunjuk di bawah ini adalah untuk versi TV Langsung saat ini, tetapi Anda dapat dengan mudah memilih versi sebelumnya dengan mengubah cabang dari master ke cabang lain yang tercantum dalam tabel di atas.

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

Membangun

Untuk membuat kode TV Langsung, jalankan:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Dorongan

Untuk mendorong TV Langsung ke perangkat pengujian Anda:

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

Jika pengembang ingin aplikasi TV LANGSUNG memiliki izin sistem, saat pertama kali diinstal, aplikasi harus didorong ke /system/priv-app dengan:

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

Uji

Setelah TV Langsung ada di perangkat Anda, Anda harus menguji apakah itu terintegrasi dengan benar. Selain menjalankan rangkaian pengujian Kompatibilitas dan pengujian CTS Verifier untuk aplikasi TV, Anda dapat menggunakan pengujian berikut ini:

Tes unit

Ada tes unit dan fungsional untuk aplikasi TV Langsung. Anda harus memiliki perangkat (atau emulator) yang terhubung untuk menjalankan pengujian.

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'

Tes Fungsional

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'

Tes Jank

Tes Jank mencari frame yang jatuh dan penundaan dalam rendering.

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'