Tham khảo ứng dụng TV

Cần phải có ứng dụng TV phát nội dung truyền hình trực tiếp đố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. Mã nguồn của ứng dụng tham chiếu có sẵn trong Dự án mã nguồn mở Android.

Trang 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ị TV Android của bạn.

phụ thuộc

Ứng dụng Live TV là một thành phần của Khung đầu vào TV (TIF) và không thể sử dụng độc lập với các thành phần TIF khác. Các nhánh khác nhau của ứng dụng có sự phụ thuộc khác nhau vào cấp độ API Android:

Chi nhánh Cấp độ API mục tiêu Cấp độ API tối thiểu
main 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 Live TV từ Git. Các hướng dẫn sau đây dành cho phiên bản hiện tại của Live TV. Để sử dụng phiên bản cũ hơn, hãy chuyển sang một trong các nhánh Git được liệt kê trong bảng trước.

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

Xây dựng

Để xây dựng mã Live TV, hãy chạy:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Sử dụng mã sau để đẩy Live TV tới thiết bị thử nghiệm của bạn:

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

Nếu bạn dự định ứng dụng Live TV có quyền hệ thống, hãy sử dụng mã sau để đẩy ứng dụng đó vào /system/priv-app vào lần đầu tiên bạn cài đặt ứng dụng:

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

Bài kiểm tra

Sau khi Live TV được cài đặt trên thiết bị của bạn, hãy kiểm tra xem thiết bị đó có được tích hợp đúng cách hay không bằng cách sử dụng các bài kiểm tra sau bên cạnh bộ kiểm tra Khả năng tương thíchcác bài kiểm tra Trình xác minh CTS cho ứng dụng TV. Bạn phải kết nối thiết bị hoặc trình mô phỏng để chạy tất cả các loại thử nghiệm.

Kiểm tra đơn vị

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'

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.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 giật

Kiểm tra độ giật sẽ tìm kiếm các khung hình bị rớt và độ trễ khi 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.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'