เพิ่มประสิทธิภาพการใช้พลังงานสำหรับแอปของคุณ

เอกสารนี้อธิบายแนวทางปฏิบัติแนะนำเกี่ยวกับวิธีเพิ่มประสิทธิภาพการใช้พลังงานในแอปนำทางบนอุปกรณ์เคลื่อนที่ที่คุณสร้างโดยใช้ Navigation SDK ขณะเดียวกันก็อธิบายถึงข้อแลกเปลี่ยนที่ต้องพิจารณาเมื่อใช้แนวทางปฏิบัติเหล่านี้ โดยเฉพาะอย่างยิ่ง เอกสารนี้ครอบคลุมหัวข้อต่อไปนี้

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

เหตุใดจึงควรเพิ่มประสิทธิภาพแอปนำทาง

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

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

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

อะไรที่ใช้พลังงานมากที่สุด

ส่วนนี้จะแบ่งกิจกรรมในแอปที่เชื่อมโยงกับการใช้พลังงานสูง ออกเป็น 2 หมวดหมู่ ดังนี้

  • การแสดงผลหน้าจอ
  • การอัปเดตตำแหน่ง

การแสดงผลหน้าจอ

โดยปกติแล้ว การแสดงผลหน้าจอจะทำให้แอปนำทางบนอุปกรณ์เคลื่อนที่ ใช้พลังงานมากที่สุด ทุกครั้งที่อุปกรณ์วาดแผนที่และองค์ประกอบ UI อื่นๆ บนหน้าจอ อุปกรณ์จะอาศัยการประมวลผลของ GPU และ CPU ในทำนองเดียวกัน เมื่อผู้ใช้ออกจากหน้าจอดังกล่าวเป็นเวลานาน ก็จะใช้พลังงานมากขึ้นด้วย

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

การอัปเดตตำแหน่ง

นอกจากการแสดงผลหน้าจอแล้ว กิจกรรมการนำทางอื่นๆ 2 อย่างยังใช้พลังงานของอุปกรณ์ด้วย

  • การใช้งานเสาสัญญาณวิทยุและ GPS
  • การอัปเดตและการแชร์ตำแหน่ง เช่น เพื่อระบุเวลาที่คาดว่าจะถึงหรือเพื่อรายงาน ตำแหน่งของยานพาหนะในกองยานพาหนะ

การสื่อสารผ่าน GPS และคลื่นวิทยุเซลลูลาร์ต้องอาศัยการดำเนินการเริ่มต้นที่ใช้พลังงานสูง GPS ต้องค้นหาดาวเทียมและคลื่นวิทยุเซลลูลาร์ต้องเจรจากับเสาและ สร้างการเชื่อมต่อ ด้วยเหตุนี้ จึงทำให้การทำงานของเครื่องมือเหล่านี้เป็นไปอย่างต่อเนื่อง ในระหว่างการนำทาง แม้ว่าวิทยุเซลลูลาร์จะยังคงทำงานเป็นเวลา 20-30 วินาที เพื่อพยายามลดต้นทุนการเริ่มต้น ระบบปฏิบัติการจะควบคุมการตั้งค่าเหล่านี้ ซึ่งคุณกำหนดค่าในแอปได้ยาก

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

เพิ่มประสิทธิภาพการใช้พลังงานของแอป

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

เปลี่ยนอัตราเฟรม

หน้าจอจะอัปเดตสิ่งที่แสดงด้วยความถี่ที่เรียกว่าอัตราเฟรม โดยปกติแล้ว อัตราเฟรมจะวัดเป็นเฟรมต่อวินาที (FPS) เนื่องจากการแสดงผลหน้าจอใช้ CPU หรือ GPU เป็นจำนวนมาก คุณจึงลดอัตราเฟรมเพื่อประหยัดการใช้พลังงานได้

ข้อเสียของการลดอัตราเฟรมคือการแสดงผลบนหน้าจออาจดูไม่ราบรื่น โดยเฉพาะอย่างยิ่งหากแผนที่อัปเดตบ่อย การเปลี่ยนแปลงนี้อาจเห็นได้ชัดที่สุด เมื่อซูมแผนที่ เมื่อผู้ใช้เดินทางด้วย ความเร็วสูง หรือเมื่อเปลี่ยนความเร็วหรือทิศทางอย่างมาก

ในอุปกรณ์ iOS นั้น Maps SDK สำหรับ iOS จะแสดงพร็อพเพอร์ตี้ preferredFrameRate เพื่อควบคุมอัตราเฟรม ตาราง ด้านล่างแสดงGMSFrameRateค่าตัวแจงนับที่คุณปรับได้

kGMSFrameRatePowerSave

ใช้อัตราเฟรมขั้นต่ำเพื่อประหยัดการใช้แบตเตอรี่

kGMSFrameRateConservative

ใช้ค่ามัธยฐานของอัตราเฟรมเพื่อให้การแสดงผลราบรื่นขึ้นและประหยัดรอบการประมวลผล

kGMSFrameRateMaximum

ใช้อัตราเฟรมสูงสุดสำหรับอุปกรณ์

สำหรับอุปกรณ์ระดับล่างคือ 30 FPS หรืออุปกรณ์ระดับสูงคือ 60 FPS

ดูข้อมูลอ้างอิงได้ที่ GMSFrameRate ในเอกสารประกอบของ Google Navigation SDK สำหรับ iOS

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

เพิ่มบรรทัดโค้ดเพื่อซ่อน GMSMapView

mapView.isHidden = true

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

