Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Aplikasi TV Referensi

Aplikasi TV yang memutar konten TV langsung diperlukan untuk beberapa kelas perangkat Android TV, seperti Panel TV dan Operator STB. Aplikasi TV referensi ( TV Langsung ) disediakan di samping platform Android, yang dapat disesuaikan, diperpanjang, atau diganti. Kode sumber tersedia di Proyek Sumber Terbuka Android.

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

Dependensi

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 Level API target Level 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 adalah untuk Live TV versi 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

Dorong

Untuk mendorong TV Langsung ke perangkat uji Anda:

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

Jika pengembang ingin aplikasi LIVE TV memiliki izin sistem, 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 Live TV ada di perangkat Anda, Anda harus menguji apakah TV tersebut terintegrasi dengan benar. Selain menjalankan rangkaian pengujian Kompatibilitas dan pengujian CTS Verifier untuk aplikasi TV, Anda dapat menggunakan pengujian berikut:

Tes unit

Ada unit dan tes 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'