ที่เก็บข้อมูลสแตนด์บายแอป

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 ขึ้นไป

ประเมินที่เก็บข้อมูลลําดับความสําคัญ

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

  • โทร getAppStandbyBucket()

  • เรียกใช้คำสั่งต่อไปนี้ในหน้าต่างเทอร์มินัล

    adb shell am get-standby-bucket PACKAGE_NAME

ระบบจะควบคุมแอปของคุณเมื่อใดก็ตามที่วางอยู่ในที่เก็บข้อมูลสแตนด์บายแอป ที่มีค่ามากกว่า STANDBY_BUCKET_ACTIVE (10)

แนวทางปฏิบัติแนะนำ

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

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

  • หากแอปไม่ได้แสดงการแจ้งเตือนเมื่อได้รับลำดับความสำคัญสูง ข้อความ Firebase Cloud Messaging (FCM) ที่ผู้ใช้โต้ตอบด้วยไม่ได้ และโปรโมตแอปนั้นไปยังที่เก็บข้อมูลที่ใช้งานอยู่ อันที่จริง เป้าหมายเดียว สำหรับข้อความ FCM ที่มีลำดับความสำคัญสูง คือการส่งการแจ้งเตือนไปยังผู้ใช้ ดังนั้น ในกรณีนี้ ต้องไม่เกิดขึ้น ใน 12L (API ระดับ 32) และต่ำกว่า หากทำเครื่องหมายข้อความ FCM เป็นสำคัญสูงอย่างไม่เหมาะสมเมื่อข้อความไม่ได้ทริกเกอร์การโต้ตอบของผู้ใช้ อาจทำให้ข้อความในอนาคตมีลำดับความสำคัญลดลง

  • หากแยกแอปออกเป็นหลายแพ็กเกจ แพ็กเกจเหล่านั้นอาจอยู่ใน ที่เก็บข้อมูลที่ต่างกันและมีระดับการเข้าถึงต่างกัน ทดสอบแอปเหล่านี้ด้วยแพ็กเกจที่กำหนดให้กับที่เก็บข้อมูลต่างๆ เพื่อให้แน่ใจว่าแอปทำงานได้อย่างถูกต้อง