Wear OS 6 giới thiệu một API mới là Watch Face Push, giúp tạo cơ hội cho các trường hợp sử dụng xuất bản mặt đồng hồ nâng cao hơn.
Xác định thời điểm sử dụng Watch Face Push
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á trực tiếp mặt đồng hồ. Bạn không cần đến nó để phát triển mặt đồng hồ tiêu chuẩn.
Mặt đồng hồ dùng với Watch Face Push phải được viết bằng Định dạng mặt đồng hồ. Điều này có thể bao gồm mặt đồng hồ được thiết kế bằng Watch Face Designer, 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ù bạn có thể sử dụng Watch Face Push API theo nhiều cách, nhưng bạn nên 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 từng mặt đồng hồ. | 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 Designer hoặc Watch Face Studio, rồi xuất bản các 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 chính tắc cho Watch Face Push API là để tạo một ứng dụng trang web thương mại. Từ ứ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 Watch Face Push là mặt đồng hồ Định dạng mặt đồng hồ thông thường.
Khi tạo mặt đồng hồ, hãy lưu ý những điểm sau.
Tên gói
Mặt đồng hồ được cài đặt bằng Watch Face Push 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 chú ý để đảm bảo Định dạng mặt đồng hồ tuân thủ các ràng buộc sau: Về mặt kỹ thuật, bạn có thể tạo ra các 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 Watch Face Push (xem bên dưới).
Mỗi APK mặt đồng hồ chỉ được phép có các tệp/đường dẫn sau:
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
Ngoài ra, bạn chỉ được phép dùng các thẻ sau trong tệp AndroidManifest.xml
:
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
Cuối cùng, gói này phải chỉ định một minSdk
có ít nhất 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 qua Google Play, Watch Face Push có trách nhiệm kiểm tra để đảm bảo rằng mỗi mặt đồng hồ đều được định dạng đúng cách và hoạt động hiệu quả trong ứng dụng Marketplace.
Google Play sử dụng các quy trình 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 Watch Face Push:
- 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.
- 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.
- Công cụ xác thực được sử dụng phải là phiên bản mới nhất tại thời điểm chạy quy trình xác thực.
Bạn không cần xác thực lại một APK chưa thay đổi. Mã thông báo không hết hạn, ngay cả khi phiên bản của công cụ xác thực được dùng đã lỗi thời.
Đồng thời, bạn nên chạy lại quy trình xác thực thỉnh thoảng vì trình xác thực được cập nhật định kỳ.
Chạy trình xác thực
Trình xác thực có 3 dạng:
- Một công cụ CLI
- Một thư viện để sử dụng với JVM
- Một thư viện để sử dụng trên Android
Cách sử dụng trình xác thực dòng lệnh
- Lấy trình xác thực từ kho lưu trữ Maven của Google.
Chạy công cụ như sau:
java -jar validator-push-cli-1.0.0-alpha06.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>
Nếu thành công, đầu ra sẽ bao gồm một mã thông báo xác thực mà bạn phải cung cấp cho Watch Face Push API khi thêm hoặc cập nhật một mặt đồng hồ.
Nếu xảy ra lỗi, đầu ra sẽ bao gồm thông tin chi tiết về việc kiểm tra cụ thể nào không thành công.
Cách sử dụng trình xác thực thư viện
Thêm kho lưu trữ Jitpack, cần thiết cho phần phụ thuộc trình xác thực:
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }
Thêm phần phụ thuộc trình xác thực vào dự án của bạn:
// For use on JVM implementation("com.google.android.wearable.watchface.validator:1.0.0-alpha06") // For use on Android implementation("com.google.android.wearable.watchface.validator-android:1.0.0-alpha06")
Chạy trình xác thực:
val validator = DwfValidatorFactory.create() val result = validator.validate(watchFaceFile, appPackageName) if (result.failures().isEmpty()) { val token = result.validationToken() println("Validation token: $token") // Validation success - continue with the token // ... } else { // There were failures, handle them accordingly - validation has failed. result.failures().forEach { failure -> println("FAILURE: ${failure.name()}: ${failure.failureMessage()}") // ... } }
Để xem ví dụ về cách sử dụng thư viện này, hãy xem mẫu GitHub. Xem thêm thư viện Portable Asset Compiler Kit (Pack). Thư viện này rất hữu ích khi tạo APK trên thiết bị để dùng với trình xác thực dựa trên Android.
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, quá trình này có thể diễn ra chậm.
Một APK quá lớn có thể mất nhiều thời gian để truyền, điều này vừa mang lại trải nghiệm người dùng kém vừa làm hao pin.
- Sử dụng các thư viện thích hợp như
pngquant
để giảm kích thước tệp hình ảnh xuống mức tối thiểu- Đưa thông tin này vào quy trình tạo bộ sưu tập mặt đồng hồ
- Kiểm tra xem kích thước của hình ảnh có phù hợp với tỷ lệ mà hình ảnh sẽ được sử dụng hay không.
- Đảm bảo hình ảnh được cắt đúng cách để loại bỏ mọi phông nền xung quanh.
- Giảm kích thước của tệp phông chữ
- Ví dụ: nếu chỉ sử dụng một phông chữ cụ thể để hiện thời gian ở định dạng
HH:MM
, bạn có thể dùng một công cụ nhưpyftsubset
để giới hạn tệp phông chữ chỉ chứa những glyph cần thiết. Điều này có thể giảm đáng kể kích thước của tệp phông chữ và APK kết quả. Xem bài đăng này trên blog để biết thông tin chi tiết về cách giảm thiểu kích thước tệp phông chữ cho các trường hợp khác.
- Ví dụ: nếu chỉ sử dụng một phông chữ cụ thể để hiện thời gian ở định dạng
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
Giống như 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á được dùng cho ứng dụng chính và 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:
- Bộ nhớ dựa trên đám mây: Trong ứng dụng Marketplace chính tắc, mặt đồng hồ của bạn đượ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à:
- Được dựng sẵn dưới dạng APK Định dạng mặt đồng hồ thông thường
- Mỗi tệp chỉ chứa một mặt đồng hồ dựa trên Định dạng mặt đồng hồ
- Đã đượ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ã thông báo xác thực được liên kết.
- Sẵn sàng được ứng dụng điện thoại truy xuất khi cần.
- Ứ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. Điều này cho phép họ:
- Duyệt xem và tìm kiếm trong danh mục mặt đồng hồ
- Cài đặt hoặc thay thế mặt đồng hồ trên đồng hồ
- Ứng dụng đồng hồ: Ứng dụng đồng hồ thường không có giao diện người dùng đáng kể. Đây chủ yếu là cầu nối giữa ứng dụng điện thoại và Watch Face Push API, với các chức năng sau:
- Sử dụng Watch Face Push API để cài đặt/cập nhật hoặc thay thế mặt đồng hồ
- Yêu cầu cấp các quyền cần thiết và nhắc người dùng
- Cung cấp mặt đồng hồ mặc định
- Cung cấp bộ nhớ đệm tối thiểu cho mặt đồng hồ
- Thông tin liên lạc giữa điện thoại và đồng hồ: Thông tin liên lạc giữa ứng dụng điện thoại và ứng dụng đồng hồ đóng vai trò quan trọng đối với thành công của trải nghiệm tổng thể. Sử dụng API Lớp dữ liệu Wear OS, cho phép:
- Phát hiện lượt cài đặt: Bằng cách sử dụng Capabilities và
CapabilityClient
, ứng dụng điện thoại có thể phát hiện sự vắng mặt của ứng dụng đồng hồ và ngược lại. Sau đó, bạn có thể khởi chạy một ý định đến Cửa hàng Play để cài đặt hệ số hình dạng còn thiếu. - Quản lý trạng thái: Bằng cách sử dụng
DataClient
hoặcMessageClient
, điện thoại có thể duy trì trạng thái đồng bộ hoá với đồng hồ, ví dụ: đảm bảo điện thoại biết mặt đồng hồ nào được đặt. - Truyền APK: Bằng cách sử dụng
ChannelClient
hoặcMessageClient
, bạn có thể gửi APK từ điện thoại đến đồng hồ - 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 (API truyền dữ liệu mặt đồng hồ), chẳng hạn như để cài đặt một mặt đồng hồ.
- Phát hiện lượt cài đặt: Bằng cách sử dụng Capabilities và
Hãy tham khảo hướng dẫn về Data Layer API để biết thêm thông tin chi tiết.