การพุชหน้าปัด

Wear OS 6 ขอแนะนำ API ใหม่ที่ชื่อว่า Watch Face Push ซึ่งจะสร้างโอกาสในการใช้งานการเผยแพร่หน้าปัดที่ซับซ้อนมากขึ้น

ระบุว่าเมื่อใดควรใช้ Watch Face Push

Watch Face Push เป็น API ใน Wear OS ที่ช่วยให้นักพัฒนาแอปสามารถเพิ่ม อัปเดต หรือนำหน้าปัดออกได้โดยตรง จึงไม่จำเป็นสำหรับการพัฒนาหน้าปัดมาตรฐาน

หน้าปัดที่ใช้กับ Watch Face Push ต้องเขียนโดยใช้ Watch Face Format ซึ่งอาจรวมถึงหน้าปัดที่ออกแบบโดยใช้ Watch Face Designer, Watch Face Studio หรือเครื่องมืออื่นๆ ที่สร้างหน้าปัดซึ่งใช้ Watch Face Format

แม้ว่า Watch Face Push API จะสามารถใช้ได้หลายวิธี แต่ตารางต่อไปนี้จะแนะนำกรณีการใช้งานหลักๆ

กรณีการใช้งาน วิธีแก้ปัญหาที่แนะนำ ความซับซ้อน
ฉันต้องการสร้างหน้าปัดแต่ละรายการและเผยแพร่ ใช้ Watch Face Format ไม่ว่าจะใช้โดยตรงหรือผ่านเครื่องมือ เช่น Watch Face Designer หรือ Watch Face Studio แล้วเผยแพร่ใน Google Play ต่ำ
ฉันต้องการสร้างแอปโทรศัพท์ที่ช่วยให้ผู้ใช้เลือกหน้าปัดจากคอลเล็กชันที่คัดสรรมา หรือออกแบบและปรับแต่งหน้าปัดเพื่อติดตั้งในนาฬิกา Wear OS ได้โดยตรง สร้างแอปสำหรับทั้งนาฬิกาและโทรศัพท์โดยใช้ Watch Face Push API ในนาฬิกา สูง

วัตถุประสงค์

กรณีการใช้งานที่เหมาะสมที่สุดสำหรับ Watch Face Push API คือการสร้างแอป Marketplace ซึ่งผู้ใช้สามารถเลือกหน้าปัดจากคอลเล็กชันที่คัดสรรมาในโทรศัพท์ และควบคุมการติดตั้งหน้าปัดเหล่านี้ลงในนาฬิกาที่เชื่อมต่อได้โดยตรงจากแอปนี้

ข้อควรพิจารณา

ดูรายละเอียดเกี่ยวกับการสร้างหน้าปัดได้ที่คำแนะนำของ Watch Face Format: หน้าปัดที่ติดตั้งใช้งานโดยใช้ Watch Face Push เป็นหน้าปัด Watch Face Format ปกติ

เมื่อสร้างหน้าปัด โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้

ชื่อแพ็กเกจ

หน้าปัดที่ติดตั้งโดยใช้ Watch Face Push ต้องเป็นไปตามรูปแบบต่อไปนี้

<app name>.watchfacepush.<watchface name>

... โดยที่ <app name> คือชื่อแพ็กเกจของแอปที่เรียก Watch Face Push API

ตัวอย่างเช่น สำหรับแอปที่มีชื่อแพ็กเกจ com.example.mymarketplace ชื่อแพ็กเกจหน้าปัดต่อไปนี้ถูกต้อง

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

API จะปฏิเสธหน้าปัดที่ไม่เป็นไปตามรูปแบบนี้

แพ็กเกจเนื้อหา

ระบบจะบังคับใช้เนื้อหา APK อย่างเข้มงวด ในทางเทคนิคแล้ว คุณสามารถสร้าง APK ของ Watch Face Format ที่มีไฟล์ข้อมูลเมตาและอาร์ติแฟกต์อื่นๆ ที่ไม่เป็นอันตราย ซึ่ง Google Play อาจยอมรับได้ แต่ไม่ผ่านการตรวจสอบความถูกต้องของ Watch Face Push (ดูด้านล่าง)

APK หน้าปัดแต่ละรายการต้องมีเฉพาะไฟล์/เส้นทางต่อไปนี้

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

นอกจากนี้ ไฟล์ AndroidManifest.xml ต้องมีเฉพาะแท็กต่อไปนี้

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

สุดท้าย แพ็กเกจต้องระบุ minSdk เป็น 33 ขึ้นไป และ <application> แท็กต้องระบุแอตทริบิวต์ android:hasCode="false"

การตรวจสอบ

แอปใน Marketplace มีหน้าที่รับผิดชอบในการตรวจสอบว่าหน้าปัด Watch Face Push แต่ละรายการมีรูปแบบที่ถูกต้องและทำงานได้ดี ซึ่งแตกต่างจากหน้าปัดทั่วไปที่เผยแพร่ผ่าน Google Play

