ระบบจะจัดลำดับความสำคัญของคําขอทรัพยากรของแอปตามสถานะของอุปกรณ์ สถานะแอป และที่เก็บข้อมูลสแตนด์บายของแอป
ระบบ Android สามารถบังคับใช้ขีดจำกัดทรัพยากรได้ 2 วิธี วิธีหนึ่งในการเพิ่มประสิทธิภาพการใช้ทรัพยากรคือการเลื่อนการดําเนินการจนกว่าอุปกรณ์จะออกจากสถานะพลังงานต่ำ เช่น โหมดสลีป เช่น ระบบจะเลื่อนงานปกติและการปลุกที่ไม่แน่นอนออกไปเพื่อให้ทำงานหลังจากที่อุปกรณ์ออกจากโหมดสลีป
อีกวิธีหนึ่งคือการลดจำนวนครั้งที่แอปสามารถปลุกอุปกรณ์และทำงานได้ โดยอิงตามที่เก็บข้อมูลสแตนด์บายปัจจุบันของแอป ระบบจะลดทั้งความถี่ (ความถี่ที่แอปปลุกอุปกรณ์) และระยะเวลาทั้งหมด (ระยะเวลาที่อุปกรณ์ตื่นอยู่) ตัวอย่างเช่น หากแอปอยู่ในที่เก็บข้อมูลสแตนด์บายที่พบไม่บ่อย แอปจะทำงานที่กำหนดเวลาไว้ได้เป็นเวลารวม 10 นาทีในช่วง 24 ชั่วโมง
โปรดทราบว่า WorkManager ใช้ JobScheduler เพื่อกำหนดเวลางานเมื่อแอปไม่แสดงอยู่ และด้วยเหตุนี้ ทรัพยากรงานจึงส่งผลต่อผู้ทำงาน
คุณสามารถอ่านเพื่อทำความเข้าใจข้อจำกัดเพิ่มเติมได้จากบทความต่อไปนี้
- ขีดจำกัดทรัพยากรตามสถานะของอุปกรณ์
- ขีดจํากัดทรัพยากรตามสถานะแอป
- ขีดจํากัดทรัพยากรตามที่เก็บข้อมูลสแตนด์บายของแอป
โปรดทราบว่าสถานะของอุปกรณ์และสถานะแอปจะลบล้างขีดจํากัดของกลุ่มสแตนด์บายของแอปได้ ตัวอย่างเช่น หากอุปกรณ์กำลังชาร์จ ระบบจะอนุญาตให้แอปในบัคเก็ตสแตนด์บายนานๆ ครั้งทำงานนานกว่า 10 นาทีในช่วง 24 ชั่วโมง
มีการเปลี่ยนแปลงลักษณะการทำงานที่ส่งผลต่อขีดจํากัดของทรัพยากรด้วย ดูข้อมูลเพิ่มเติมได้จากการเปลี่ยนแปลงลักษณะการทํางานของ Android ที่ส่งผลต่อขีดจํากัดของทรัพยากร
ขีดจำกัดทรัพยากรตามสถานะของอุปกรณ์
นอกจากนี้ ระบบยังยกเว้นหรือบังคับใช้ขีดจำกัดทรัพยากรตามสถานะของอุปกรณ์ได้ด้วย เช่น อุปกรณ์ที่อยู่ในสถานะกำลังชาร์จจะได้รับสิทธิ์เข้าถึงทรัพยากรแบบไม่จำกัด โดยไม่คำนึงถึงที่เก็บข้อมูลสแตนด์บายของแอป
สถานะของอุปกรณ์ |
งาน |
การปลุก |
การเข้าถึงเครือข่าย |
การรับส่งข้อความในระบบคลาวด์ของ Firebase |
การชาร์จ |
ไม่มีขีดจํากัดการดําเนินการ ยกเว้นที่เก็บข้อมูลสแตนด์บายที่ถูกจํากัด |
ไม่มีขีดจํากัดการดําเนินการสําหรับที่เก็บข้อมูลสแตนด์บายและสถานะกระบวนการทั้งหมด ยกเว้นในกรณีที่ผู้ใช้จํากัดแบตเตอรี่ของแอปด้วยตนเอง |
ไม่มีข้อจำกัด |
ไม่มีข้อจำกัด |
เปิดหน้าจอ |
ระบบจะบังคับใช้ขีดจํากัดการดําเนินการตามที่เก็บข้อมูลสแตนด์บาย |
ระบบจะบังคับใช้ขีดจํากัดการเรียกใช้ตามกระบวนการของแอปและที่เก็บข้อมูลสแตนด์บาย |
สิทธิ์เข้าถึงจะขึ้นอยู่กับสถานะกลุ่มรอหรือสถานะกระบวนการของแอป |
ไม่มีข้อจำกัด |
หน้าจอปิดอยู่และโหมดสลีปทำงานอยู่ |
ระบบจะบังคับใช้ขีดจํากัดการดําเนินการตามที่เก็บข้อมูลสแตนด์บาย และเลื่อนการดําเนินการไปยังกรอบเวลาการบำรุงรักษาแบบสลีป |
ระบบจะบังคับใช้ขีดจํากัดการดําเนินการตามที่เก็บข้อมูลสแตนด์บาย การปลุกตามปกติ: เลื่อนไปไว้ที่ช่วงเวลาบำรุงรักษาโหมดสลีป การปลุกขณะไม่มีการใช้งาน: จำกัดไว้ที่ 7 ครั้งต่อชั่วโมง |
ถูกจำกัดระหว่างโหมดสลีป |
สำคัญสูง: ไม่มีขีดจํากัดการดําเนินการ ความสำคัญปกติ: เลื่อนไปไว้ที่ช่วงเวลาบำรุงรักษาโหมดสลีป |
ขีดจํากัดทรัพยากรตามสถานะแอป
การที่ระบบจะบังคับใช้ขีดจำกัดทรัพยากรของที่เก็บข้อมูลสแตนด์บายแอปหรือไม่นั้นขึ้นอยู่กับความสำคัญของกระบวนการของแอป ดูหัวข้อ
ActivityManager.RunningAppProcessInfo.importance
เพื่อทำความเข้าใจความสำคัญของกระบวนการในระดับต่างๆ
นอกจากนี้ ผู้ใช้อุปกรณ์ยังเลือกลบล้างด้วยตนเองการเพิ่มประสิทธิภาพการจัดการพลังงานของแอปได้ ซึ่งจะลบล้างขีดจำกัดของกลุ่มแอปสแตนด์บาย
สถานะแอป |
งาน |
การปลุก |
เครือข่าย |
กระบวนการของแอปแสดงอยู่หรืออยู่ในสถานะเบื้องหน้า |
ไม่มีขีดจํากัดการดําเนินการ |
ไม่มีขีดจํากัดความถี่ |
ไม่มีข้อจำกัด |
กระบวนการของแอปกำลังเรียกใช้บริการที่ทำงานอยู่เบื้องหน้า |
ระบบจะบังคับใช้ขีดจํากัดการดําเนินการตามที่เก็บข้อมูลสแตนด์บาย*** |
ระบบจะบังคับใช้ขีดจํากัดความถี่ตามกลุ่มโฆษณาสแตนด์บาย |
ไม่มีข้อจำกัด |
ผู้ใช้จำกัดแบตเตอรี่ของแอปด้วยตนเอง |
การดําเนินการถูกจํากัด |
การดําเนินการถูกจํากัด |
การเข้าถึงจะขึ้นอยู่กับลักษณะการทํางานของที่เก็บข้อมูลสแตนด์บาย |
ผู้ใช้เลิกจำกัดแบตเตอรี่ของแอปด้วยตนเอง |
ขีดจํากัดการดําเนินการมีมากพอ*** |
ไม่มีขีดจํากัดการดําเนินการ |
ไม่จำกัด เว้นแต่อุปกรณ์จะอยู่ในโหมดประหยัดอินเทอร์เน็ต |
*** ลักษณะการทํางานของโควต้าการเรียกใช้สําหรับงานมีการเปลี่ยนแปลงใน Android 16 ก่อนที่จะมี Android 16 จะไม่มีขีดจำกัดการเรียกใช้เมื่อแอปทำงานเป็นบริการที่ทำงานอยู่เบื้องหน้าหรือผู้ใช้ไม่ได้จำกัดแบตเตอรี่ของแอป
ขีดจำกัดทรัพยากรตามที่เก็บข้อมูลสแตนด์บายของแอป
หมายเหตุ: ค่าในตารางนี้ไม่ได้รับประกันระยะเวลาการดำเนินการ เนื่องจากสภาพอุปกรณ์หรือการเปลี่ยนแปลงที่เก็บข้อมูลอื่นๆ อาจส่งผลต่อข้อจำกัดด้านทรัพยากร ค่าเหล่านี้ยังอาจมีการเปลี่ยนแปลงใน Android รุ่นต่อๆ ไปด้วย
ระบบสามารถจำกัดงานปกติ งานเร่งด่วน การปลุก และการเข้าถึงเครือข่ายตามที่เก็บข้อมูลสแตนด์บายของแอป ทําความเข้าใจว่าที่เก็บข้อมูลสแตนด์บายของแอปส่งผลต่อแอปอย่างไรโดยใช้ข้อจํากัดการจัดการพลังงานโดยประมาณเหล่านี้เป็นแนวทาง ปฏิบัติตามแนวทางปฏิบัติแนะนำสำหรับโหมดสแตนด์บายของแอปและเพิ่มประสิทธิภาพการใช้แบตเตอรี่สำหรับ API การจัดตารางงานเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
โปรดทราบว่าตั้งแต่ Android 13 เป็นต้นไป กลุ่มรอของแอปจะไม่กำหนดจำนวน FCM สำคัญสูงที่แอปใช้ได้อีกต่อไป
ที่เก็บข้อมูลสแตนด์บายแอป |
งานประจำ* |
งานด่วน** |
การปลุก |
เครือข่าย |
ใช้งาน: |
สูงสุด 20 นาทีในช่วง 60 นาทีที่ผ่านมา*** |
ไม่เกิน 30 นาทีในช่วง 24 ชั่วโมงที่ผ่านมา*** |
ไม่มีขีดจํากัดการดําเนินการ |
ไม่มีข้อจำกัด |
ชุดที่ทำงาน: |
ไม่เกิน 10 นาทีในช่วง 4 ชั่วโมงที่ผ่านมา |
ไม่เกิน 15 นาทีในช่วง 24 ชั่วโมงที่ผ่านมา |
จำกัดสูงสุด 10 รายการต่อชั่วโมง |
ไม่มีข้อจำกัด |
บ่อยครั้ง |
สูงสุด 10 นาทีในช่วง 12 ชั่วโมงที่ผ่านมา |
สูงสุด 10 นาทีในช่วง 24 ชั่วโมงที่ผ่านมา |
จำกัดสูงสุด 2 ครั้งต่อชั่วโมง |
ไม่มีข้อจำกัด |
พบน้อย |
สูงสุด 10 นาทีในช่วง 24 ชั่วโมงที่ผ่านมา |
สูงสุด 10 นาทีในช่วง 24 ชั่วโมงที่ผ่านมา |
จำกัด 1 ครั้งต่อชั่วโมง |
ปิดอยู่ |
จำกัด |
1 ครั้งต่อวันไม่เกิน 10 นาที |
สูงสุด 5 นาทีในกรอบเวลา 24 ชั่วโมง |
การปลุก 1 ครั้งต่อวัน ซึ่งอาจเป็นการปลุกในเวลาที่แน่นอนหรือการปลุกในเวลาที่ไม่แน่นอน |
ปิดอยู่ |
* งานทั่วไปจะอธิบายงานที่ไม่ได้ใช้ Flag setUserInitiated(true)
หรือ setExpedited(true)
ใน JobScheduler หรือ Worker ที่เร่งความเร็วใน WorkManager
** งานเร่งด่วนมีขีดจํากัดการดําเนินการแยกต่างหากจากงานปกติ โดยสามารถกําหนดค่าใน WorkManager ให้ทํางานต่อไปโดยใช้ขีดจํากัดการดําเนินงานของงานปกติได้เมื่อใช้ขีดจํากัดการเร่งด่วนจนหมด
*** ลักษณะการทํางานของโควต้าการเรียกใช้สําหรับงานมีการเปลี่ยนแปลงใน Android 16 ก่อนที่จะมี Android 16 นั้นไม่มีการจํากัดการเรียกใช้เมื่อแอปอยู่ในกลุ่มสแตนด์บายที่ใช้งานอยู่
การเปลี่ยนแปลงลักษณะการทํางานของ Android ที่ส่งผลต่อขีดจํากัดของทรัพยากร
การอัปเดต Android ต่อไปนี้ทำการเปลี่ยนแปลงขีดจำกัดทรัพยากรของแอป
Android 16
การเปลี่ยนแปลงลักษณะการทํางานของการเพิ่มประสิทธิภาพโควต้า JobScheduler
Android ได้ปรับโควต้ารันไทม์ของงานแบบปกติและแบบเร่งด่วนตามปัจจัยต่อไปนี้
- ที่เก็บข้อมูลสแตนด์บายแอปที่แอปอยู่
- หากงานเริ่มทํางานขณะที่แอปอยู่ในสถานะด้านบน
- หากงานกำลังดำเนินการขณะเรียกใช้บริการที่ทำงานอยู่เบื้องหน้า
Android 13
การเปลี่ยนแปลงลักษณะการทำงานของโควต้า Firebase Cloud Messaging (FCM) ที่มีลำดับความสำคัญสูง
- กลุ่มแอปสแตนด์บายจะไม่กำหนดจำนวน FCM สำคัญสูงที่แอปใช้ได้อีกต่อไป
- ตอนนี้ระบบจะลดระดับข้อความที่มีลำดับความสำคัญสูงหากตรวจพบว่าแอปส่งข้อความที่มีลำดับความสำคัญสูงอย่างต่อเนื่องซึ่งไม่ส่งผลให้มีการแจ้งเตือน
- ดูหลักเกณฑ์ปัจจุบันเกี่ยวกับข้อความที่มีลำดับความสำคัญสูงได้ที่เอกสารประกอบของ firebase เกี่ยวกับการกำหนดและจัดการลําดับความสําคัญของข้อความ
Android 9
เปิดตัวฟีเจอร์ที่เก็บข้อมูลสแตนด์บายแอป
Android 9 เปิดตัวฟีเจอร์การจัดการแบตเตอรี่ใหม่ที่เรียกว่ากลุ่มแอปที่รอดำเนินการ กลุ่มแอปสแตนด์บายช่วยให้ระบบจัดลำดับความสำคัญของคําขอทรัพยากรของแอปตามความใหม่และความถี่ในการใช้แอป ระบบจะจัดแอปแต่ละแอปไว้ในกลุ่มลำดับความสำคัญ 1 ใน 5 กลุ่มตามรูปแบบการใช้งานแอป ระบบจะจำกัดทรัพยากรของอุปกรณ์ที่ใช้ได้กับแต่ละแอปตามที่เก็บข้อมูลของแอป