Một ứ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 màn hình và STB của nhà mạng. Mã nguồn cho ứng dụng tham chiếu có 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 TV hệ thống dựa trên TV trực tiếp cho thiết bị TV Android.
Phần phụ thuộc
Ứng dụng TV trực tiếp 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 trên các 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 |
Nhận nguồn
Để bắt đầu, hãy chọn một phiên bản Truyền hình trực tiếp trên Git. Hướng dẫn sau đây dành cho phiên bản Truyền hình trực tiếp hiện tại. Để 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ã cho TV trực tiếp, hãy chạy:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Truyền phát
Sử dụng mã sau để đẩy Truyền hình trực tiếp đến 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 Live TV có quyền hệ thống, hãy sử dụng mã sau để đẩy ứng dụng đó vào /system/priv-app
trong lần đầu tiên cài đặt:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Kiểm tra
Sau khi cài đặt ứng dụng Truyền hình trực tiếp trên thiết bị, hãy kiểm tra để đảm bảo ứng dụng này được tích hợp đúng cách bằng cách sử dụng các bài kiểm thử sau đây ngoài Bộ kiểm thử khả năng tương thích và Bài kiểm thử của Trình xác minh CTS cho ứng dụng TV. 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 thử hiện tượng giật
Các bài kiểm thử hiện tượng giật tìm kiếm các khung hình bị bỏ lỡ 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'