Ứng dụng truyền hình tham chiếu

Bạn phải có một ứng dụng truyền hình để phát nội dung truyền hình trực tuyến đối với một số lớp của Android TV như TV màn hình và STB của nhà mạng. Mã nguồn cho ứng dụng tham chiếu có sẵn trong Dự án nguồn mở Android.

Trang này tóm tắt cách tạo và tuỳ chỉnh ứng dụng truyền hình hệ thống dựa trên trên Truyền hình trực tuyến dành cho thiết bị TV Android.

Phần phụ thuộc

Ứng dụng Truyền hình trực tuyến 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 TIF khác. Các nhánh khác nhau của ứng dụng có các phần phụ thuộc khác nhau ở 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 một phiên bản Truyền hình trực tuyến từ Git. Các hướng dẫn sau đây dành cho phiên bản Truyền hình trực tuyến. Để 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

Tạo

Để tạo mã Truyền hình trực tiếp, hãy chạy mã:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Truyền phát

Sử dụng mã sau để đẩy Truyền hình trực tuyến sang thiết bị thử nghiệm:

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

Nếu bạn muốn ứng dụng Truyền hình trực tuyến có các quyền hệ thống, hãy dùng mã sau để đẩy ứng dụng này vào /system/priv-app vào lần đầu tiên bạn cài đặt:

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

Kiểm tra

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

Kiểm thử đơ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 thử 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 tình trạng giật

Các bài kiểm thử hiện tượng giật tìm các khung hình bị rớt và độ trễ trong quá trình 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'