Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Tham khảo ứng dụng TV

Ứng dụng TV phát nội dung truyền hình trực tiếp là bắt buộc đối với một số loại thiết bị Android TV, chẳng hạn như TV bảng điều khiển và STB của nhà điều hành. Ứng dụng truyền hình tham chiếu ( Truyền hình trực tiếp ) được cung cấp cùng với nền tảng Android, ứng dụng này có thể được tùy chỉnh, mở rộng hoặc thay thế. Mã nguồn có sẵn trong Dự án nguồn mở Android.

Bài viết này tóm tắt cách xây dựng và tùy chỉnh Ứng dụng TV hệ thống dựa trên Live TV cho thiết bị Android TV của bạn. (Bạn có thể mở rộng ứng dụng TV của mình để triển khai các tính năng của nhà sản xuất thiết bị hoặc quốc gia cụ thể, tuy nhiên, điều này không nằm trong phạm vi của Ứng dụng TV tham chiếu.)

Sự phụ thuộc

Ứng dụng TV là một thành phần của Khung đầu vào TV (TIF) và không thể được sử dụng độc lập với các thành phần khác. Điều này có nghĩa là chỉ những thiết bị có TIF mới có thể chạy ứng dụng Live TV .

Ứng dụng Truyền hình trực tiếp phụ thuộc vào các API Android. Các nhánh khác nhau có sự phụ thuộc khác nhau vào các cấp API:

Bảng 1. Các nhánh truyền hình trực tiếp.

Chi nhánh Cấp API mục tiêu Cấp API tối thiểu
bậc thầy 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

Lấy nguồn

Để bắt đầu, hãy chọn phiên bản Truyền hình trực tiếp bạn muốn từ Git. Hướng dẫn bên dưới dành cho phiên bản Live TV hiện tại, nhưng bạn có thể dễ dàng chọn phiên bản cũ hơn bằng cách thay đổi nhánh từ cái chính sang một nhánh khác được liệt kê trong bảng trên.

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

Xây dựng

Để tạo mã Live TV, hãy chạy:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Đẩy

Để đưa Truyền hình trực tiếp đến thiết bị thử nghiệm của bạn:

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

Nếu nhà phát triển muốn ứng dụng TRỰC TIẾP TV có quyền hệ thống, thì lần đầu tiên nó được cài đặt, nó cần được đẩy lên / system / priv-app với:

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

Kiểm tra

Sau khi Truyền hình trực tiếp trên thiết bị của bạn, bạn nên kiểm tra xem nó đã được tích hợp đúng cách chưa. Ngoài việc chạy bộ kiểm tra khả năng tương thích và kiểm tra Trình xác minh CTS cho ứng dụng TV, bạn có thể sử dụng các kiểm tra sau:

Bài kiểm tra đơn vị

Có các bài kiểm tra đơn vị và chức năng cho ứng dụng Live TV. Bạn phải có một thiết bị (hoặc trình giả lập) được kết nối để chạy các bài kiểm tra.

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'

Kiểm tra chức năng

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'

Kiểm tra Jank

Các bài kiểm tra Jank tìm kiếm khung hình bị giảm và độ trễ trong kết xuất.

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'