Tạo và chạy ứng dụng truyền hình

Ứ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 ứng dụng hiện có để ứng dụng đó cũng chạy trên thiết bị TV hoặc tạo ứng dụng mới dựa trên những gì bạn đã có biết cách tạo ứng dụng cho Android.

Lưu ý quan trọng: Ứng dụng của bạn phải đáp ứng các yêu cầu cụ thể để đủ điều kiện là ứng dụng 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ê về chất lượng ứng dụng TV.

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 cũng như các thay đổi cần thiết tối thiểu để cho phép ứng dụng chạy trên thiết bị TV.

Để biết thông tin về cách thiết kế ứng dụng dành cho TV, hãy xem nội dung Thiết kế cho TV. Ngoài ra, hãy xem các ứng dụng mẫu trong Kho lưu trữ GitHub cho Android TV.

Xác định khả năng hỗ trợ định dạng nội dung đa phương tiện

Hãy xem tài liệu sau để biết thông tin về bộ mã hoá và giải mã, giao thức và định dạng được Android TV hỗ trợ:

Thiết lập dự án truyền hình

Phần này thảo luận cách thiết lập dự án truyền hình, cho dù bạn sửa đổi ứng dụng Android hiện có để chạy trên thiết bị TV hoặc tạo một ứng dụng truyền hình mới. Nếu bạn đã có một ứng dụng Android, thì 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 sử dụng lại cấu trúc ứng dụng hiện có.

Có hai thành phần chính mà bạn sử dụng khi tạo ứng dụng chạy trên thiết bị TV:

  • Activity for TV (Hoạt động dành cho TV): Trong tệp kê khai ứng dụng, khai báo một hoạt động sẽ chạy trên các thiết bị TV.
  • Thư viện TV: Bạn có thể bao gồm một hoặc nhiều Thư viện androidx dành cho 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 tiện ích để xây dựng giao diện người dùng.

Điều kiện tiên quyết

Trước khi bắt đầu tạo một ứng dụng dành cho TV, bạn phải thực hiện các bước sau:

  • Cập nhật bộ công cụ SDK lên phiên bản 24.0.0 trở lên.
    Bộ công cụ SDK đã cập nhật cho phép bạn tạo và kiểm thử ứng dụng dành cho TV.
  • Cập nhật SDK lên Android 5.0 (API 21) trở lên.
    Phiên bản nền tảng đã 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.
    Để truy cập API mới dành 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ó dự án nhắm đến Android 5.0 (API cấp 21) trở lên.

Khai báo hoạt động trên TV

Ứng dụng muốn chạy trên thiết bị TV phải khai báo hoạt động của trình chạy cho TV trong tệp kê khai. Hàm này sử dụng ý định CATEGORY_LEANBACK_LAUNCHER để thực hiện việc này. Bộ lọc này xác định ứng dụng của bạn đang được bật cho TV và cho phép Google Play xác định đó là một ứng dụng truyền hình. 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 xác định hoạt động nào 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 kê khai hoạt động thứ hai trong ví dụ này chỉ định rằng đó là hoạt động cần khởi chạy trên thiết bị TV.

Thận trọng: Nếu bạn không đưa vào Bộ lọc ý định CATEGORY_LEANBACK_LAUNCHER trong ứng dụng của bạn, 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 không có bộ lọc này khi bạn sử dụng công cụ dành cho nhà phát triển để tải ứng dụng lên thiết bị TV, ứng dụng 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 TV của ứng dụng hiện tại phải cung cấp một giao diện đơn giản để bạn dễ dàng thao tác bằng điều khiển từ xa cách xa khoảng 3 mét. Nếu bạn đang sửa đổi một ứng dụng hiện có để sử dụng trên TV, đừng sử dụng ứng dụng đó 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 hướng dẫn thiết kế ứng dụng dành cho TV, hãy xem bài viết Thiết kế dành cho TV.

Khai báo chức năng hỗ trợ thiết bị TV

Khai báo rằng ứng dụng của bạn là dành cho Android TV bằng cách khai báo thuộc tính 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 đặt giá trị thuộc tính required thành true, 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 về màn hình cảm ứng là không bắt buộc

Các ứng dụng dùng để chạy trên thiết bị TV không dựa vào màn hình cảm ứng để đầu vào. Để làm rõ điều này, tệp kê khai của ứng dụng TV 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 rằng ứng dụng của bạn đang có thể hoạt động trên thiết bị TV và điều đó là bắt buộc để ứng dụng của bạn được coi là ứng dụng truyền hình trên Google Chơi. Ví dụ về mã sau đây cho thấy cách đưa nội dung khai báo tệp kê khai này:

<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 không bắt buộc phải có màn hình cảm ứng. như mã ví dụ dưới đây. Nếu không, ứng dụng của bạn sẽ không xuất hiện trong Google Play trên TV thiết bị.

Cung cấp biểu tượng và biểu ngữ màn hình chính

Ứng dụng Android TV phải cung cấp cả biểu tượng màn hình chính và ảnh biểu ngữ cho từng nội dung 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 sử dụng khi khởi chạy ứng dụng xuất hiện trên màn hình chính trong hàng ứng dụng và trò chơi.

Để thêm những đối tượng 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 màn hình chính

