Wear OS จะปรับปรุงอายุการใช้งานแบตเตอรี่ด้วยการติดตามการใช้หน่วยความจำ หน้าปัดที่ใช้รูปแบบหน้าปัดมีขีดจำกัดหน่วยความจำตามหลักเกณฑ์ด้านคุณภาพของแอป Wear OS ดังนี้
- โหมดแอมเบียนท์: การใช้หน่วยความจำสูงสุด 10 MB
- โหมดอินเทอร์แอกทีฟ: การใช้หน่วยความจําสูงสุด 100 MB
การคํานวณการใช้งานหน่วยความจํา
ระบบจะดำเนินการต่อไปนี้เพื่อคํานวณการใช้หน่วยความจําสําหรับแบบอักษรรูปภาพหรือบิตแมปในหน้าปัดโดยใช้รูปแบบหน้าปัด
- decompress รูปภาพหรือแบบอักษร
- ตรวจสอบว่าการเพิ่มประสิทธิภาพต่อไปนี้มีผลหรือไม่
- การปรับขนาดให้พอดีกับหน้าจอมากขึ้น
- ครอบตัดพิกเซลที่โปร่งใส
- การสุ่มตัวอย่างลงเป็น RGB565 โดยไม่มีการสูญเสียความเที่ยงตรง
ระบบจะคำนวณขนาดตามกล่องขอบเขตที่ได้ดังนี้
- สำหรับรูปภาพและแบบอักษรที่ใช้ RGBA8888: 4 x กว้าง x สูง
- สำหรับรูปภาพและแบบอักษรที่ใช้ RGB565: 2 x ความกว้าง x ความสูง
- สำหรับรูปภาพและแบบอักษรที่ใช้การกำหนดค่าบิตแมป ALPHA_8: ความกว้าง x ความสูง
โหมดอินเทอร์แอกทีฟ
ระบบจะคํานวณการใช้หน่วยความจําสําหรับโหมดอินเทอร์แอกทีฟโดยรวมค่าต่อไปนี้
- ขนาดของแบบอักษรเวกเตอร์ที่ไม่ได้ประมวลผล
- การใช้งานแบบอักษรเริ่มต้นของระบบโดยประมาณ
- ขนาดรวมของรูปภาพและแบบอักษรบิตแมปหลังจากครอบตัด ปรับขนาด และจัดรูปแบบใหม่
การกำหนดค่า
สำหรับหน้าปัดที่มีการกำหนดค่า ระบบจะพยายามคำนวณขนาดรวมของทรัพยากรหน้าปัดในการกำหนดค่าต่างๆ หากจํานวนชุดค่าผสมมีจํานวนมาก ระบบอาจประเมินจํานวนทรัพยากรที่ใช้พร้อมกันสูงเกินไป
โหมดแอมเบียนท์และเลเยอร์
ระบบจะถือว่าโหมดแอมเบียนท์ใช้เลเยอร์แบบเต็มหน้าจอได้สูงสุด 3 เลเยอร์ โดย 2 เลเยอร์เป็นแบบคงที่ เลเยอร์ดังกล่าว ได้แก่
- พื้นหลังของหน้าปัด ระบบจะถือว่าภาพนี้เป็นรูปภาพเดียว ไม่ว่าพื้นหลังจะมีรูปภาพกี่รูปก็ตาม
- ชิ้นส่วนที่เคลื่อนไหว เช่น มือ จอแสดงผลดิจิทัล หรือองค์ประกอบแบบไดนามิก
- องค์ประกอบที่เหลือจากไฟล์ XML ต้นทาง
แบบอักษรบิตแมปขนาดใหญ่มักใช้หน่วยความจำมากที่สุดในโหมดแอมเบียนท์
วิธีลดการใช้งานหน่วยความจํา
ใช้การเพิ่มประสิทธิภาพต่อไปนี้เพื่อลดการใช้หน่วยความจำ
ครอบตัดและปรับขนาดแบบอักษรบิตแมป
ครอบตัดรูปภาพและวัตถุ BitmapFont
ให้พอดีกับขนาดการแสดงผล
Wear OS จะวาดหน้าปัดโดยที่ไม่ต้องบีบอัดรูปภาพทั้งหมด รูปภาพขนาดเต็มเกือบว่างเปล่าอาจใช้พื้นที่ในดิสก์ 3 KB แต่ใช้พื้นที่ 750 KB ขึ้นไปบนหน้าจอขนาด 450 พิกเซล x 450 พิกเซล
ใช้ความสูงของแบบอักษรบิตแมปที่สอดคล้องกัน
เมื่อใช้ BitmapFont
ให้ตรวจสอบว่ารูปภาพทั้งหมดของตัวละครมีระดับความสูงเท่ากัน ในทำนองเดียวกัน โปรดตรวจสอบว่ารูปภาพทั้งหมดของคำมีความสูงเท่ากัน
ใช้ขนาดเฟรมที่สอดคล้องกันในภาพเคลื่อนไหว
อัปเดตองค์ประกอบในรูปภาพและคงตำแหน่งกล่องขอบเขตไว้เหมือนเดิมแทนที่จะย้ายรูปภาพไปทั่วหน้าปัด เช่น หากต้องการทำให้วงกลมบนหน้าปัดเคลื่อนไหว ให้เปลี่ยนสีแทนที่จะหมุน
เทคนิคนี้จะลดขนาดของกล่องขอบเขตที่คำนวณแล้วของภาพเคลื่อนไหว
กรองรูปภาพที่ซ้ำกันออก
หากต้องการแสดงรูปภาพหลายครั้ง ให้ใส่ทรัพยากรรูปภาพเพียงรายการเดียวและอ้างอิงรูปภาพนั้นหลายครั้ง
แสดงความคืบหน้าโดยใช้ส่วนโค้ง
หากต้องการจำลองแถบความคืบหน้าที่เสร็จสิ้นหลังจากผ่านไป 1 นาทีหรือ 1 ชั่วโมง อย่าใช้รูปภาพ 60 ภาพ ใช้ออบเจ็กต์ Arc
ที่มีนิพจน์ที่ควบคุมความยาว ดังที่แสดงที่นี่
<PartDraw angle="0" width="400" height="400" name="ProgressBar" pivotX="0.5" pivotY="0.5 x="40" y="40"> <Arc centerX="200" centerY="200" width="400" height="400" startAngle="0" endAngle="360"> <!-- Completes a "progress loop" every minute. --> <Transform target="endAngle" value="0 + (clamp([SECOND], 0, 60) - 0) * 6" /> <Stroke cap="ROUND" color="#123456" thickness="10" /> </Arc> </PartDraw>
หากต้องการแสดงเส้นที่ไม่ต่อเนื่อง เช่น เพื่อให้ได้รูปลักษณ์แบบนาฬิกาดิจิทัลย้อนยุค ให้ใช้พร็อพเพอร์ตี้ขีดกลางสำหรับออบเจ็กต์ Stroke
หรือการวางซ้อนรูปภาพมาสก์แบบโปร่งแสง
วางเข็มนาฬิกาและข้อมูลแทรกไว้ที่ท้ายไฟล์ต้นฉบับ
ระบบจะวาดโหนด XML ตามลําดับที่แสดงใน XML ต้นทาง การวางเข็มนาฬิกาและข้อมูลแทรกไว้ที่ท้ายที่สุดจะช่วยให้ระบบตัดเลเยอร์ทั้งหมดออกจากการคำนวณหน่วยความจำของโหมดแอมเบียนท์ได้
ประเมินการใช้งานหน่วยความจำของหน้าปัด
หากต้องการวัดการใช้งานหน่วยความจำของหน้าปัด ให้ใช้เครื่องมือประเมินร่องรอยหน่วยความจำ ซึ่งมีอยู่ในที่เก็บ watchface
ใน GitHub
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- Arc
- บรรทัด
- สี่เหลี่ยมผืนผ้า