ทุกสิ่งที่เรารู้จนถึงตอนนี้เกี่ยวกับ Dark Mode ของ Android Q

Android เวอร์ชันถัดไปของ Google, Android 10 Q จะมีโหมดมืดทั้งระบบ แอพใน Android Q จะจัดการกับธีมสีเข้มได้อย่างไร

ในตัวเรา โพสต์แรก รายละเอียดการเปลี่ยนแปลงที่เราพบจาก Android Q build ที่อยู่ระหว่างการพัฒนาที่เราได้รับ เราได้พูดคุยสั้น ๆ เกี่ยวกับโหมดมืดที่ทำให้ทุกคนตื่นเต้น สรุปได้ว่าโหมดมืดในตัวของ Google ใน Android Q สามารถเปิดใช้งานได้ผ่านตัวเลือก "โหมดมืด" ใหม่ในการตั้งค่าการแสดงผล โหมดมืดสามารถปิดได้ตลอดเวลา เปิดตลอดเวลา หรือเปิดใช้งานโดยอัตโนมัติในเวลากลางคืนและปิดใช้งานในตอนเช้า โหมดมืดจะกำหนดธีมให้กับ SystemUI (แผงระดับเสียง เมนูเปิด/ปิด แผงการตั้งค่าด่วน การแจ้งเตือน) แอปการตั้งค่า และเฟรมเวิร์ก (สีเน้นเสียง ฯลฯ)

ด้านบน: โหมดมืดใน Android Q บน Google Pixel 3 XL ด้านล่าง: ธีมแสงใน Android Pie บน Google Pixel 2 XL

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

Google Chrome ยังคงแก้ไขข้อบกพร่องต่างๆ ก่อน Google I/O 2019 Google ยังได้เริ่มสนับสนุนให้นักพัฒนาแอปบุคคลที่สามทำ โอบกอดธีมสีเข้ม ในแอปของพวกเขาเนื่องจากบริษัทยอมรับว่ามันยอดเยี่ยมสำหรับอายุการใช้งานแบตเตอรี่ (อย่างน้อยบนสมาร์ทโฟนที่มีจอแสดงผล OLED)

เพื่อช่วยให้นักพัฒนาอัปเดตแอปของตนโดยรองรับโหมดมืดของ Android Q Google จึงเสนอตัวเลือกสำหรับนักพัฒนาใหม่ที่ดูเหมือนว่าจะบังคับให้แอปทั้งหมดเปลี่ยนเป็นโหมดมืด ตัวเลือกนี้ไม่ได้มีไว้สำหรับผู้ใช้ที่ต้องการโหมดมืดทุกสิ่ง เนื่องจากระบบจะเลือกสีที่เหมาะสมสำหรับแอปทั้งหมดที่ไม่มีโหมดมืดเนทีฟได้ยาก โชคดีที่ Google ได้วางรากฐานสำหรับแอปเพื่อรองรับโหมดมืดแล้ว และมีแอปจำนวนมากอยู่แล้ว ดูดีเมื่อเปิดใช้งานตัวเลือกแทนที่โหมดมืดของ Android Q แม้ว่าแอปจะไม่มีโหมดมืดที่ผู้ใช้ต้องเผชิญ สลับ นี่คือคอลเลกชันภาพหน้าจอจาก 24 แอพที่แตกต่างกันซึ่งแสดงลักษณะที่ปรากฏเมื่อบังคับใช้โหมดมืดโดยใช้การสลับโหมดแทนที่โหมดมืดของ Android Q ไม่ใช่ทุกแอปจะดูดีเท่าที่ฉันจะแสดงให้คุณดูด้านล่าง

การใช้โหมดมืดใน Android Q

ใน API ระดับ 8 (Android 2.2 Froyo) Google เปิดตัว - รอบคัดเลือกกลางคืน สำหรับทรัพยากร นักพัฒนาแอปสามารถสลับระหว่างโหมดกลางวันและกลางคืนได้โดยใช้ setNightMode UiModeManager. อย่างไรก็ตาม setNightMode กำหนดให้อุปกรณ์อยู่ในโหมดรถยนต์หรือโหมดเชื่อมต่อหากอุปกรณ์อยู่ที่ระดับ API 22 หรือต่ำกว่า แอพคอมแพต v23.2 นำการใช้งาน DayNight มาใช้ โดยปล่อยให้แอปอย่างไคลเอนต์ Reddit สลับระหว่างธีมกลางวันและกลางคืนโดยอัตโนมัติตามเวลาของวันโดยใช้ AppCompatDeletegate.setDefaultNightMode() API ระดับ 28 (Android 9 Pie) ทำให้ MODE_NIGHT_FOLLOW_SYSTEM (ค่าเริ่มต้นของ setDefaultNightMode()) เป็นไปตามการตั้งค่าระบบที่ผู้ใช้กำหนดในการตั้งค่า -> ตัวเลือกนักพัฒนา -> โหมดกลางคืน Google นั่นเอง กำลังทำงานอยู่ การปรับปรุง DayNight API ใน AppCompat โดยเฉพาะอย่างยิ่งในเรื่อง "ปัญหาที่พบบ่อย" เช่น ปัญหาเกี่ยวกับ WebView สุดท้ายนี้ Google ได้เปิดใช้งานแล้ว การตรวจจับโหมดกลางคืน และมี แอพที่ถูกบล็อก ปราศจาก MODIFY_DAY_NIGHT_MODE ลายเซ็น / การอนุญาตแบบมีสิทธิพิเศษในกรอบงานของ Android Q การเปลี่ยนแปลงครั้งหลังหมายความว่าแอปไม่สามารถปรับเปลี่ยนโหมดกลางคืนทั้งระบบได้อีกต่อไป ซึ่งเป็นสิ่งที่ทำให้เกิดข้อบกพร่องของ Messages ล่าสุดเพื่อสร้างความสับสนให้กับผู้ใช้ใน Android Pie

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

