Aplikasi TV Referensi

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 Proyek Sumber Terbuka Android.

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

Ketergantungan

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

Cabang Tingkat API sasaran Tingkat API minimal
main 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 ditujukan untuk versi Live TV saat ini. Untuk menggunakan versi sebelumnya, beralihlah ke salah satu cabang Git yang tercantum dalam tabel sebelumnya.

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

Membangun

Untuk membuat kode TV Langsung, jalankan:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Dorongan

Gunakan kode berikut untuk memasukkan TV Langsung 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/

Tes

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

Tes satuan

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