คำแนะนำนี้ประกอบด้วยขั้นตอนเกี่ยวกับเครื่องมือที่จำเป็นในการกำหนดค่าหน้าปัด โดยใช้ Watch Face Format คำแนะนำบางส่วนเกี่ยวกับโครงสร้างของโครงการ คำแนะนำทีละขั้นตอนในการใช้เครื่องมือเพื่อสร้างโครงสร้างดังกล่าว
สิ่งที่ต้องมีก่อน
วิธีเตรียมสภาพแวดล้อมในการพัฒนาสำหรับการใช้ Watch Face Format ทำตามขั้นตอนการตั้งค่าต่อไปนี้ให้เสร็จสิ้น
ติดตั้ง SDK สำหรับ Android 14 (API ระดับ 34) ขึ้นไป หากหน้าปัดของคุณ ไม่ได้อาศัยฟีเจอร์หรือลักษณะการทำงานเฉพาะของเวอร์ชัน 2 คุณสามารถ ให้ติดตั้ง SDK สำหรับ Android 13 (API ระดับ 33) แทน
SDK มีเครื่องมืออื่นๆ ที่จำเป็น รวมถึง
aapt2
และandroid.jar
หรือติดตั้ง Android Studio ซึ่งสามารถจัดเตรียมรายการเหล่านี้ และเครื่องมือการประมาณที่กำหนดได้เอง
โครงสร้างของโปรเจ็กต์
เมื่อคุณสร้างหน้าปัดที่กำหนดเองซึ่งใช้ Watch Face Format อุปกรณ์ Android App Bundle ที่มีไฟล์หน้าปัดที่กำหนดเองต้องแยกจากกันโดยสมบูรณ์ จาก Android App Bundle ที่มีตรรกะของแอป Wear OS บางแอป Store รวมถึง Google Play ป้องกันไม่ให้คุณอัปโหลด Android App Bundle ที่มีทั้งตรรกะของ Wear OS และหน้าปัดที่กำหนดเอง
สร้างแพ็กเกจหน้าปัด
หากต้องการสร้าง Android App Bundle ที่มีไฟล์หน้าปัด ให้ทำตามขั้นตอนต่อไปนี้ ขั้นตอนที่แสดงในส่วนต่อไปนี้
ประกาศการใช้ Watch Face Format
ในไฟล์ Manifest ของแอปใหม่ (AndroidManifest.xml
) ให้เพิ่มแอปพลิเคชัน
ที่ระบุการใช้งาน Watch Face Format ของคุณ ยกเว้นกรณีที่คุณต้องการ
จำกัดการเข้าถึงหน้าปัดสำหรับอุปกรณ์ที่ใช้ Wear OS 5 ขึ้นไป
สร้าง APK หน้าปัดแบบต่างๆ 2 รายการ โดยรายการหนึ่งรองรับเวอร์ชัน 2 และอีกรายการ
รองรับเวอร์ชัน 1 ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่าเวอร์ชันของแอป
<?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest ...> <!-- Use SDK version 34 for version 2 of WFF, and SDK version 33 for version 1 of WFF --> <uses-sdk android:minSdkVersion="34" android:targetSdkVersion="34" /> <!-- WFF is a resource-only format, so the hasCode attribute should be set to false to reflect this. --> <application android:label="@string/watch_face_name" android:hasCode="false" ...> <property android:name="com.google.wear.watchface.format.version" android:value="2" /> </application> </manifest>
ประกาศข้อมูลเมตาของหน้าปัด
ในไดเรกทอรีทรัพยากร res/xml
ของแอป ให้สร้างไฟล์ใหม่ชื่อ
watch_face_info.xml
นี่คือที่ที่คุณกำหนดข้อมูลเมตาของหน้าปัด:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
<!-- Only "Preview" is required. -->
<Preview value="@drawable/watch_face_preview" />
<Category value="CATEGORY_EMPTY" />
<AvailableInRetail value="true" />
<MultipleInstancesAllowed value="true" />
<Editable value="true" />
</WatchFaceInfo>
ช่องในไฟล์นี้แสดงรายละเอียดต่อไปนี้
Preview
- อ้างอิงโฆษณาที่ถอนออกได้ที่มีรูปภาพตัวอย่างของหน้าปัด
Category
กำหนดหมวดหมู่ของหน้าปัด ต้องเป็นสตริงหรือการอ้างอิงไปยัง เช่น
@string/ref_name
ผู้ผลิตอุปกรณ์แต่ละรายจะกำหนดได้เอง ชุดของหมวดหมู่หน้าปัดค่าเริ่มต้น:
empty_category_meta
ซึ่งจะจัดกลุ่มหน้าปัดนี้เข้าด้วยกัน กับ "หมวดหมู่ว่าง" อื่นๆ หน้าปัดที่ด้านล่างของเครื่องมือเลือกหน้าปัดAvailableInRetail
หน้าปัดพร้อมใช้งานในโหมดการสาธิตสำหรับร้านค้าปลีกของอุปกรณ์หรือไม่ ต้องเป็นค่าบูลีนหรือการอ้างอิงค่าบูลีน เช่น
@bool/watch_face_available_in_retail
ค่าเริ่มต้น:
false
MultipleInstancesAllowed
หน้าปัดมีรายการโปรดได้หลายรายการหรือไม่ ต้องเป็นค่าบูลีน หรือการอ้างอิงค่าบูลีน เช่น
@bool/watch_face_multiple_instances_allowed
ค่าเริ่มต้น:
false
Editable
หน้าปัดแก้ไขได้หรือไม่ ซึ่งหมายความว่าหน้าปัดมี หรือข้อมูลแทรกที่ไม่คงที่อย่างน้อย 1 รายการ ส่วนนี้ใช้เพื่อแสดงหรือ ซ่อนปุ่มแก้ไขสำหรับหน้าปัดในรายการโปรด
ค่าเริ่มต้น: false
ประกาศชื่อหน้าปัด
ในไฟล์ Manifest ของแอป (AndroidManifest.xml
) ให้ตั้งค่า android:label
เป็นชื่อหน้าปัดของคุณ ดังนี้
<application android:label="@string/watch_face_name" >
ประกาศการรองรับรูปร่างของหน้าปัด (ไม่บังคับ)
ขั้นตอนนี้จะจำเป็นต่อในกรณีที่คุณต้องการรองรับลักษณะการทำงานที่แตกต่างกันสำหรับ หน้าปัดขนาดต่างๆ กัน คุณสามารถข้ามขั้นตอนนี้ได้หากคุณ เพื่อให้หน้าปัดปรับขนาด กับขนาดของนาฬิกา
ประกาศชุดหน้าปัดในไดเรกทอรีทรัพยากร res/xml
ของแอป
รูปร่างที่คุณสนับสนุนในwatch_face_shapes.xml
:
<WatchFaces>
<!-- The default shape is "CIRCLE". -->
<WatchFace shape="CIRCLE" width="300" height="300"
file="@raw/watchface"/>
<WatchFace shape="CIRCLE" width="450" height="450"
file="@raw/watchface_large_circle"/>
<WatchFace shape="RECTANGLE" width="380" height="400"
file="@raw/watchface_rectangle"/>
</WatchFaces>
ประกาศรายละเอียดหน้าปัด
ในไดเรกทอรีทรัพยากร res/raw
ของแอป ให้สร้างไฟล์ที่สอดคล้องกับ
ใช้ค่าแอตทริบิวต์ file
เมื่อคุณประกาศการรองรับหน้าปัด
รูปร่าง
ซึ่งเป็นที่ที่คุณกำหนดลักษณะและการทำงานของหน้าปัดสำหรับ
รูปร่างของหน้าปัดแต่ละแบบ ถ้าคุณไม่ได้กำหนดไฟล์รูปทรง คุณต้องใช้เพียง
เพื่อสร้างไฟล์ 1 รายการ watchface.xml
หากใช้ตัวอย่างจากหน้านี้ ไฟล์ XML แบบ RAW จะมีรูปแบบดังนี้
res/raw/watchface.xml
res/raw/watchface_large_circle.xml
res/raw/watchface_rectangle.xml
องค์ประกอบรูทจะเป็น WatchFace
เสมอ
<WatchFace width="450" height="450" shape="CIRCLE">
<!-- Remainder of your Watch Face Format definition here. -->
<!-- If this file defines a watch face for a circular device shape, place
resources used in this file in the "/res/drawable-nodpi" directory. -->
<!-- If this file defines a watch face for a rectangular or other
non-circular shape, place resources ued in this file in the
"/res/drawable-notround-nodpi" directory. -->
</WatchFace>
ระบุผู้เผยแพร่หน้าปัด (ไม่บังคับ)
หรือในไฟล์ Manifest ของแอป ให้ประกาศสตริงที่กำหนดเองที่คุณ สามารถใช้เพื่อระบุผู้เผยแพร่ของหน้าปัด หรือชื่อเครื่องมือและ เวอร์ชันที่คุณใช้อยู่
<application ...> ... <property android:name="com.google.wear.watchface.format.publisher" android:value="{toolName}-{toolVersion}" /> </application>
ตรวจสอบความถูกต้องและประสิทธิภาพของหน้าปัด
ระหว่างการพัฒนาและก่อนการอัปโหลดไปยัง Google Play ให้ใช้โปรแกรมตรวจสอบ เครื่องมือเพื่อตรวจสอบว่าหน้าปัดไม่มีข้อผิดพลาด และ เป็นไปตามคำแนะนำในการใช้หน่วยความจำ
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพการใช้งานหน่วยความจำและการตรวจสอบการใช้งานหน่วยความจำ ในการเตรียมพร้อมสำหรับการเผยแพร่
- ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้เครื่องมือตรวจสอบ XML เป็นส่วนหนึ่งของการพัฒนา
สร้าง App Bundle หน้าปัด
หากต้องการสร้าง Android App Bundle ที่มีหน้าปัด ให้ใช้ ระบบบิลด์ Gradle ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างแอปโดยใช้ Gradle
ซึ่งจะเห็นได้จากตัวอย่าง GitHub
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- AAPT2
- ข้อมูลเบื้องต้นเกี่ยวกับ Jetpack Compose
- เริ่มต้นใช้งาน CameraX