Watch Face Push ใช้การตรวจสอบความถูกต้องต่อไปนี้เพื่อยืนยันคุณภาพของหน้าปัดแต่ละรายการ

  1. หน้าปัดทั้งหมดที่ติดตั้งหรืออัปเดตผ่าน Watch Face Push API ต้อง ผ่านเครื่องมือตรวจสอบความถูกต้องของ Watch Face Push
  2. ใช้เฉพาะเครื่องมือตรวจสอบความถูกต้องอย่างเป็นทางการเพื่อสร้าง โทเค็นการตรวจสอบความถูกต้อง สำหรับ ใช้กับ API
  3. เครื่องมือตรวจสอบความถูกต้องต้องเป็นเวอร์ชันล่าสุดเมื่อคุณเรียกใช้การตรวจสอบความถูกต้อง
  4. คุณไม่จำเป็นต้องตรวจสอบความถูกต้องของ APK ที่ไม่มีการเปลี่ยนแปลงอีกครั้ง โทเค็นจะไม่มีวันหมดอายุ แม้ว่าเวอร์ชันของเครื่องมือตรวจสอบความถูกต้องที่ใช้จะถูกแทนที่แล้วก็ตาม

    อย่างไรก็ตาม เราขอแนะนำให้คุณเรียกใช้การตรวจสอบความถูกต้องอีกครั้งเป็นครั้งคราว เนื่องจากเราจะอัปเดตโปรแกรมตรวจสอบความถูกต้องเป็นระยะๆ

เรียกใช้เครื่องมือตรวจสอบความถูกต้อง

เครื่องมือตรวจสอบความถูกต้องมี 3 รูปแบบ ได้แก่

  • เครื่องมือ CLI
  • ไลบรารีสำหรับใช้กับ JVM
  • ไลบรารีสำหรับใช้ใน Android

การใช้เครื่องมือตรวจสอบความถูกต้องผ่านบรรทัดคำสั่ง

  1. รับโปรแกรมตรวจสอบจากที่เก็บ Maven ของ Google
  2. เรียกใช้เครื่องมือดังนี้

    java -jar validator-push-cli-1.0.0-alpha10.jar \
        --apk_path=<your watch face>.apk \
        --package_name=<your marketplace package name>
    

    หากสำเร็จ เอาต์พุตจะมี โทเค็นสำหรับตรวจสอบความถูกต้อง ซึ่งคุณต้องระบุให้กับ Watch Face Push API เมื่อเพิ่มหรืออัปเดตหน้าปัด

    หากเกิดข้อผิดพลาด เอาต์พุตจะมีรายละเอียดเกี่ยวกับการตรวจสอบรายการใดที่ล้มเหลว

การใช้โปรแกรมตรวจสอบความถูกต้องผ่านไลบรารี

  1. รวมที่เก็บ Google และ Jitpack คุณต้องรวมที่เก็บทั้ง 2 รายการนี้เพื่อใช้ไลบรารีโปรแกรมตรวจสอบ

    repositories {
        ...
        google()
        maven {
            url = uri("https://jitpack.io")
            content {
                includeGroup("com.github.xgouchet")
            }
        }
    }
    
  2. รวมทรัพยากร Dependency ของโปรแกรมตรวจสอบในโปรเจ็กต์

    // For use on JVM
    implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha10")
    
    // For use on Android
    implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha10")
    
    
  3. เรียกใช้เครื่องมือตรวจสอบความถูกต้อง

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()}") // ... } }

ดูตัวอย่างการใช้ไลบรารีนี้ได้ในตัวอย่าง GitHub นอกจากนี้ โปรดดูไลบรารี Portable Asset Compiler Kit (Pack) ซึ่งมีประโยชน์สำหรับการสร้าง APK ในอุปกรณ์เพื่อใช้กับเครื่องมือตรวจสอบความถูกต้องที่อิงตาม Android

ขนาด APK

โปรดระมัดระวังเป็นพิเศษเกี่ยวกับหน้าปัด Watch Face Push เพื่อลดขนาด APK ให้น้อยที่สุด เนื่องจากแอปโทรศัพท์มีแนวโน้มที่จะส่ง APK หน้าปัดไปยังแอปสมาร์ทวอทช์ผ่านบลูทูธ ซึ่งอาจใช้เวลานาน

