Referensi aplikasi TV

Aplikasi TV yang memutar konten TV langsung diperlukan untuk beberapa kelas perangkat Android TV, seperti TV panel dan STB operator. Kode sumber untuk aplikasi referensi tersedia di Android Open Source Project.

Halaman ini merangkum cara membuat dan menyesuaikan aplikasi TV sistem berdasarkan TV Langsung untuk perangkat televisi Android Anda.

Ketergantungan

Aplikasi TV Langsung adalah komponen dari Kerangka Masukan TV (TIF) dan tidak dapat digunakan secara terpisah dari komponen TIF lainnya. Cabang aplikasi yang berbeda memiliki dependensi yang berbeda pada level API Android:

Cabang Tingkat API target Tingkat API minimum
master 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 TV Langsung dari Git. Petunjuk berikut adalah untuk versi Live TV saat ini. Untuk menggunakan versi sebelumnya, beralihlah ke salah satu cabang Git yang terdaftar di tabel sebelumnya.

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

Gunakan kode berikut untuk mendorong Live TV ke perangkat pengujian Anda:

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

Jika Anda ingin aplikasi TV Langsung memiliki izin sistem, gunakan kode berikut untuk memasukkannya ke /system/priv-app saat pertama kali Anda menginstalnya:

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

Uji

Setelah TV Langsung diinstal pada perangkat Anda, uji apakah perangkat terintegrasi dengan benar menggunakan pengujian berikut selain rangkaian uji Kompatibilitas dan pengujian Verifier CTS untuk aplikasi TV. Anda harus memiliki perangkat atau emulator yang terhubung untuk menjalankan semua jenis pengujian.

Tes unit

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'

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