Chế độ đẩy mặt đồng hồ

Wear OS 6 ra mắt một API mới, Watch Face Push, tạo cơ hội cho các trường hợp sử dụng nâng cao hơn về việc phát hành mặt đồng hồ.

Xác định thời điểm sử dụng tính năng đẩy mặt đồng hồ

Watch Face Push là một API trên Wear OS cho phép nhà phát triển thêm, cập nhật hoặc xoá mặt đồng hồ trực tiếp. Bạn không cần đến lớp này để phát triển mặt đồng hồ tiêu chuẩn.

Bạn phải viết mặt đồng hồ dùng với tính năng Đẩy mặt đồng hồ bằng Định dạng mặt đồng hồ. Điều này có thể bao gồm các mặt đồng hồ được thiết kế bằng Watch Face Studio hoặc bất kỳ công cụ nào khác tạo ra mặt đồng hồ sử dụng Định dạng mặt đồng hồ.

Mặc dù có thể sử dụng API đẩy mặt đồng hồ theo một số cách, nhưng bạn nên sử dụng bảng sau đây làm hướng dẫn cho các trường hợp sử dụng chính:

Trường hợp sử dụng Giải pháp được đề xuất Độ phức tạp
Tôi muốn tạo và xuất bản mặt đồng hồ riêng lẻ. Sử dụng Định dạng mặt đồng hồ, trực tiếp hoặc thông qua một công cụ như Watch Face Studio, rồi xuất bản mặt đồng hồ trên Google Play. Thấp
Tôi muốn tạo một ứng dụng dành cho điện thoại cho phép người dùng chọn mặt đồng hồ trong một bộ sưu tập được tuyển chọn hoặc thiết kế và tuỳ chỉnh mặt đồng hồ để cài đặt trực tiếp trên đồng hồ Wear OS. Tạo một ứng dụng cho cả đồng hồ và điện thoại bằng cách sử dụng Watch Face Push API trên đồng hồ. Cao

Mục đích

Trường hợp sử dụng chuẩn cho API đẩy mặt đồng hồ là để tạo ứng dụng chợ ứng dụng. Trong ứng dụng này, người dùng có thể chọn mặt đồng hồ trong một bộ sưu tập được tuyển chọn trên điện thoại và trực tiếp kiểm soát việc cài đặt các mặt đồng hồ này trên đồng hồ đã kết nối.

Những yếu tố nên cân nhắc

Để biết thông tin chi tiết về cách tạo mặt đồng hồ, hãy tham khảo hướng dẫn về Định dạng mặt đồng hồ: Mặt đồng hồ được triển khai bằng tính năng Đẩy mặt đồng hồ là mặt đồng hồ Định dạng mặt đồng hồ thông thường.

Khi xây dựng mặt đồng hồ, hãy lưu ý những điều sau.

Tên gói

Mặt đồng hồ được cài đặt bằng tính năng Đẩy mặt đồng hồ phải tuân thủ quy ước sau:

<app name>.watchfacepush.<watchface name>

... trong đó <app name> là tên gói của ứng dụng gọi Watch Face Push API.

Ví dụ: đối với một ứng dụng có tên gói là com.example.mymarketplace, sau đây là tên gói mặt đồng hồ hợp lệ:

  • com.example.mymarketplace.watchfacepush.watchface1
  • com.example.mymarketplace.watchfacepush.watchface2
  • com.example.mymarketplace.watchfacepush.another_watchface

API sẽ từ chối những mặt đồng hồ không tuân thủ quy ước này.

Nội dung gói

Nội dung APK được thực thi nghiêm ngặt. Bạn cần cẩn thận để đảm bảo rằng Định dạng mặt đồng hồ tuân thủ các quy tắc ràng buộc sau: Về mặt kỹ thuật, bạn có thể tạo tệp APK Định dạng mặt đồng hồ chứa các tệp siêu dữ liệu vô hại và các cấu phần phần mềm khác. Những tệp này có thể được Google Play chấp nhận nhưng không vượt qua quy trình xác thực tính năng Đẩy mặt đồng hồ (xem bên dưới).

