Ứng dụng truyền hình sử dụng cấu trúc giống như ứng dụng dành cho điện thoại và máy tính bảng. Sự tương đồng này có nghĩa là bạn có thể sửa đổi các ứng dụng hiện có để chạy trên các thiết bị TV hoặc tạo ứng dụng mới dựa trên những kiến thức sẵn có về lập trình ứng dụng cho Android.
Lưu ý quan trọng: Ứng dụng của bạn phải đáp ứng một số yêu cầu cụ thể thì mới đủ điều kiện được xem là ứng dụng cho Android TV trên Google Play. Để biết thêm thông tin, hãy xem các yêu cầu được liệt kê trong bài viết Chất lượng của ứng dụng truyền hình.
Hướng dẫn này mô tả cách chuẩn bị môi trường phát triển để tạo ứng dụng TV và những thay đổi tối thiểu cần thiết để cho phép ứng dụng chạy trên các thiết bị TV.
Để biết thông tin về cách thiết kế ứng dụng cho TV, hãy xem phần Thiết kế cho TV. Bạn cũng có thể xem các ứng dụng mẫu trong kho lưu trữ Android TV trên GitHub.
Xác định khả năng hỗ trợ định dạng nội dung nghe nhìn
Hãy xem tài liệu sau đây để biết thông tin về các bộ mã hoá và giải mã, giao thức và định dạng mà Android TV hỗ trợ:
Thiết lập dự án TV
Phần này thảo luận về cách thiết lập một dự án TV, cho dù bạn đang sửa đổi một ứng dụng Android hiện có để chạy trên các thiết bị TV hay tạo một ứng dụng truyền hình mới. Nếu có một ứng dụng Android hiện có, việc thêm tính năng hỗ trợ Android TV sẽ giúp bạn thiết kế giao diện người dùng cho TV trong khi vẫn sử dụng lại cấu trúc ứng dụng hiện có.
Có 2 thành phần chính mà bạn sử dụng khi tạo một ứng dụng chạy trên thiết bị TV:
- Hoạt động cho TV: Trong tệp kê khai ứng dụng, hãy khai báo một hoạt động dự định chạy trên các thiết bị TV.
- Thư viện TV: Bạn có thể thêm một hoặc nhiều thư viện androidx có sẵn cho các thiết bị TV (được liệt kê trong một phần khác của hướng dẫn này). Các thư viện này cung cấp các tiện ích để tạo giao diện người dùng.
Điều kiện tiên quyết
Trước khi bắt đầu tạo ứng dụng cho TV, bạn phải thực hiện các bước sau:
-
Cập nhật công cụ SDK lên phiên bản 24.0.0 trở lên.
Các công cụ SDK mới cập nhật cho phép bạn tạo và kiểm thử ứng dụng cho TV. - Cập nhật SDK của bạn bằng Android 5.0 (API 21) trở lên.
Phiên bản nền tảng mới cập nhật cung cấp các API mới cho ứng dụng truyền hình. -
Tạo hoặc cập nhật dự án ứng dụng của bạn.
Để truy cập vào các API mới cho thiết bị TV, hãy tạo một dự án hoặc sửa đổi một dự án hiện có nhắm đến Android 5.0 (cấp độ API 21) trở lên.
Khai báo hoạt động trên TV
Một ứng dụng dự định chạy trên các thiết bị TV phải khai báo một hoạt động của trình chạy cho TV trong tệp kê khai. Thao tác này sử dụng bộ lọc ý định CATEGORY_LEANBACK_LAUNCHER. Bộ lọc này xác định ứng dụng của bạn là ứng dụng được bật cho TV và cho phép Google Play xác định ứng dụng đó là ứng dụng TV. Khi người dùng chọn ứng dụng của bạn trên màn hình chính của TV, ý định này sẽ xác định hoạt động cần khởi chạy.
Đoạn mã sau đây cho biết cách đưa bộ lọc ý định này vào tệp kê khai:
<application android:banner="@drawable/banner" > ... <activity android:name="com.example.android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.android.TvActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity> </application>
Mục nhập thứ hai trong tệp kê khai hoạt động trong ví dụ này chỉ định rằng đây là hoạt động sẽ khởi chạy trên thiết bị TV.
Thận trọng: Nếu không thêm bộ lọc ý định CATEGORY_LEANBACK_LAUNCHER vào ứng dụng, thì người dùng chạy Google Play trên thiết bị TV sẽ không thấy ứng dụng của bạn. Ngoài ra, nếu ứng dụng của bạn không có bộ lọc này khi bạn dùng các công cụ dành cho nhà phát triển để tải ứng dụng lên một thiết bị TV, thì ứng dụng sẽ không xuất hiện trong giao diện người dùng TV.
Giao diện người dùng của ứng dụng truyền hình hoặc phần truyền hình của ứng dụng hiện có phải cung cấp chế độ điều hướng trực quan bằng điều khiển từ xa trong phạm vi 3 mét. Nếu bạn đang sửa đổi một ứng dụng hiện có để dùng trên TV, đừng sử dụng cùng một bố cục hoạt động cho TV mà bạn dùng cho điện thoại và máy tính bảng. Để biết các nguyên tắc về cách thiết kế ứng dụng cho TV, hãy xem phần Thiết kế cho TV.
Khai báo việc hỗ trợ thiết bị TV
Khai báo rằng ứng dụng của bạn được tạo cho Android TV bằng cách khai báo tính năng android.software.leanback.
Nếu ứng dụng của bạn chạy trên cả thiết bị di động và TV, hãy đặt giá trị thuộc tính required thành false. Nếu bạn đặt giá trị thuộc tính required thành true, thì Google Play sẽ chỉ cung cấp ứng dụng của bạn trên hệ điều hành Android TV.
<manifest> <uses-feature android:name="android.software.leanback" android:required="false" /> ... </manifest>
Khai báo không yêu cầu màn hình cảm ứng
Những ứng dụng dự kiến chạy trên thiết bị TV không dựa vào màn hình cảm ứng để nhập dữ liệu.
Để làm rõ điều này, tệp kê khai của ứng dụng truyền hình phải khai báo rằng tính năng android.hardware.touchscreen là không bắt buộc. Chế độ cài đặt này xác định ứng dụng của bạn có thể hoạt động trên thiết bị TV và bắt buộc để ứng dụng của bạn được coi là ứng dụng TV trong Google Play. Ví dụ về mã sau đây cho thấy cách đưa khai báo tệp kê khai này vào:
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest>
Thận trọng: Trong tệp kê khai ứng dụng, bạn phải khai báo rằng ứng dụng không yêu cầu màn hình cảm ứng, như trong mã ví dụ này. Nếu không, ứng dụng của bạn sẽ không xuất hiện trong Google Play trên các thiết bị TV.
Cung cấp biểu tượng và biểu ngữ trên màn hình chính
Các ứng dụng Android TV phải cung cấp cả biểu tượng trên màn hình chính và ảnh biểu ngữ cho mỗi bản bản địa hoá. Tuỳ thuộc vào thiết bị Android TV, biểu tượng hoặc biểu ngữ sẽ được dùng làm điểm khởi chạy ứng dụng xuất hiện trên màn hình chính trong các hàng ứng dụng và trò chơi.
Để thêm những thành phần này vào ứng dụng, hãy mô tả biểu tượng và biểu ngữ trong tệp kê khai như sau:
<application ... android:icon="@mipmap/ic_launcher" android:banner="@drawable/banner" > ... </application>
Biểu tượng trên màn hình chính
Giống như mọi ứng dụng Android, các ứng dụng Android TV phải cung cấp một biểu tượng trên màn hình chính. Để biết các phương pháp hay nhất về cách thiết kế một điểm khởi chạy tuyệt vời cho ứng dụng cho Android TV của bạn và các yêu cầu chi tiết về thành phần, hãy xem nguyên tắc về biểu tượng và biểu ngữ ứng dụng cho Android TV.
Biểu ngữ trên màn hình chính
Hãy sử dụng thuộc tính android:banner với thẻ <application> để cung cấp biểu ngữ mặc định cho tất cả hoạt động của ứng dụng hoặc với thẻ <activity> để cung cấp biểu ngữ cho một hoạt động cụ thể.
Đối với biểu ngữ, hãy sử dụng tài nguyên xhdpi có kích thước 320 x 180 px. Bạn phải thêm văn bản vào hình ảnh. Nếu ứng dụng của bạn hỗ trợ nhiều ngôn ngữ, bạn phải cung cấp các phiên bản riêng biệt của biểu ngữ có văn bản cho từng ngôn ngữ được hỗ trợ.
Thay đổi màu của trình chạy
Thận trọng: Trong Android 12 trở lên, các ảnh động màn hình chờ tuỳ chỉnh được tạo bằng API nền tảng SplashScreen không được hỗ trợ cho các ứng dụng Android TV.
Khi một ứng dụng truyền hình khởi chạy, hệ thống sẽ hiển thị một ảnh động giống như một vòng tròn đầy màu sắc đang mở rộng. Để tuỳ chỉnh màu của ảnh động này, hãy đặt thuộc tính android:colorPrimary của ứng dụng hoặc hoạt động trên TV thành một màu cụ thể. Ngoài ra, hãy đặt 2 thuộc tính trùng lặp của hiệu ứng chuyển thành true như trong đoạn mã sau đây của một tệp XML tài nguyên chủ đề:
<resources> <style name="MyTheme"> <item name="android:colorPrimary">@color/primary</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> <item name="android:windowAllowEnterTransitionOverlap">true</item> </style> </resources>
Để biết thêm thông tin về cách xử lý giao diện và kiểu, hãy xem phần Kiểu và giao diện.
Tạo ứng dụng cho hệ điều hành Android TV
Jetpack bao gồm các thư viện gói androidx để dùng với các ứng dụng TV.
Compose cho TV
Bạn nên dùng Compose để tạo ứng dụng cho Android TV OS. Bên cạnh các thư viện Compose cốt lõi, thư viện Compose cho TV cung cấp các thành phần chuyên dụng được thiết kế đặc biệt cho màn hình lớn:
Khám phá cách tạo ứng dụng truyền hình bằng Compose cho TV trong phần Sử dụng Jetpack Compose trên Android TV.
Bộ công cụ giao diện người dùng Leanback
Bộ công cụ giao diện người dùng Leanback cung cấp các API và tiện ích giao diện người dùng cho thiết bị TV:
androidx.leanback.appandroidx.leanback.databaseandroidx.leanback.graphicsandroidx.leanback.mediaandroidx.leanback.preferenceandroidx.leanback.systemandroidx.leanback.widgetandroidx.leanback.widget.picker
Khám phá cách tạo ứng dụng truyền hình bằng bộ công cụ giao diện người dùng Leanback trong phần Tạo ứng dụng phát trên TV.
Chạy ứng dụng truyền hình
Chạy ứng dụng là một phần quan trọng trong quy trình phát triển. Bạn có thể chạy ứng dụng trên các thiết bị TV được định cấu hình để hỗ trợ gỡ lỗi qua USB hoặc sử dụng thiết bị TV ảo.
Chạy trên thiết bị thực
Thiết lập thiết bị TV của bạn như sau:
- Dùng cáp USB để kết nối thiết bị TV với máy phát triển. Nếu cần, hãy tham khảo tài liệu do nhà sản xuất thiết bị cung cấp.
- Trên thiết bị TV, hãy chuyển đến phần Cài đặt.
- Trong hàng Thiết bị, hãy chọn Thông tin.
- Di chuyển đến phần Build (Bản dựng) rồi chọn Build (Bản dựng) nhiều lần cho đến khi bạn nhận được thông báo "Bạn hiện là nhà phát triển!"
- Quay lại Cài đặt. Trong hàng Lựa chọn ưu tiên, hãy chọn Tuỳ chọn cho nhà phát triển.
- Chọn Gỡ lỗi > Gỡ lỗi qua USB rồi chọn Bật.
- Quay lại màn hình chính của TV.
Cách kiểm thử ứng dụng trên thiết bị TV:
- Trong Android Studio, hãy chọn dự án của bạn rồi nhấp vào Chạy
trên thanh công cụ. - Trong cửa sổ Select Deployment Target (Chọn mục tiêu triển khai), hãy chọn thiết bị TV rồi nhấp vào OK.
Chạy trên thiết bị ảo
Trình quản lý thiết bị Android ảo trong SDK Android cung cấp các định nghĩa thiết bị cho phép bạn tạo thiết bị TV ảo để chạy và kiểm thử ứng dụng.
Cách tạo thiết bị TV ảo:
- Khởi động Trình quản lý thiết bị Android ảo. Để biết thêm thông tin, hãy xem phần Tạo và quản lý thiết bị ảo.
- Trong hộp thoại Trình quản lý thiết bị Android ảo, hãy nhấp vào thẻ Device Definitions (Định nghĩa thiết bị).
- Chọn một trong các định nghĩa thiết bị Android TV rồi nhấp vào Create AVD (Tạo AVD).
- Chọn các lựa chọn trình mô phỏng rồi nhấp vào OK để tạo AVD.
Lưu ý: Để thiết bị trình mô phỏng TV hoạt động hiệu quả nhất, hãy sử dụng trình mô phỏng x86 và bật tuỳ chọn Sử dụng GPU máy chủ. Đồng thời sử dụng tính năng tăng tốc thiết bị ảo khi có thể. Để biết thêm thông tin về tính năng tăng tốc phần cứng của trình mô phỏng, hãy xem phần Định cấu hình tính năng tăng tốc phần cứng cho Trình mô phỏng Android.
Cách kiểm thử ứng dụng trên thiết bị TV ảo:
- Trong Android Studio, hãy chọn dự án của bạn rồi nhấp vào Chạy
trên thanh công cụ. - Trong cửa sổ Select Deployment Target (Chọn mục tiêu triển khai), hãy chọn thiết bị TV ảo rồi nhấp vào OK.
Để biết thêm thông tin về cách sử dụng trình mô phỏng, hãy xem bài viết Chạy ứng dụng trên Trình mô phỏng Android. Để biết thêm thông tin về cách triển khai ứng dụng từ Android Studio đến các thiết bị ảo, hãy xem bài viết Gỡ lỗi ứng dụng.
Cho phép ứng dụng truyền hình của bạn chạy dưới dạng một trải nghiệm tức thì
Trải nghiệm tức thì cho phép người dùng dùng thử ứng dụng truyền hình của bạn mà không cần cài đặt và có thể giúp tăng mức độ chấp nhận.
Để thiết lập ứng dụng truyền hình chạy dưới dạng ứng dụng tức thì trên thiết bị Android TV hoặc trình mô phỏng, trước tiên, hãy làm theo hướng dẫn để tạo một gói ứng dụng hỗ trợ phiên bản tức thì.
Tiếp theo, trong intent-filter cho MainActivity của ứng dụng truyền hình, hãy đảm bảo rằng cả LAUNCHER và LEANBACK_LAUNCHER đều được khai báo trong AndroidManifest.xml:
<activity android:name="com.example.android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity>
Ứng dụng truyền hình của bạn hiện đã được định cấu hình để chạy dưới dạng trải nghiệm tức thì.
Chuẩn bị ứng dụng truyền hình để xuất bản
Xem danh sách kiểm tra Ứng dụng truyền hình để biết các bước tiếp theo nhằm chuẩn bị ứng dụng truyền hình của bạn cho việc xuất bản và phân phối.