APK ที่มีขนาดใหญ่เกินไปอาจใช้เวลาส่งนานมาก ซึ่งส่งผลให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ไม่ดีและแบตเตอรี่หมดเร็ว

  • ใช้ไลบรารีที่เหมาะสม เช่น pngquant เพื่อให้ ขนาดไฟล์รูปภาพมีขนาดเล็กที่สุด
    • รวมไลบรารีนี้ไว้ในกระบวนการบิลด์คอลเล็กชันหน้าปัด
    • ตรวจสอบว่าขนาดของรูปภาพเหมาะสมกับขนาดที่คุณใช้
    • ครอบตัดรูปภาพอย่างเหมาะสมเพื่อนำพื้นหลังโดยรอบออก
  • ลดขนาดไฟล์แบบอักษร

ดูคำแนะนำเพิ่มเติมเกี่ยวกับการลดขนาด APK ให้น้อยที่สุดได้ที่คำแนะนำในการเพิ่มประสิทธิภาพการใช้งานหน่วยความจำ

การลงชื่อเข้าใช้ APK

คุณต้องลงชื่อเข้าใช้หน้าปัดทั้งหมดเหมือนกับ APK ทั่วไป สร้างคีย์อื่นจากคีย์ที่คุณใช้กับแอปหลัก แล้วใช้คีย์อื่นสำหรับหน้าปัดทั้งหมด

สถาปัตยกรรม

พิจารณาองค์ประกอบหลัก 4 อย่างของระบบ

  1. พื้นที่เก็บข้อมูลบนระบบคลาวด์: ในแอปใน Marketplace คุณจะสร้างและจัดเก็บหน้าปัดไว้ในระบบคลาวด์เพื่อให้ผู้ใช้ใช้งานได้ หน้าปัดมีคุณสมบัติดังนี้
    1. สร้างไว้ล่วงหน้าเป็น APK ของ Watch Face Format ปกติ
    2. APK แต่ละรายการมีหน้าปัดที่อิงตาม Watch Face Format เพียงรายการเดียว
    3. ผ่านการตรวจสอบความถูกต้องด้วยกระบวนการตรวจสอบความถูกต้องของ Watch Face Push และจัดเก็บไว้พร้อมกับโทเค็นสำหรับตรวจสอบความถูกต้องที่เกี่ยวข้อง
    4. แอปโทรศัพท์สามารถดึงข้อมูลได้ตามต้องการ
  2. แอปโทรศัพท์: แอปโทรศัพท์เป็นวิธีหลักที่ผู้ใช้โต้ตอบ กับระบบของคุณ ซึ่งช่วยให้ผู้ใช้ทำสิ่งต่อไปนี้ได้
    1. เลือกดูและค้นหาแคตตาล็อกหน้าปัด
    2. ติดตั้งหรือแทนที่หน้าปัดในนาฬิกา
  3. แอปสมาร์ทวอทช์: โดยปกติแล้วแอปสมาร์ทวอทช์อาจไม่มีอินเทอร์เฟซผู้ใช้ที่สำคัญ แต่เป็นตัวกลางหลักระหว่างแอปโทรศัพท์กับ Watch Face Push API ที่มีฟังก์ชันการทำงานต่อไปนี้
    1. ใช้ Watch Face Push API เพื่อติดตั้ง/อัปเดตหรือแทนที่หน้าปัด
    2. ขอสิทธิ์ที่จำเป็นและแจ้งให้ผู้ใช้ทราบ
    3. แสดงหน้าปัดเริ่มต้น
    4. แสดงแคชหน้าปัดขนาดเล็ก
  4. การสื่อสารระหว่างโทรศัพท์กับนาฬิกา: การสื่อสารระหว่างแอปโทรศัพท์กับแอปสมาร์ทวอทช์มีความสำคัญอย่างยิ่งต่อความสำเร็จของประสบการณ์การใช้งานโดยรวม ใช้ Wear OS Data Layer API ซึ่งช่วยให้คุณทำสิ่งต่อไปนี้ได้
    1. การตรวจหาการติดตั้ง: แอปโทรศัพท์สามารถตรวจหา การไม่มีแอปสมาร์ทวอทช์และในทางกลับกันได้โดยใช้ความสามารถและ CapabilityClient จากนั้นคุณสามารถเปิดใช้ Intent ไปยัง Play Store เพื่อติดตั้งปัจจัยรูปแบบที่ขาดหายไป
    2. การจัดการสถานะ: ใช้ DataClient หรือ MessageClient เพื่อซิงค์โทรศัพท์กับ สถานะของนาฬิกา เช่น การซิงค์สถานะของหน้าปัดที่ใช้งานอยู่
    3. การส่ง APK: ส่ง APK จากโทรศัพท์ไปยังนาฬิกาโดยใช้ ChannelClient หรือ MessageClient
    4. การเรียกใช้ระยะไกล: โทรศัพท์สามารถสั่งให้นาฬิกาเรียก Watch Face Push API ได้ เช่น เพื่อ ติดตั้งหน้าปัด โดยใช้ Messageclient

ดูรายละเอียดเพิ่มเติมได้ที่คำแนะนำ Data Layer API