Wear OS 6 เปิดตัว API ใหม่อย่าง Watch Face Push ซึ่งจะเปิดโอกาสให้ Use Case การเผยแพร่หน้าปัดขั้นสูงขึ้น
ระบุกรณีที่ควรใช้การพุชหน้าปัด
Watch Face Push คือ API ใน Wear OS ที่ช่วยให้ผู้พัฒนาแอปเพิ่ม อัปเดต หรือนำหน้าปัดออกได้โดยตรง โดยไม่จำเป็นต้องใช้สำหรับการพัฒนาหน้าปัดมาตรฐาน
หน้าปัดที่ใช้กับ Watch Face Push ต้องเขียนโดยใช้ Watch Face Format ซึ่งอาจรวมถึงหน้าปัดที่ออกแบบโดยใช้ Watch Face Studio หรือเครื่องมืออื่นๆ ที่สร้างหน้าปัดที่ใช้ Watch Face Format
แม้ว่า Watch Face Push API จะใช้ได้หลายวิธี แต่คุณควรใช้ตารางต่อไปนี้เป็นแนวทางสำหรับกรณีการใช้งานหลัก
การเล่าเรื่องผ่าน | วิธีแก้ปัญหาที่แนะนำ | ความซับซ้อน |
---|---|---|
ฉันต้องการสร้างหน้าปัดแต่ละหน้าและเผยแพร่ | ใช้ Watch Face Format โดยตรงหรือผ่านเครื่องมือ เช่น Watch Face Studio และเผยแพร่ใน Google Play | ต่ำ |
ฉันต้องการสร้างแอปโทรศัพท์ที่อนุญาตให้ผู้ใช้เลือกหน้าปัดจากคอลเล็กชันที่มีการดูแลจัดการ หรือออกแบบและปรับแต่งหน้าปัดเพื่อติดตั้งในนาฬิกา Wear OS โดยตรง | สร้างแอปสำหรับทั้งนาฬิกาและโทรศัพท์โดยใช้ Watch Face Push API ในนาฬิกา | สูง |
วัตถุประสงค์
Use Case หลักของ Watch Face Push API คือการสร้างแอปแพลตฟอร์มการจำหน่าย จากแอปนี้ ผู้ใช้สามารถเลือกหน้าปัดจากคอลเล็กชันที่มีการดูแลจัดการในโทรศัพท์ และควบคุมการติดตั้งหน้าปัดเหล่านี้ลงในนาฬิกาที่เชื่อมต่อได้โดยตรง
ข้อควรพิจารณา
ดูรายละเอียดเกี่ยวกับการสร้างหน้าปัดได้ที่คำแนะนำ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 รูปแบบหน้าปัดที่มีไฟล์ข้อมูลเมตาและรายการอื่นๆ ที่ไม่อันตราย ซึ่ง Google Play อาจยอมรับได้ แต่ไม่ผ่านการตรวจสอบ 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 ซึ่งแตกต่างจากหน้าปัดปกติที่เผยแพร่ผ่าน Google Play
Google Play ใช้การตรวจสอบความถูกต้องต่อไปนี้เพื่อยืนยันคุณภาพของหน้าปัดแต่ละหน้าที่ใช้ฟีเจอร์ Push หน้าปัด
- หน้าปัดทั้งหมดที่ติดตั้งหรืออัปเดตผ่าน Watch Face Push API ต้องผ่านเครื่องมือตรวจสอบ Watch Face Push
- คุณใช้เฉพาะเครื่องมือตรวจสอบอย่างเป็นทางการเพื่อสร้างโทเค็นการตรวจสอบเพื่อใช้กับ API ได้
- เครื่องมือตรวจสอบที่ใช้ต้องอัปเดตเป็นเวอร์ชันล่าสุด ณ เวลาที่เรียกใช้การตรวจสอบ
คุณไม่จำเป็นต้องตรวจสอบ APK ที่ไม่ได้เปลี่ยนแปลงอีกครั้ง โทเค็นจะไม่มีวันหมดอายุ แม้ว่าเครื่องมือตรวจสอบที่ใช้จะมีเวอร์ชันที่ใหม่กว่าก็ตาม
ในขณะเดียวกัน เราขอแนะนำให้คุณเรียกใช้การตรวจสอบอีกครั้งเป็นครั้งคราว เนื่องจากโปรแกรมตรวจสอบได้รับการอัปเดตเป็นระยะ
เรียกใช้โปรแกรมตรวจสอบ
หากต้องการเรียกใช้โปรแกรมตรวจสอบใน APK หน้าปัด ให้ทำตามขั้นตอนต่อไปนี้
- รับโปรแกรมตรวจสอบจากที่เก็บ Maven ของ Google
เรียกใช้เครื่องมือโดยทำดังนี้
java -jar validator-push-cli-1.0.0-alpha01.jar \ --apk_path=youwatchface.apk \ --package_name=<your marketplace package name>
หากดำเนินการสำเร็จ เอาต์พุตจะมีโทเค็นการตรวจสอบ ซึ่งคุณต้องระบุให้กับ Watch Face Push API เมื่อเพิ่มหรืออัปเดตหน้าปัด
หากเกิดข้อผิดพลาด เอาต์พุตจะมีรายละเอียดเกี่ยวกับการตรวจสอบที่ดำเนินการไม่สำเร็จ
ดูตัวอย่างการรวมเครื่องมือ CLI ของโปรแกรมตรวจสอบเข้ากับบิลด์ Gradle ได้ที่ตัวอย่างการพุชหน้าปัดใน GitHub
ขนาด APK
คุณควรใช้ความระมัดระวังเป็นพิเศษกับหน้าปัดแบบ Push เพื่อให้ APK มีขนาดไม่ใหญ่จนเกินไป เนื่องจาก APK หน้าปัดมีแนวโน้มที่จะส่งจากแอปโทรศัพท์ไปยังแอปนาฬิกาผ่านบลูทูธ ซึ่งอาจช้า
APK ที่มีขนาดใหญ่เกินไปอาจใช้เวลาในการส่งนานมาก ซึ่งทำให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ไม่ดีและแบตเตอรี่หมดเร็ว
- ใช้ไลบรารีที่เหมาะสม เช่น
pngquant
เพื่อรักษาขนาดไฟล์รูปภาพให้เหลือน้อยที่สุด- รวมข้อมูลนี้ไว้ในกระบวนการสร้างคอลเล็กชันหน้าปัด
- ตรวจสอบว่าขนาดของรูปภาพเหมาะสมกับขนาดที่จะนำไปใช้
- ตรวจสอบว่ารูปภาพถูกครอบตัดอย่างเหมาะสมเพื่อนำพื้นหลังรอบๆ ออก
- ลดขนาดไฟล์แบบอักษร
- เช่น หากใช้แบบอักษรหนึ่งๆ เพื่อแสดงเวลาเท่านั้นในรูปแบบ
HH:MM
คุณสามารถใช้เครื่องมืออย่างpyftsubset
เพื่อจำกัดไฟล์แบบอักษรให้มีเฉพาะแบบอักษรที่จำเป็นเท่านั้น ซึ่งจะช่วยลดขนาดไฟล์แบบอักษรและ APK ที่ได้อย่างมาก ดูรายละเอียดเกี่ยวกับการลดขนาดไฟล์แบบอักษรสำหรับกรณีอื่นๆ ได้ในบล็อกโพสต์นี้
- เช่น หากใช้แบบอักษรหนึ่งๆ เพื่อแสดงเวลาเท่านั้นในรูปแบบ
ดูคำแนะนำเพิ่มเติมเกี่ยวกับการทำให้ APK มีขนาดเล็กที่สุดได้จากคำแนะนำในการเพิ่มประสิทธิภาพการใช้หน่วยความจำ
การลงนาม APK
หน้าปัดทั้งหมดต้องได้รับการลงชื่อเนื่องจากเป็น APK ปกติ สร้างคีย์ที่แตกต่างจากที่ใช้กับแอปหลัก และใช้คีย์นั้นกับหน้าปัดทั้งหมด
สถาปัตยกรรม
พิจารณาองค์ประกอบหลัก 3 อย่างของระบบ
- พื้นที่เก็บข้อมูลระบบคลาวด์: ในแอป Marketplace เวอร์ชันมาตรฐาน ระบบจะสร้างและจัดเก็บหน้าปัดไว้ในระบบคลาวด์เพื่อให้ผู้ใช้ของคุณใช้งานได้ หน้าปัดมีดังนี้
- สร้างไว้ล่วงหน้าเป็น APK รูปแบบหน้าปัดนาฬิกาปกติ
- แต่ละรายการมีหน้าปัดที่ใช้ Watch Face Format เพียงหน้าเดียว
- ได้รับการตรวจสอบโดยใช้กระบวนการตรวจสอบ Push สำหรับหน้าปัด และเก็บไว้พร้อมกับโทเค็นการตรวจสอบที่เกี่ยวข้อง
- พร้อมให้แอปโทรศัพท์เรียกดูเมื่อจำเป็น
- แอปโทรศัพท์: แอปโทรศัพท์เป็นช่องทางหลักที่ผู้ใช้โต้ตอบกับระบบ ซึ่งช่วยให้ผู้ใช้ทำสิ่งต่อไปนี้ได้
- เรียกดูและค้นหาแคตตาล็อกหน้าปัด
- ติดตั้งหรือเปลี่ยนหน้าปัดในนาฬิกา
- แอปนาฬิกา: โดยทั่วไปแอปนาฬิกาอาจไม่มีอินเทอร์เฟซผู้ใช้ที่สำคัญ โดยหลักแล้ว API นี้จะทำหน้าที่เป็นบริดจ์ระหว่างแอปในโทรศัพท์กับ Push API ของหน้าปัด โดยมีฟังก์ชันการทำงานต่อไปนี้
- การใช้ Watch Face Push API เพื่อติดตั้ง/อัปเดต หรือแทนที่หน้าปัด
- การขอสิทธิ์ที่จําเป็นและการแจ้งให้ผู้ใช้ทราบ
- การจัดเตรียมหน้าปัดเริ่มต้น
- การจัดเก็บหน้าปัดไว้ในแคชเพียงเล็กน้อย
- การสื่อสารระหว่างโทรศัพท์กับนาฬิกา: การสื่อสารระหว่างโทรศัพท์กับแอปในนาฬิกาเป็นปัจจัยสําคัญต่อความสําเร็จของประสบการณ์โดยรวม ใช้ API ของเลเยอร์ข้อมูล Wear OS ซึ่งอนุญาตให้ดำเนินการต่อไปนี้
- การตรวจหาการติดตั้ง: เมื่อใช้ความสามารถและ
CapabilityClient
แอปในโทรศัพท์จะตรวจจับได้ว่าไม่มีแอปในนาฬิกา และในทางกลับกัน จากนั้นจึงเปิด Intent ไปยัง Play Store เพื่อติดตั้งรูปแบบอุปกรณ์ที่ขาดหายไป - การจัดการสถานะ: เมื่อใช้
DataClient
หรือMessageClient
โทรศัพท์จะซิงค์กับสถานะของนาฬิกาอยู่เสมอ เช่น ตรวจสอบว่าโทรศัพท์ทราบถึงหน้าปัดที่ตั้งไว้ - การส่ง APK: คุณส่ง APK จากโทรศัพท์ไปยังนาฬิกาได้โดยใช้
ChannelClient
หรือMessageClient
- การเรียกใช้จากระยะไกล: โทรศัพท์สามารถใช้
Messageclient
เพื่อสั่งให้นาฬิกาเรียกใช้ Watch Face Push API เช่น เพื่อติดตั้งหน้าปัด
- การตรวจหาการติดตั้ง: เมื่อใช้ความสามารถและ
ดูรายละเอียดเพิ่มเติมได้ที่คําแนะนําเกี่ยวกับ Data Layer API