Aplikasi TV referensi

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

Halaman ini merangkum cara membangun dan menyesuaikan aplikasi TV sistem berbasis di TV Live untuk perangkat televisi Android Anda.

Dependensi

Aplikasi Live TV adalah komponen dari Framework Input 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
main 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

Mendapatkan sumber

Untuk memulai, pilih versi TV Live dari Git. Petunjuk berikut ditujukan bagi pengguna versi baru dari Live TV. 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

Build

Untuk membuat kode TV Live, jalankan:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Push

Gunakan kode berikut untuk mengirim TV Live ke perangkat pengujian:

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

Jika Anda ingin aplikasi Live TV memiliki izin sistem, gunakan kode berikut untuk mengirimkannya 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 Live diinstal di perangkat, uji apakah TV tersebut sudah terintegrasi dengan benar menggunakan pengujian selain Compatibility Test Suite dan uji Pemverifikasi CTS untuk aplikasi TV. Anda harus menghubungkan perangkat atau emulator untuk menjalankan semua jenis pengujian.

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

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

Pengujian jank

Pengujian jank mencari frame yang menurun dan keterlambatan 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'