Android 9 (API ระดับ 28) ขึ้นไปรองรับที่เก็บข้อมูลสแตนด์บายแอป สแตนด์บายแอป ที่เก็บข้อมูลช่วยให้ระบบจัดลำดับความสำคัญของแอปได้ ทรัพยากรตามวิธี ล่าสุดและความถี่ในการใช้แอป แต่ละรายการตามรูปแบบการใช้งานแอป แอปอยู่ใน 1 จาก 5 ที่เก็บข้อมูลที่มีลำดับความสำคัญ ระบบจำกัดอุปกรณ์ ทรัพยากรที่ใช้ได้สำหรับแต่ละแอป โดยขึ้นอยู่กับที่เก็บข้อมูลของแอป
ที่เก็บข้อมูลลำดับความสำคัญ
ระบบจะกำหนดแต่ละแอปไปยังที่เก็บข้อมูลลำดับความสำคัญแบบไดนามิก โดยกำหนด แอปที่จำเป็น ระบบอาจใช้แอปที่โหลดไว้ล่วงหน้าซึ่งใช้แมชชีนเลิร์นนิงเพื่อพิจารณาความเป็นไปได้ที่แต่ละแอปจะได้รับการใช้งาน และกำหนดแอปไปยังที่เก็บที่เหมาะสม
หากไม่มีแอประบบในอุปกรณ์ ระบบจะจัดเรียงแอปตามลำดับล่าสุดที่ใช้โดยค่าเริ่มต้น ระบบจะมอบหมายแอปที่ทำงานมากกว่า กับที่เก็บข้อมูลที่ให้ความสำคัญสูงกว่า จึงทำให้มีทรัพยากรระบบเพิ่มขึ้น ที่พร้อมใช้งานในแอป โดยเฉพาะอย่างยิ่ง ที่เก็บข้อมูลจะกำหนดความถี่ในการ การเรียกใช้งานของแอป และความถี่ของแอปจะทำให้เกิดการปลุก ข้อจำกัดเหล่านี้ มีผลเฉพาะเมื่ออุปกรณ์ใช้พลังงานแบตเตอรี่เท่านั้น ขณะกำลังชาร์จอุปกรณ์ ระบบจะไม่กำหนดข้อจำกัดเหล่านี้
ที่เก็บข้อมูลลำดับความสำคัญมีดังต่อไปนี้
- ใช้งานอยู่: มีการใช้แอปหรือเพิ่งใช้งานแอปเมื่อเร็วๆ นี้
- ชุดที่ทำงานอยู่: แอปมีการใช้งานอยู่เป็นประจำ
- บ่อย: มีการใช้แอปอยู่บ่อยครั้ง ไม่ใช่ทุกวัน
- พบได้ยาก: มีการใช้งานแอปไม่บ่อยนัก
- จำกัด: แอปใช้ทรัพยากรระบบจำนวนมากหรืออาจมีการแสดง พฤติกรรมที่ไม่พึงประสงค์
นอกจากที่เก็บข้อมูลลำดับความสำคัญเหล่านี้แล้ว ยังมีที่เก็บข้อมูลพิเศษสำหรับที่ แอปที่ติดตั้งแต่ไม่เคยทำงาน ระบบกำหนดข้อจำกัดร้ายแรงสำหรับ แอปเหล่านี้
คำอธิบายต่อไปนี้มีไว้สำหรับกรณีที่ไม่สามารถคาดเดาได้ ในทางตรงกันข้าม เมื่อ การคาดคะเนจะใช้แมชชีนเลิร์นนิงในการคาดการณ์พฤติกรรม และเลือกที่เก็บข้อมูลใน การคาดการณ์ถึงการดำเนินการต่อไปของผู้ใช้ มากกว่าที่จะอิงจากการใช้งานล่าสุด สำหรับ ตัวอย่างเช่น แอปที่ใช้ล่าสุดอาจไปอยู่ในที่เก็บข้อมูลที่ไม่พบบ่อยเนื่องจาก การเรียนรู้คาดการณ์ว่าอาจไม่ได้ใช้แอปเป็นเวลาหลายชั่วโมง
ใช้งานอยู่
แอปอยู่ในที่เก็บข้อมูลที่ใช้งานอยู่ขณะที่มีการใช้งาน มีการใช้งานล่าสุด หรือ เมื่อมีการดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
- เปิดกิจกรรม
- เรียกใช้บริการที่ทำงานอยู่เบื้องหน้าซึ่งใช้เวลานาน
- ผู้ใช้แตะจากข้อความแจ้ง
หากแอปอยู่ในที่เก็บข้อมูล "ทำงานอยู่" ระบบจะไม่จำกัดงานหรือการแจ้งเตือนของแอป
การโต้ตอบของผู้ใช้กำหนดให้แอปทำงาน
ใน Android 9 (API ระดับ 28) ขึ้นไป เมื่อผู้ใช้โต้ตอบกับแอปของคุณในลักษณะหนึ่งๆ ระบบจะจัดให้แอปของคุณอยู่ในกลุ่มที่ใช้งานอยู่ชั่วคราว หลังจากที่ผู้ใช้หยุดโต้ตอบกับแอปของคุณ ระบบจะวางแอปดังกล่าวลงใน ที่เก็บข้อมูลตามประวัติการใช้งาน
ต่อไปนี้คือตัวอย่างการโต้ตอบที่ทำให้เกิดลักษณะการทำงานของระบบ
ผู้ใช้แตะการแจ้งเตือนที่แอปของคุณส่ง
ผู้ใช้โต้ตอบกับบริการที่ทำงานอยู่เบื้องหน้าในแอปโดยแตะสื่อ
ผู้ใช้เชื่อมต่อกับแอปของคุณขณะโต้ตอบกับ Android Automotive ระบบปฏิบัติการ ที่แอปใช้บริการที่ทำงานอยู่เบื้องหน้าหรือ
CONNECTION_TYPE_PROJECTION
ชุดทำงาน
แอปอยู่ในที่เก็บข้อมูลชุดการทำงาน หากทำงานบ่อยแต่ไม่ได้ทำงานอยู่ เช่น แอปโซเชียลมีเดียที่ผู้ใช้เปิดใช้เกือบทุกวันมีแนวโน้มที่จะ ได้เวลาอยู่ในกองถ่าย นอกจากนี้ แอปจะได้รับการเลื่อนระดับไปยังที่เก็บข้อมูลชุดที่ใช้งานได้ในกรณีที่ ถูกนำไปใช้ทางอ้อม
หากแอปอยู่ในชุดการทำงาน ระบบจะกำหนดข้อจำกัดเล็กน้อยในแอปดังกล่าว ความสามารถในการเรียกใช้งานและทริกเกอร์การปลุก โปรดดูรายละเอียดที่หัวข้อการจัดการพลังงาน ข้อจำกัด
ติดต่อบ่อย
แอปอยู่ในที่เก็บข้อมูลที่ใช้บ่อยหากมีการใช้งานเป็นประจำแต่ไม่จำเป็น ในทุกๆ วัน เช่น แอปติดตามการออกกำลังกายที่ผู้ใช้เปิดใช้งานที่โรงยิมอาจอยู่ในกลุ่มที่ใช้งานบ่อย
หากแอปอยู่ในที่เก็บข้อมูลที่ใช้บ่อย ระบบจะกำหนดข้อจำกัดที่เข้มงวดขึ้น ความสามารถในการเรียกใช้งานและทริกเกอร์การปลุก โปรดดูรายละเอียดที่หัวข้อการจัดการพลังงาน ข้อจำกัด
พบน้อย
แอปจะอยู่ในที่เก็บข้อมูลที่หายากหากไม่ได้ใช้งานบ่อย เช่น โรงแรม ที่ผู้ใช้เรียกใช้เฉพาะขณะเข้าพักที่โรงแรมนั้นอาจเป็น
หากแอปอยู่ในที่เก็บข้อมูลระดับ Rare ระบบจะจำกัดความสามารถในการเรียกใช้งานและทริกเกอร์การแจ้งเตือนอย่างเข้มงวด ระบบยังจำกัดความสามารถของแอปด้วย เพื่อเชื่อมต่ออินเทอร์เน็ต โปรดดูรายละเอียดที่หัวข้อข้อจำกัดด้านการจัดการพลังงาน
จำกัด
ที่เก็บข้อมูลนี้ที่เพิ่มเข้ามาใน Android 12 (API ระดับ 31) มีลำดับความสำคัญต่ำสุดและ ข้อจำกัดสูงสุดของที่เก็บข้อมูลทั้งหมด ระบบจะพิจารณา เช่น ความถี่ที่ผู้ใช้โต้ตอบกับส่วนขยาย เพื่อตัดสินว่าจะ วางแอปของคุณในที่เก็บข้อมูลที่ถูกจำกัด
ใน Android 13 (API ระดับ 33) ขึ้นไป เว้นแต่แอปของคุณจะมีคุณสมบัติตรงตามข้อกำหนด การยกเว้น ระบบจะวางแอปของคุณในที่เก็บข้อมูลที่ถูกจำกัดใน สถานการณ์ต่อไปนี้
ผู้ใช้ไม่ได้โต้ตอบกับแอปของคุณเป็นเวลาหลายวัน ใน Android 12 (API ระดับ 31) และ 12L (API ระดับ 32) จำนวนวันคือ 45 วัน Android 13 จะลดจำนวนวันเหลือ 8
แอปของคุณเรียกใช้การออกอากาศหรือการเชื่อมโยงมากเกินไปในช่วง 24 ชั่วโมง
หากระบบวางแอปของคุณในที่เก็บข้อมูลที่ถูกจำกัด สิ่งต่อไปนี้จะเกิดขึ้น มีข้อจำกัด:
- คุณเรียกใช้งานได้วันละครั้งในเซสชันครั้งละ 10 นาที ระหว่าง
เซสชันนี้ ระบบจะจัดกลุ่มงานของแอปคุณกับแอปอื่นๆ งาน
- งานที่ถูกจำกัดไม่ได้ทำงานด้วยตนเอง ต้องมีอย่างน้อย 1 รูป งานอื่นๆ ที่กำลังทำงานอยู่หรือรอดำเนินการพร้อมกัน ซึ่งอาจรวมถึง งานอื่นๆ
- แอปของคุณเรียกใช้งานที่ต้องเร่งได้น้อยกว่าเมื่อเทียบกับตอนที่ระบบ วางแอปของคุณในที่เก็บข้อมูลที่มีข้อจำกัดน้อยกว่า
- แอปของคุณเรียกใช้การปลุกได้วันละ 1 ครั้ง การปลุกนี้สามารถเป็น การปลุกหรือการปลุกที่ไม่แน่ชัด
การยกเว้นจากที่เก็บข้อมูลที่ถูกจำกัด
แอปประเภทต่อไปนี้ได้รับการยกเว้นจากการเข้าสู่ที่เก็บข้อมูลที่ถูกจำกัด และ ข้ามทริกเกอร์การไม่ใช้งานแม้ใน Android 12 ขึ้นไป
- แอปสำหรับอุปกรณ์ที่ใช้ร่วมกัน
- แอปที่กำลังทำงานบนอุปกรณ์ในโหมดสาธิต
- แอปของเจ้าของอุปกรณ์
- แอปเจ้าของโปรไฟล์
- แอปถาวร
- แอป VPN
- แอปที่มีบทบาท
ROLE_DIALER
- แอปที่ผู้ใช้ระบุไว้อย่างชัดแจ้งว่าให้บริการแบบ "ไม่จำกัด" ฟังก์ชันการทำงานในการตั้งค่าระบบ
- แอปที่มีวิดเจ็ตที่ใช้งานอยู่
- แอปที่ได้รับสิทธิ์ต่อไปนี้อย่างน้อย 1 สิทธิ์
ประเมินที่เก็บข้อมูลลําดับความสําคัญ
หากต้องการตรวจสอบที่เก็บข้อมูลที่แอปของคุณได้รับมอบหมาย ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
เรียกใช้คำสั่งต่อไปนี้ในหน้าต่างเทอร์มินัล
adb shell am get-standby-bucket PACKAGE_NAME
ระบบจะควบคุมแอปของคุณเมื่อใดก็ตามที่วางอยู่ในที่เก็บข้อมูลสแตนด์บายแอป
ที่มีค่ามากกว่า STANDBY_BUCKET_ACTIVE
(10)
แนวทางปฏิบัติแนะนำ
หากแอปของคุณปฏิบัติตามแนวทางปฏิบัติแนะนำสำหรับ Doze และสแตนด์บายแอปแล้ว คุณลักษณะการจัดการพลังงานในภายหลังได้จึงไม่ใช่เรื่องยาก อย่างไรก็ตาม ลักษณะการทำงานบางอย่างของแอป ซึ่งก่อนหน้านี้ใช้การได้ดีอยู่แล้วอาจทำให้เกิดปัญหา
- อย่าพยายามควบคุมระบบให้ใส่แอปของคุณไว้ในที่เก็บข้อมูลหนึ่งๆ วิธีจัดลำดับความสำคัญของระบบสามารถเปลี่ยนแปลงได้ ผู้ผลิตอาจเลือกเขียนแอปเพื่อเก็บข้อมูลของตนเอง อัลกอริทึม คุณควรตรวจสอบให้แน่ใจว่าแอปของคุณทำงานอย่างเหมาะสม ที่เก็บข้อมูลไว้
- หากแอปไม่มีกิจกรรม Launcher ก็อาจไม่ได้รับการโปรโมต ที่เก็บข้อมูลที่ใช้งานอยู่ ลองออกแบบแอปใหม่ให้มีกิจกรรมดังกล่าว
หากผู้ใช้โต้ตอบกับการแจ้งเตือนของแอปไม่ได้ ผู้ใช้จะเรียกให้ระบบโปรโมตแอปไปยังกลุ่มที่ใช้งานอยู่ไม่ได้ ในกรณีนี้ ให้พิจารณา การออกแบบการแจ้งเตือนบางอย่างที่ให้ผู้ใช้โต้ตอบกันได้ สำหรับหลักเกณฑ์บางอย่าง ดูรูปแบบการออกแบบการแจ้งเตือนของดีไซน์ Material
หากแอปไม่ได้แสดงการแจ้งเตือนเมื่อได้รับลำดับความสำคัญสูง ข้อความ Firebase Cloud Messaging (FCM) ที่ผู้ใช้โต้ตอบด้วยไม่ได้ และโปรโมตแอปนั้นไปยังที่เก็บข้อมูลที่ใช้งานอยู่ อันที่จริง เป้าหมายเดียว สำหรับข้อความ FCM ที่มีลำดับความสำคัญสูง คือการส่งการแจ้งเตือนไปยังผู้ใช้ ดังนั้น ในกรณีนี้ ต้องไม่เกิดขึ้น ใน 12L (API ระดับ 32) และต่ำกว่า หากทำเครื่องหมายข้อความ FCM เป็นสำคัญสูงอย่างไม่เหมาะสมเมื่อข้อความไม่ได้ทริกเกอร์การโต้ตอบของผู้ใช้ อาจทำให้ข้อความในอนาคตมีลำดับความสำคัญลดลง
หากแยกแอปออกเป็นหลายแพ็กเกจ แพ็กเกจเหล่านั้นอาจอยู่ใน ที่เก็บข้อมูลที่ต่างกันและมีระดับการเข้าถึงต่างกัน ทดสอบแอปเหล่านี้ด้วยแพ็กเกจที่กำหนดให้กับที่เก็บข้อมูลต่างๆ เพื่อให้แน่ใจว่าแอปทำงานได้อย่างถูกต้อง