การใช้ตำแหน่งในเบื้องหลังอาจส่งผลต่ออายุการใช้งานแบตเตอรี่ได้อย่างมาก Android รองรับการจำกัดการเก็บรวบรวมตำแหน่งในเบื้องหลัง ซึ่งกระตุ้นให้นักพัฒนาแอปเพิ่มประสิทธิภาพแอปพลิเคชันเพื่อให้แบตเตอรี่ใช้งานได้นานขึ้น การเพิ่มประสิทธิภาพเหล่านี้มีประโยชน์ต่ออุปกรณ์ทุกเครื่อง ไม่ว่าจะใช้ Android เวอร์ชันใดก็ตาม
เมื่อใช้ขีดจํากัดตําแหน่งในเบื้องหลัง
- ระบบจะจำกัดการรวบรวมตำแหน่งในเบื้องหลัง รวมถึงคำนวณและส่งตำแหน่งเพียงไม่กี่ครั้งต่อชั่วโมง
- การสแกน Wi-Fi จะทำงานอย่างระมัดระวังมากขึ้น และจะไม่คำนวณการอัปเดตตำแหน่งเมื่ออุปกรณ์เชื่อมต่อกับจุดเข้าใช้งานแบบคงที่เดียวกัน
- ความสามารถในการตอบสนองของการกำหนดเขตพื้นที่เสมือนจะเปลี่ยนจากหลายสิบวินาทีเป็นประมาณ 2 นาที การเปลี่ยนแปลงนี้ช่วยปรับปรุงประสิทธิภาพแบตเตอรี่ได้สูงสุด 10 เท่าในอุปกรณ์บางรุ่น
ความรู้ที่จำเป็น
เอกสารนี้ถือว่าคุณคุ้นเคยกับ API ต่อไปนี้
- บริการตำแหน่งของ Google API เหล่านี้มีความแม่นยำสูงกว่าและส่งผลต่อแบตเตอรี่น้อยกว่า API ตำแหน่งเฟรมเวิร์ก
- ผู้ให้บริการ Fused Location API นี้จะรวมสัญญาณจาก GPS, Wi-Fi และเครือข่ายมือถือ รวมถึงตัวตรวจวัดความเร่ง เครื่องวัดการหมุน เครื่องวัดค่าความเข้มข้นของสนามแม่เหล็ก และเซ็นเซอร์อื่นๆ
- การกำหนดเขตพื้นที่เสมือน API นี้สร้างขึ้นจาก Fused Location Provider API และได้รับการเพิ่มประสิทธิภาพเพื่อการใช้งานแบตเตอรี่
ทำความเข้าใจแบตเตอรี่หมดเร็ว
การรวบรวมข้อมูลตำแหน่งและการสิ้นเปลืองแบตเตอรี่มีความเกี่ยวข้องกันดังนี้
- ความแม่นยำ: ความแม่นยำของข้อมูลตำแหน่ง โดยทั่วไป ยิ่งความแม่นยำสูง แบตเตอรี่ก็ยิ่งหมดเร็ว
- ความถี่: ความถี่ในการคำนวณตำแหน่ง ยิ่งคำนวณตำแหน่งบ่อยเท่าใด ก็ยิ่งใช้แบตเตอรี่มากขึ้นเท่านั้น
- เวลาในการตอบสนอง: ความเร็วในการนำส่งข้อมูลตำแหน่ง โดยปกติแล้วเวลาในการตอบสนองที่น้อยลงจะใช้แบตเตอรี่มากกว่า
ความถูกต้อง
คุณสามารถระบุความแม่นยำของตำแหน่งได้โดยใช้เมธอด setPriority()
โดยส่งค่าใดค่าหนึ่งต่อไปนี้เป็นอาร์กิวเมนต์
PRIORITY_HIGH_ACCURACY
ให้ตำแหน่งที่แม่นยำที่สุดเท่าที่จะเป็นไปได้ ซึ่งคำนวณโดยใช้อินพุตมากที่สุดเท่าที่จำเป็น (เปิดใช้ GPS, Wi-Fi และเครือข่ายมือถือ และใช้เซ็นเซอร์ต่างๆ) และอาจทำให้แบตเตอรี่หมดเร็วPRIORITY_BALANCED_POWER_ACCURACY
ให้ตำแหน่งที่แม่นยำขณะเพิ่มประสิทธิภาพพลังงาน ใช้ GPS นานๆ ครั้ง โดยปกติจะใช้ข้อมูล Wi-Fi และเครือข่ายมือถือร่วมกันเพื่อคำนวณตำแหน่งของอุปกรณ์PRIORITY_LOW_POWER
อาศัยเสาสัญญาณมือถือเป็นหลักและหลีกเลี่ยงการป้อนข้อมูล GPS และ Wi-Fi ซึ่งให้ความแม่นยำแบบหยาบ (ระดับเมือง) โดยกินแบตเตอรี่น้อยที่สุดPRIORITY_NO_POWER
รับตำแหน่งจากแอปอื่นๆ โดยอัตโนมัติสำหรับตำแหน่งที่คำนวณไว้แล้ว
ใช้ตัวเลือกพลังงานสมดุลหรือพลังงานต่ำเพื่อตอบสนองความต้องการด้านตำแหน่งของแอปส่วนใหญ่ สงวนความแม่นยำสูงไว้สำหรับแอปที่ทำงานอยู่เบื้องหน้าและจำเป็นต้องมีการอัปเดตตำแหน่งแบบเรียลไทม์ (เช่น แอปการแมป)
ความถี่
คุณระบุความถี่ของตําแหน่งได้ 2 วิธี ดังนี้
- ใช้เมธอด
setinterval()
เพื่อระบุช่วงเวลาในการคํานวณตําแหน่งของแอป - ใช้เมธอด
setFastestInterval()
เพื่อระบุช่วงเวลาในการรับตำแหน่งของแอปอื่นๆ
ส่งค่าที่ใหญ่ที่สุดที่เป็นไปได้เมื่อใช้ setInterval()
โดยเฉพาะอย่างยิ่งการเก็บรวบรวมตำแหน่งในเบื้องหลัง ซึ่งมักจะทำให้แบตเตอรี่หมด สำรองเวลาเป็นช่วงๆ ละ 2-3 วินาทีสำหรับกรณีการใช้งานที่ทำงานอยู่เบื้องหน้า
ขีดจํากัดตําแหน่งในเบื้องหลังที่เปิดตัวใน Android 8.0 (API ระดับ 26) จะบังคับใช้กลยุทธ์เหล่านี้ แต่แอปของคุณควรพยายามบังคับใช้กลยุทธ์เหล่านี้ในอุปกรณ์ที่ใช้ Android 7.0 (API ระดับ 24) และต่ำกว่า
ตอบสนองช้า
คุณสามารถระบุเวลาในการตอบสนองได้โดยใช้เมธอด setMaxWaitTime()
โดยปกติแล้วคือการส่งค่าที่มากกว่าช่วงเวลาที่ระบุไว้ในเมธอด setInterval()
หลายเท่า การตั้งค่านี้จะเลื่อนเวลาการนำส่งตำแหน่งออกไป และอาจส่งการอัปเดตตำแหน่งหลายรายการเป็นกลุ่ม การเปลี่ยนแปลงทั้ง 2 อย่างนี้จะช่วยลดความสิ้นเปลืองแบตเตอรี่
หากแอปไม่จำเป็นต้องอัปเดตตำแหน่งในทันที คุณควรส่งค่าที่ใหญ่ที่สุดที่เป็นไปได้ไปยังเมธอด setMaxWaitTime()
ซึ่งจะแลกเวลาในการตอบสนองเพื่อรับข้อมูลมากขึ้นและแบตเตอรี่ใช้งานได้นานขึ้น
เมื่อใช้การกำหนดเขตพื้นที่เสมือน แอปควรส่งค่าขนาดใหญ่ไปยังเมธอด setNotificationResponsiveness()
เพื่อประหยัดพลังงาน เราขอแนะนำให้ใช้ค่าตั้งแต่ 5 นาทีขึ้นไป
อ่านเพิ่มเติม
ดูข้อมูลเพิ่มเติมได้ที่เอกสารต่อไปนี้
- คําแนะนํา: คู่มือนี้จะแสดงการดำเนินการที่แนะนําอย่างเป็นรูปธรรมซึ่งคุณใช้เพื่อปรับปรุงผลกระทบของแอปต่ออายุการใช้งานแบตเตอรี่ได้
- กรณีการใช้งาน: คู่มือนี้จะแสดงกรณีการใช้งานทั่วไปหลายกรณีที่คุณอาจใช้บริการตำแหน่ง และวิธีเพิ่มประสิทธิภาพอายุการใช้งานแบตเตอรี่สำหรับกรณีเหล่านั้น