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

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ù Watch Face Push API có thể được dùng theo nhiều cách, nhưng bảng sau đây sẽ hướng dẫn bạn 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 này sẽ từ chối những mặt đồng hồ không tuân thủ quy ước này.

Nội dung gói

Hệ thống thực thi nghiêm ngặt nội dung APK. Về mặt kỹ thuật, bạn có thể tạo 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 chứa các tệp/đường dẫn sau:

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

Ngoài ra, tệp AndroidManifest.xml chỉ được chứa các thẻ sau:

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

Cuối cùng, gói 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, ứng dụng Marketplace chịu trách nhiệm xác minh rằng mỗi mặt đồng hồ Watch Face Push đều được định dạng đúng cách và hoạt động hiệu quả.

Watch Face Push sử dụng các quy trình kiểm tra xác thực sau để xác minh chất lượng của từng 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. Chỉ 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 phải được cập nhật khi bạn chạy quy trình xác thực.
  4. Bạn không cần xác thực lại một APK không có 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

  1. Lấy 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-alpha07.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

  1. Thêm kho lưu trữ Google và Jitpack. Bạn phải có cả hai để sử dụng thư viện trình xác thực.

    repositories {
        ...
        google()
        maven {
            url = uri("https://jitpack.io")
            content {
                includeGroup("com.github.xgouchet")
            }
        }
    }
    
  2. 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:validator-push:1.0.0-alpha07")
    
    // For use on Android
    implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha07")
    
    
  3. 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

Đặc biệt chú ý đến mặt đồng hồ Watch Face Push để giảm thiểu kích thước APK: 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à bạn sử dụng hay không.
    • Cắt hình ảnh một cách thích hợp để loại bỏ mọi nền xung quanh.
  • Giảm kích thước của 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

Giống như một APK thông thường, bạn phải ký tất cả mặt đồng hồ. Tạo một khoá khác với khoá mà bạn 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 4 thành phần chính của hệ thống:

  1. Bộ nhớ dựa trên đám mây: Trong ứng dụng Marketplace chính thức, bạn tạo và lưu trữ mặt đồng hồ trên Đám mây, sẵn sàng cho người dùng sử dụng. Mặt đồng hồ có các thuộc tính sau:
    1. Chúng được tạo sẵn dưới dạng các tệp APK Định dạng mặt đồng hồ thông thường.
    2. Mỗi APK chỉ chứa một mặt đồng hồ dựa trên Định dạng mặt đồng hồ.
    3. Chúng được xác thực bằng quy trình xác thực Watch Face Push và được lưu trữ bằng mã thông báo xác thực được liên kết.
    4. Ứng dụng điện thoại của bạn có thể truy xuất các tệp này 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. Điều này cho phép họ:
    1. Duyệt xem và tìm kiếm trong 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ể. Đâ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:
    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. 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 trên điện thoại và ứng dụng trên đồ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:
    1. 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 bị thiếu.
    2. Quản lý trạng thái: Bằng cách sử dụng DataClient hoặc MessageClient, bạn giữ cho điện thoại đồng bộ hoá với trạng thái của đồng hồ, chẳng hạn như đồng bộ hoá trạng thái của mặt đồng hồ đang hoạt động.
    3. Truyền APK: Sử dụng ChannelClient hoặc MessageClient để gửi APK từ điện thoại sang đồng hồ
    4. 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ồ.

Hãy tham khảo hướng dẫn về Data Layer API để biết thêm thông tin chi tiết.