เพิ่มประสิทธิภาพการเข้าถึงเครือข่าย

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

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

เครื่องกำหนดสถานะวิทยุ

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

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

เครื่องสถานะของวิทยุเครือข่าย 3G โดยทั่วไปจะมีสถานะพลังงาน 3 สถานะดังนี้

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

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

สถานะการทำงานของเครื่องใช้การหน่วงเวลาเพื่อเลื่อนการเปลี่ยนไปใช้สถานะพลังงานต่ำเพื่อลดเวลาในการตอบสนอง รูปที่ 1 ใช้การกำหนดเวลาของ AT&T สำหรับวิทยุ 3G ทั่วไป


รูปที่ 1 เครื่องสถานะวิทยุไร้สาย 3G ทั่วไป

สถานะการทำงานของวิทยุในอุปกรณ์แต่ละเครื่อง โดยเฉพาะเวลาหน่วงของการเปลี่ยนสถานะที่เกี่ยวข้อง ("เวลาสิ้นสุด") และเวลาในการตอบสนองในการเริ่มต้นจะแตกต่างกันไปตามเทคโนโลยีวิทยุไร้สายที่ใช้ (3G, LTE, 5G และอื่นๆ) และกำหนดและกำหนดค่าโดยเครือข่ายผู้ให้บริการที่อุปกรณ์ใช้งานอยู่

หน้านี้จะอธิบายถึงเครื่องบ่งชี้สถานะสำหรับ 3G แบบไร้สายทั่วไป โดยอิงตามข้อมูลของ AT&T อย่างไรก็ตาม หลักการทั่วไปและ แนวทางปฏิบัติแนะนำที่ใช้ได้กับการติดตั้งวิทยุไร้สายทุกประเภท

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

น่าเสียดายที่แนวทางนี้อาจทำให้เกิดแอปที่ไม่มีประสิทธิภาพในสมาร์ทโฟนรุ่นใหม่ ระบบปฏิบัติการ เช่น Android ซึ่งแอปทำงานทั้งเบื้องหน้า เวลาในการตอบสนองเป็นสิ่งสำคัญ) และทำงานในเบื้องหลัง (ที่ควรจะมีอายุการใช้งานแบตเตอรี่) ที่ได้รับการจัดลำดับความสำคัญสูงสุด)

แอปมีผลต่อเครื่องสถานะวิทยุอย่างไร

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

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


รูปที่ 2 การใช้พลังงานวิทยุไร้สายแบบสัมพัทธ์สำหรับการดำเนินการโอนใน 1 วินาที 3 ครั้งในทุกๆ นาที รูปไม่รวมคำว่า "เพิ่มพลัง" เวลาในการตอบสนองระหว่างการเรียกใช้

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


รูปที่ 3 การใช้พลังงานวิทยุไร้สายแบบสัมพัทธ์สำหรับการโอน 3 วินาที ทำงาน 1 ครั้งต่อ 1 นาที

เทคนิคการเพิ่มประสิทธิภาพ

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

การโอนข้อมูลแบบแพ็กเกจ

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

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

ดึงข้อมูลล่วงหน้า

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

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

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

ต่อไปนี้เป็นตัวอย่างที่นำไปปฏิบัติได้จริง

โปรแกรมอ่านข่าว

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

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

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

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

ข้อควรพิจารณาเพิ่มเติม

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

ระดับการเรียกข้อมูลล่วงหน้าจะขึ้นอยู่กับขนาดของข้อมูลที่ดาวน์โหลดและความเป็นไปได้ที่ข้อมูลดังกล่าวจะถูกใช้ คำแนะนำคร่าวๆ โดยอิงตามสถานะแมชชีนที่อธิบายไว้ก่อนหน้านี้ สำหรับข้อมูลที่มีโอกาส 50% ที่จะใช้ในเซสชันผู้ใช้ปัจจุบัน คุณมักจะสามารถทำการโหลดล่วงหน้าได้ประมาณ 6 วินาที (ประมาณ 1-2 เมกะไบต์) ก่อนค่าใช้จ่ายที่อาจเกิดขึ้นจากการดาวน์โหลดข้อมูลที่ไม่ได้ใช้จะเท่ากับการประหยัดที่อาจเกิดขึ้นจากการไม่ดาวน์โหลดข้อมูลดังกล่าว

โดยทั่วไปแล้ว แนวทางปฏิบัติแนะนำคือการโหลดข้อมูลล่วงหน้าเพื่อให้คุณเริ่มต้นการดาวน์โหลดอีกครั้งทุก 2-5 นาที และมีขนาดประมาณ 1-5 เมกะไบต์

ตามหลักการนี้ การดาวน์โหลดขนาดใหญ่ เช่น ไฟล์วิดีโอ ควร มีการดาวน์โหลดเป็นช่วงๆ เป็นระยะๆ (ทุก 2-5 นาที) การดึงข้อมูลวิดีโอล่วงหน้าที่น่าจะดูได้ใน 2-3 นาทีต่อจากนี้

วิธีแก้ไขอย่างหนึ่งคือ ตั้งเวลาดาวน์โหลดแบบเต็มให้เกิดขึ้นเฉพาะเมื่อเชื่อมต่อกับ Wi-Fi และอาจรวมถึงเฉพาะเมื่ออุปกรณ์ชาร์จอยู่เท่านั้น WorkManager API รองรับกรณีการใช้งานนี้โดยเฉพาะ ซึ่งช่วยให้คุณจำกัดการทำงานในเบื้องหลังได้จนกว่าอุปกรณ์จะเป็นไปตามเกณฑ์ที่นักพัฒนาแอประบุ เช่น กำลังชาร์จและเชื่อมต่อ Wi-Fi

ตรวจสอบการเชื่อมต่อก่อนส่งคำขอ

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

การเชื่อมต่อสระว่ายน้ำ

กลยุทธ์เพิ่มเติมที่จะช่วยได้นอกเหนือจากการแบ่งกลุ่มและการอ่านล่วงหน้าคือการรวมการเชื่อมต่อเครือข่ายของแอป

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

HttpURLConnection และไคลเอ็นต์ HTTP ส่วนใหญ่ เช่น OkHttp จะเปิดใช้การเชื่อมต่อแบบพูลโดยค่าเริ่มต้น และนําการเชื่อมต่อเดิมมาใช้ซ้ำสําหรับคําขอหลายรายการ

สรุปและมองไปข้างหน้า

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

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