Mỗi APK mặt đồng hồ chỉ chấp nhận các tệp/đường dẫn sau:

  • /AndroidManifest.xml
  • /resources.arsc
  • /res/**
  • /META-INF/**

Ngoài ra, chỉ những thẻ sau đây mới được phép trong tệp AndroidManifest.xml:

  • <manifest>
  • <uses-feature>
  • <uses-sdk>
  • <application>
  • <property>
  • <meta-data>

Cuối cùng, gói phải chỉ định minSdk tối thiểu là 33 và thẻ <application> phải chỉ định thuộc tính android:hasCode="false".

Xác nhận kết quả

Không giống như các mặt đồng hồ thông thường được phân phối thông qua Google Play, ứng dụng Marketplace có trách nhiệm kiểm tra để đảm bảo rằng mỗi mặt đồng hồ đều được định dạng và hoạt động hiệu quả.

Google Play sử dụng các bước kiểm tra xác thực sau đây để xác minh chất lượng của từng mặt đồng hồ sử dụng tính năng Đẩy mặt đồng hồ:

  1. Tất cả mặt đồng hồ được cài đặt hoặc cập nhật thông qua Watch Face Push API đều phải vượt qua công cụ xác thực Watch Face Push.
  2. Bạn chỉ có thể sử dụng công cụ xác thực chính thức để tạo mã xác thực dùng với API.
  3. Công cụ xác thực được sử dụng phải được cập nhật tại thời điểm chạy quy trình xác thực.
  4. Bạn không cần phải xác thực lại tệp APK chưa thay đổi. Mã thông báo không hết hạn, ngay cả khi phiên bản công cụ xác thực được sử dụng bị thay thế.

    Đồng thời, bạn nên chạy lại quy trình xác thực một lần trong một thời gian, vì trình xác thực được cập nhật định kỳ.

Chạy trình xác thực

Để chạy trình xác thực trên tệp APK mặt đồng hồ, hãy làm theo các bước sau:

  1. Tải trình xác thực từ kho lưu trữ Maven của Google.
  2. Chạy công cụ như sau:

    java -jar validator-push-cli-1.0.0-alpha01.jar \
        --apk_path=youwatchface.apk \
        --package_name=<your marketplace package name>
    

    Nếu thành công, kết quả sẽ bao gồm một mã thông báo xác thực mà bạn phải cung cấp cho API đẩy mặt đồng hồ khi thêm hoặc cập nhật mặt đồng hồ.

    Nếu xảy ra lỗi, kết quả sẽ bao gồm thông tin chi tiết về quy trình kiểm tra cụ thể nào không thành công.

    Để biết ví dụ về cách kết hợp công cụ CLI của trình xác thực vào bản dựng Gradle, hãy xem Mẫu đẩy mặt đồng hồ trên GitHub.

Kích thước APK

Bạn cần đặc biệt chú ý đến các mặt đồng hồ Watch Face Push để đảm bảo kích thước APK ở mức tối thiểu: APK mặt đồng hồ có thể được truyền từ ứng dụng điện thoại sang ứng dụng đồng hồ qua Bluetooth, điều này có thể làm chậm quá trình truyền.

Tệp APK quá lớn có thể mất nhiều thời gian để truyền, gây ra trải nghiệm người dùng kém và tiêu hao pin.

  • Sử dụng các thư viện thích hợp như pngquant để giữ kích thước tệp hình ảnh ở mức tối thiểu
    • Thêm tệp này vào quy trình tạo bộ sưu tập mặt đồng hồ
    • Kiểm tra kích thước của hình ảnh để đảm bảo phù hợp với tỷ lệ sử dụng.
    • Đảm bảo hình ảnh được cắt bớt phù hợp để xoá mọi nền xung quanh.
  • Giảm kích thước tệp phông chữ

Hãy tham khảo Hướng dẫn tối ưu hoá mức sử dụng bộ nhớ để biết thêm các đề xuất về việc giảm thiểu kích thước APK.

Ký APK

Là một tệp APK thông thường, tất cả mặt đồng hồ của bạn đều cần được ký. Tạo một khoá khác với khoá dùng cho ứng dụng chính và sử dụng khoá khác cho tất cả mặt đồng hồ.

Kiến trúc

Hãy xem xét 3 thành phần chính của hệ thống:

  1. Bộ nhớ trên đám mây: Trong ứng dụng Marketplace chuẩn, mặt đồng hồ được tạo và lưu trữ trên đám mây, sẵn sàng để người dùng sử dụng. Các mặt đồng hồ là:
    1. Được tạo sẵn dưới dạng tệp APK Định dạng mặt đồng hồ thông thường
    2. Mỗi tệp chỉ chứa một mặt đồng hồ dựa trên Định dạng mặt đồng hồ
    3. Đã được xác thực bằng quy trình xác thực Watch Face Push và được lưu trữ cùng với mã xác thực liên quan.
    4. Sẵn sàng để ứng dụng điện thoại truy xuất khi cần.
  2. Ứng dụng điện thoại: Ứng dụng điện thoại là cách chính để người dùng tương tác với hệ thống của bạn. Tính năng này cho phép họ:
    1. Duyệt xem và tìm kiếm danh mục mặt đồng hồ
    2. Cài đặt hoặc thay thế mặt đồng hồ trên đồng hồ
  3. Ứng dụng đồng hồ: Ứng dụng đồng hồ thường không có giao diện người dùng đáng kể. API này chủ yếu là cầu nối giữa ứng dụng điện thoại và API đẩy mặt đồng hồ, với chức năng sau:
    1. Sử dụng Watch Face Push API để cài đặt/cập nhật hoặc thay thế mặt đồng hồ
    2. Yêu cầu cấp các quyền cần thiết và nhắc người dùng
    3. Cung cấp mặt đồng hồ mặc định
    4. Cung cấp bộ nhớ đệm tối thiểu cho mặt đồng hồ
  4. Giao tiếp giữa điện thoại và đồng hồ: Giao tiếp giữa ứng dụng điện thoại và đồng hồ là yếu tố then chốt để mang lại trải nghiệm tổng thể thành công. Sử dụng API Lớp dữ liệu Wear OS, cho phép:
    1. Phát hiện lượt cài đặt: Bằng cách sử dụng các Khả năng và CapabilityClient, ứng dụng điện thoại có thể phát hiện việc không có ứng dụng đồng hồ và ngược lại. Sau đó, bạn có thể chạy một ý định đến Cửa hàng Play để cài đặt hệ số hình dạng bị thiếu.
    2. Quản lý trạng thái: Bằng cách sử dụng DataClient hoặc MessageClient, điện thoại có thể được đồng bộ hoá với trạng thái của đồng hồ, ví dụ: đảm bảo rằng điện thoại biết được mặt đồng hồ nào được đặt.
    3. Truyền APK: Bằng cách sử dụng ChannelClient hoặc MessageClient, bạn có thể gửi tệp APK từ điện thoại đến đồng hồ
    4. Lệnh gọi từ xa: Bằng cách sử dụng Messageclient, điện thoại có thể hướng dẫn đồng hồ gọi Watch Face Push API, chẳng hạn như để cài đặt mặt đồng hồ.

Hãy tham khảo hướng dẫn về API Lớp dữ liệu để biết thêm thông tin chi tiết.