Giống như tất cả ứng dụng Android, ứng dụng Android TV phải cung cấp biểu tượng màn hình chính. Để biết các phương pháp hay nhất về tìm ra điểm khởi chạy phù hợp cho ứng dụng của bạn cũng như các yêu cầu chi tiết về thành phần, hãy xem Biểu tượng và biểu ngữ của ứng dụng Android TV nguyên tắc.

Sử dụng android:banner bằng <application> để cung cấp một biểu ngữ mặc định cho tất cả hoạt động của ứng dụng hoặc cùng với <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. Văn bản phải được đưa vào trong hình ảnh. Nếu ứng dụng 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ữ kèm văn bản cho từng ngôn ngữ được hỗ trợ.

Thay đổi màu trình chạy

Thận trọng: Trong Android 12 trở lên, ảnh động trên 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 TV chạy, hệ thống sẽ hiện một ảnh động giống như ảnh động mở rộng, được tô màu nền vòng kết nối. Để tuỳ chỉnh màu của ảnh động này, hãy đặt giá trị 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 hai các thuộc tính chồng chéo chuyển đổi sang true như được minh hoạ trong đoạn mã sau đây từ một tệp XML của tài nguyên giao diện:

<resources>
    <style ... >
      <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 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 để bạn dùng với ứng dụng truyền hình.

Compose cho TV

Bạn nên sử dụng Compose để tạo ứng dụng cho hệ điều hành Android TV. Cùng với Compose chính thì thư viện Compose cho TV cung cấp các thành phần chuyên biệt đượ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 dành cho TV trong bài viết Sử dụng Jetpack Compose trên Android TV.

Bộ công cụ Leanback UI

Bộ công cụ Leanback UI cung cấp các API và tiện ích giao diện người dùng cho thiết bị TV:

Khám phá cách tạo ứng dụng truyền hình bằng bộ công cụ Leanback UI trong Xây dựng ứng dụng phát trên TV.

Chạy ứng dụng dành cho TV

Chạy ứng dụng là một phần quan trọng trong quá 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

Hãy thiết lập thiết bị TV như sau:

  1. Sử 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ị của bạn cung cấp.
  2. Trên thiết bị TV, hãy chuyển đến phần Cài đặt.
  3. Trong hàng Device (Thiết bị), hãy chọn About (Giới thiệu).
  4. Di chuyển đến phần Build (Tạo) rồi chọn Build (Tạo) vài lần cho đến khi bạn nhận được thông báo "Bây giờ bạn đã là nhà phát triển!"
  5. 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.
  6. Chọn Gỡ lỗi > Gỡ lỗi qua USB rồi chọn Bật.
  7. 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:

  1. Trong Android Studio, hãy chọn dự án của bạn rồi nhấp vào Chạy khỏi thanh công cụ.
  2. Trong cửa sổ Select Deployment Target (Chọn đối tượng triển khai) 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ị ảo Android trong Android SDK cung cấp các định nghĩa về thiết bị, cho phép bạn tạo thiết bị TV ảo để chạy và việc kiểm thử các ứng dụng của bạn.

Cách tạo thiết bị TV ảo:

  1. Khởi động Trình quản lý thiết bị ảo Android. Để biết thêm thông tin, hãy xem Tạo và quản lý thiết bị ảo.
  2. Trong hộp thoại Trình quản lý thiết bị ảo Android, hãy nhấp vào thẻ Device defined (Định nghĩa thiết bị).
  3. Chọn một trong các định nghĩa về thiết bị Android TV rồi nhấp vào Create AVD (Tạo AVD).
  4. Chọn các tuỳ chọn trình mô phỏng rồi nhấp vào OK để tạo AVD.

    Lưu ý: Để trình mô phỏng TV đạt hiệu suất tốt nhất, hãy dùng trình mô phỏng x86 rồi bật tuỳ chọn Use Host GPU (Sử dụng GPU lưu trữ). Đồng thời sử dụng tính năng tăng tốc thiết bị ảo khi sẵn có. Để 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 Định cấu hình 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:

  1. Trong Android Studio, hãy chọn dự án của bạn rồi nhấp vào Chạy khỏi thanh công cụ.
  2. Trong cửa sổ Select Deployment Target (Chọn đối tượng triển khai) chọn thiết bị TV ảo của bạn 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 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 lên môi trường ảo thiết bị nào đó, hãy xem bài viết Gỡ lỗi ứng dụng.

Cho phép ứng dụng TV chạy dưới dạng trải nghiệm tức thì

Trải nghiệm tức thì giúp người dùng dễ dàng để dùng thử ứng dụng truyền hình của bạn và có thể giúp tăng tỷ lệ sử dụng.

Cách thiết lập để ứng dụng TV chạy dưới dạng ứng dụng tức thì trên trình mô phỏng hoặc thiết bị Android TV: trước tiên, hãy làm theo hướng dẫn để tạo gói ứng dụng có hỗ trợ phiên bản tức thì.

Tiếp theo, trong intent-filter dành cho ứng dụng TV MainActivity, hãy chắc chắn rằng cả LAUNCHERLEANBACK_LAUNCHER đượ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ị phát hành ứng dụng truyền hình

Xem lại danh sách kiểm tra Ứng dụng TV để biết các bước tiếp theo chuẩn bị ứng dụng truyền hình để xuất bản và phân phối.