การบังคับใช้โหมดมืดใน Android Q

แอปพลิเคชันต่างๆ เช่น Snapchat, Slack, อีเมล AOSP, AOSP Messaging, AOSP Dialer และอื่นๆ อีกมากมายมีตัวระบุทรัพยากร -คืน แม้ว่าจะไม่ได้ให้ผู้ใช้มีวิธีใช้แอปด้วยโหมดกลางคืนก็ตาม แอพอื่นๆ ที่ไม่มีตัวระบุทรัพยากรกลางคืนแบบฮาร์ดโค้ด เช่น Facebook และ Instagram อาจดูดีหรือไม่ดีเมื่อเปิดธีมสีเข้มแทนที่ของ Android Q Instagram ดูดี ในขณะที่ Facebook ต้องการการทำงานมากมาย จากการทดสอบของฉัน ตัวเลือกสำหรับนักพัฒนาโหมดกลางคืนแบบแทนที่นั้นแตกต่างจากการกลับสีอย่างมากในการตั้งค่าการช่วยสำหรับการเข้าถึง—บางที Google ตั้งใจที่จะใช้ฟีเจอร์นี้เพื่อช่วยให้นักพัฒนาสร้างโหมดมืดสำหรับแอพของพวกเขาในขณะที่ตัวอย่าง Android Q Developer อย่างต่อเนื่อง เราจะไม่ทราบแน่ชัดว่าคุณลักษณะนี้ทำงานอย่างไรจนกว่าจะมีการเปิดตัวซอร์สโค้ดสำหรับ Android Q หรือ Google จะเผยแพร่เอกสารประกอบสำหรับคุณลักษณะนี้

การแทนที่โหมดมืดใน Android Q นั้นใช้งานไม่ได้มากที่สุดในแอปที่ใช้ WebViews

ใน "ต้นทุนของสีพิกเซล" นำเสนอโดย Chris Banes และ Alan Viverette จาก Google ทั้งคู่สนับสนุนให้นักพัฒนาใช้ธีมสีเข้มโดย:

  • การใช้ DayNight API ใน AppCompat วิดเจ็ตสต็อกจะตอบสนองต่อการเปลี่ยนแปลงในโหมดกลางคืนโดยอัตโนมัติ หรือคุณสามารถเพิ่มสวิตช์ในแอปของคุณได้เช่นกัน
  • การใช้ธีมซ้อนทับแบบไดนามิกที่รันไทม์โดยการเรียก getTheme().applyStyle() ข้อมูลเพิ่มเติมสามารถพบได้ในการพูดคุยก่อนหน้านี้ ที่นี่.
  • การจัดโครงสร้างแอปของคุณให้อาศัยการใช้แอตทริบิวต์ของธีม เช่น colorForeground, colorControlNormal, colorAccent เป็นต้น
  • การเพิ่มคุณสมบัติ -คืนสำหรับทรัพยากรของคุณ -ตัวคัดเลือกกลางคืนควรใช้สำหรับทรัพยากรที่แยกสีธีมได้ยาก
  • การเปิดใช้งานโหมดสีกลับด้าน (การตั้งค่า --> สี --> การกลับสี) เพื่อให้เห็นภาพคร่าวๆ ว่าแอปของคุณจะมีลักษณะอย่างไรในโหมดมืด หากคุณต้องการจับภาพหน้าจอแอปของคุณที่มีสีกลับด้าน คุณควรทราบว่า การกลับสีจะไม่ปรากฏในภาพหน้าจอ.

เมื่อเปิดตัว โหมดมืดของ Android Q จะขยายไปยังแอป Google บุคคลที่หนึ่ง แต่เราหวังว่าแอปของบุคคลที่สามจะนำธีมสีเข้มมาใช้กับแอปของตนอย่างรวดเร็ว นอกจากนี้ เราหวังว่าจะเห็นแอปจำนวนมากขึ้นเปลี่ยนเป็นธีมกลางคืนโดยอัตโนมัติเมื่อผู้ใช้เปิดใช้งานการตั้งค่าทั้งระบบ ตอนนี้แอปเดียวที่ฉันเคยเห็นว่าเปลี่ยนธีมโดยอัตโนมัติเมื่อเปิดใช้งานโหมดมืดทั้งระบบของ Android Q คือ Google Contacts เราจะได้เห็นว่าสิ่งต่างๆ จะเป็นอย่างไรในอีกไม่กี่เดือนข้างหน้าเมื่อ Android Q เปิดตัว แต่สำหรับนักพัฒนาทุกคนที่อ่านข้อความนี้: จงยอมรับด้านมืด!

ด้วยข้อมูลจากผู้สนับสนุน LineageOS โจอี้ ริซโซลี.