แอปสาธิตที่ทำงานโดยมีมุมมองแผนที่ที่มองเห็นได้
รูปที่ 1.แอปเดโม iOS ของ Navigation SDK ที่แสดงเดโมการสำรองข้อมูล
แอปเดโมทํางานโดยไม่มีมุมมองแผนที่ที่มองเห็นได้
รูปที่ 2 แอปเดโมที่ทำงานโดยไม่มีมุมมองแผนที่ปรากฏ โปรดทราบว่าระบบจะยังคงอัปเดตเวลาและระยะทางที่เหลือ รวมถึงตำแหน่งที่สแนปกับถนน

ใช้รูปแบบแผนที่มืด

ลองจัดรูปแบบแผนที่ให้ใช้ธีมมืดเพื่อลดปริมาณพลังงาน ที่จำเป็นในการแสดงแผนที่บนหน้าจอ

Navigation SDK แสดงผลแผนที่โดยใช้ Google Maps SDK สำหรับ iOS ซึ่งมีตัวเลือกสำหรับ จัดรูปแบบมุมมองแผนที่ที่ไม่ใช่การนำทางในแอปของคุณ มุมมองการนำทางยัง รองรับการบังคับใช้ดาร์กโหมดด้วย การตั้งค่านี้อาจไม่ส่งผลต่ออุปกรณ์ทุกเครื่องในลักษณะเดียวกันเนื่องจากความแตกต่างของประเภทหน้าจอ แต่จะช่วยให้ประหยัดพลังงานได้ในบางกรณี การศึกษาล่าสุดพบว่าปริมาณแบตเตอรี่ที่โหมดมืดประหยัดได้ในบางหน้าจอจะขึ้นอยู่กับความสว่างของหน้าจอตั้งแต่แรก เช่น โหมดมืดจะประหยัดพลังงานได้มากกว่าในหน้าจอที่ตั้งค่าความสว่างไว้เต็มที่ เมื่อเทียบกับหน้าจอที่ปรับความสว่างไว้ที่ 30-50% ของ ความสว่างสูงสุดอยู่แล้ว คุณควรพิจารณาเรื่องนี้เมื่อใช้โหมดมืดสำหรับแอป เนื่องจากการประหยัดพลังงานจะขึ้นอยู่กับวิธีที่ผู้ใช้ปลายทางตั้งค่าความสว่างของหน้าจอ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไข UI การนำทางได้ที่ แก้ไข UI การนำทาง

ภาพหน้าจอของ Navigation SDK ที่ทำงานบน iPhone 15 Pro ที่มีรูปแบบแผนที่สีเข้ม
รูปที่ 3 SDK การนำทางที่กำหนดค่าด้วยรูปแบบแผนที่มืด
กำหนดค่า GMSMapView ด้วย mapID ที่แสดงรูปแบบแผนที่บนระบบคลาวด์ซึ่งกำหนดไว้ในโปรเจ็กต์

การจัดรูปแบบแผนที่บนระบบคลาวด์ต้องใช้รหัสแผนที่ซึ่งแสดงถึงการกำหนดค่าแผนที่ฝั่งเซิร์ฟเวอร์ที่สร้างขึ้นในโปรเจ็กต์ Google Console ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างรหัสแผนที่ได้ที่เอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์เกี่ยวกับรหัสแผนที่ ดูรายละเอียดเพิ่มเติมเกี่ยวกับการออกแบบและการติดตั้งใช้งาน รูปแบบแผนที่ที่อิงตามระบบคลาวด์ได้ในเอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์เกี่ยวกับการสร้างและการจัดการ รูปแบบแผนที่ที่อิงตามระบบคลาวด์

เปลี่ยนความถี่ในการอัปเดตตำแหน่ง GPS

เมื่อพิจารณาการใช้พลังงานจากการอัปเดตตำแหน่งที่ส่งจากอุปกรณ์ ให้มุ่งเน้น ความถี่ของการอัปเดตตำแหน่งมากกว่าปริมาณข้อมูลที่ส่งในการ ส่ง

ซึ่งไม่ใช่สิ่งที่คุณควบคุมได้โดยตรงใน Navigation SDK คำแนะนำเดียวกันนี้ใช้ได้กับการใช้แหล่งที่มาของตำแหน่งที่ไม่ใช่ GPS (เซลล์และ Wi-Fi)

ให้ความรู้แก่ผู้ใช้

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

  • ล็อกโทรศัพท์
  • ใส่แอปนำทางไว้เบื้องหลัง
  • ใช้การนำทางโดยไม่ต้องใช้แผนที่หากเป็นไปได้
  • ลดความสว่างของหน้าจอโดยใช้โหมดมืดสำหรับหน้าจอ OLED และ AMOLED หรือโดยการเปิดใช้ความสว่างแบบปรับอัตโนมัติ
  • รักษาอุณหภูมิของอุปกรณ์ให้เย็น
  • เชื่อมต่อ Wi-Fi ในรถ (หากมี)

วัดการใช้พลังงาน

คุณสามารถใช้เครื่องมือระดับมืออาชีพเพื่อวัดการใช้พลังงานได้ แต่เครื่องมือเหล่านี้มักจะหายากหรือมีราคาสูง เครื่องมือสร้างโปรไฟล์แอปและ IDE เช่น Power Profiler ใน Android Studio และแผงการใช้งานแบตเตอรี่ใน XCode Organizer จะวัดการใช้พลังงาน แต่การนำผลกระทบของกระบวนการเบื้องหลังออกหรือการตั้งค่าพื้นฐานด้านประสิทธิภาพเพื่อใช้วัดเทียบอาจทำได้ยาก ในบางกรณี ข้อจำกัดของอุปกรณ์อาจป้องกันไม่ให้คุณเข้าถึงข้อมูลที่จำเป็น

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