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

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

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

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

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

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

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

สิ่งใดใช้พลังงานมากที่สุด

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขอัตราเฟรมได้ที่ส่วนอัตราเฟรมในเอกสารสำหรับนักพัฒนาซอฟต์แวร์ของ Android Media Dev Center

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

หากต้องการซ่อน UI การนำทาง ให้ไม่ต้องเพิ่ม NavigationView หรือ SupportNavigationFragment หรือหากเพิ่มไปแล้ว ให้นำโค้ดที่เพิ่มออก โค้ดต่อไปนี้ได้รับการแก้ไขจาก แอปเดโม Navigation SDK Android และแสดงการใช้ ความคิดเห็นเพื่อนำโค้ดที่เพิ่ม UI การนำทางออก

//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment)   getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);

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

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

ใช้รูปแบบแผนที่สีเข้ม

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

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

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

ภาพหน้าจอของ Navigation SDK ที่ทำงานบน iPhone 15 Pro ที่มีรูปแบบแผนที่สีเข้ม
รูปที่ 3.Navigation SDK ที่กำหนดค่าด้วยรูปแบบแผนที่สีเข้ม

หากต้องการสร้างรูปแบบสีเข้มสำหรับแผนที่ ให้ใช้ออบเจ็กต์ MapStyleOptions ที่มีรูปแบบ JSON ซึ่งแสดงถึงรูปแบบแผนที่สีเข้มที่คุณเลือก คุณสร้างรูปแบบ JSON เดิมได้โดยใช้เครื่องมือแก้ไขการจัดรูปแบบเดิมที่ https://mapstyle.withgoogle.com/

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

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

คุณไม่สามารถควบคุมสิ่งนี้ได้โดยตรงใน Navigation SDK แต่หากแอป Android ขอตำแหน่งแยกกัน คุณควร พิจารณาคำแนะนำใน บทความเพิ่มประสิทธิภาพตำแหน่งเพื่อประหยัดแบตเตอรี่ใน เอกสารสำหรับนักพัฒนาแอป Android คำแนะนำเดียวกันนี้ใช้กับการใช้แหล่งที่มาของตำแหน่งที่ไม่ใช่ GPS (มือถือและ Wi-Fi)

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

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

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

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

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

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