กลไกจัดการธีม Monet ของ Material You คือจุดเด่นสำคัญของ Android 12 และนี่คือวิธีการทำงาน

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

ลิงค์ด่วน

  • กลไกการทำงานของธีม Monet ทำงานอย่างไร
  • เกิดอะไรขึ้นกับ Runtime Resource Overlays (RRO)
  • วัสดุ คุณยังคงปรับปรุงอยู่
  • การเปลี่ยนแปลงใน Android 13

การเปลี่ยนแปลงครั้งใหญ่ที่สุดใน แอนดรอยด์ 12 เป็น วัสดุคุณซึ่งเป็นเวอร์ชันล่าสุดของภาษาดีไซน์ Material ของ Google วัสดุที่คุณตามที่ Google อธิบาย "พยายามสร้างการออกแบบที่เป็นส่วนตัวสำหรับทุกสไตล์ เข้าถึงได้ทุกความต้องการ มีชีวิตชีวาและปรับเปลี่ยนได้สำหรับทุกหน้าจอเมื่อพัฒนา Android 12 Google ได้สร้างเอ็นจิ้นธีมใหม่ชื่อรหัสว่า "monet" ซึ่งสร้างชุดสีพาสเทลที่หลากหลาย มาจากวอลเปเปอร์ของผู้ใช้. สีเหล่านี้จะถูกนำไปใช้กับส่วนต่างๆ ของระบบ และค่าต่างๆ จะถูกแสดงผ่านทาง API ที่แอปพลิเคชันของผู้ใช้สามารถเรียกใช้ได้ ทำให้แอปตัดสินใจว่าต้องการเปลี่ยนสีด้วยหรือไม่ UI Google ทุ่มเต็มที่กับ Material You และบริษัทได้อัปเดตแอปส่วนใหญ่เพื่อรวมสีแบบไดนามิก

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

Google ใส่ไว้ครับ"วัสดุคือระบบแนวทาง องค์ประกอบ และเครื่องมือที่ปรับเปลี่ยนได้ซึ่งสนับสนุนแนวทางปฏิบัติที่ดีที่สุดของ การออกแบบส่วนต่อประสานกับผู้ใช้” โดยมีจุดเด่นคือจานสีพาสเทลแบบแบน ความลึก แสงที่นุ่มนวล และสมจริง ฟิสิกส์. Android 9 Pie มองเห็นการมาถึงของ Material Design 2 แม้ว่าจะไม่มีการปรับปรุงด้านภาพครั้งใหญ่เท่าการทำซ้ำ Material Design ครั้งแรกก็ตาม Android 12 เห็นการเปิดตัวของ การออกแบบวัสดุ 3ซึ่งเป็นการยกเครื่องครั้งสำคัญยิ่งขึ้น

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

กลไกการทำงานของธีม Monet ทำงานอย่างไร

เอ็นจิ้นธีม "monet" เป็นที่ที่ความมหัศจรรย์เกิดขึ้นเมื่อพูดถึง Material You และเป็นอัลกอริธึมที่จะตัดสินว่าสีใดจะถูกเลือกจากวอลเปเปอร์ “Monet” ถูกเพิ่มใน AOSP ใน Android 12L นักพัฒนา ROM แบบกำหนดเองยังสามารถใช้สิ่งนี้ได้ การใช้โอเพ่นซอร์สของ "monet". นักพัฒนาแอปบุคคลที่สามนั้นฟรี เพื่อเพิ่มการรองรับสีไดนามิก ในตอนนี้ แม้ว่าปัจจุบันจะใช้งานได้กับอุปกรณ์จำนวนจำกัดเท่านั้นก็ตาม

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

A1-600 (@android:color/system_accent1_600)
currently: #626200

เมื่อผู้ใช้เปลี่ยนวอลเปเปอร์ในอุปกรณ์ Android 12 รูปภาพจะถูกวิเคราะห์เพื่อเลือกสี และเลือกสีหลัก รอง อุดมศึกษา และข้อผิดพลาดโดยใช้อัลกอริธึมโดยใช้ค่าเริ่มต้น สี. นอกจากนี้ ยังมีการเลือกสีที่เป็นกลางสองสีซึ่งทำให้ Material You เป็นโทนสีโดยรวม ในขณะเดียวกัน มีการใช้ทฤษฎีสีและกฎการเข้าถึง จากสีเหล่านี้ อัลกอริธึมจะสร้างชุดโทนสีตั้งแต่ 0% ความสว่าง (สีดำ) ถึง 100% (สีขาว) ธีมแบบไดนามิกหรือธีมแบบกำหนดเองใช้ค่าในจานสีเหล่านี้เพื่อตั้งค่าแอตทริบิวต์ของธีมสำหรับช่วงสีนั้น โดยแยกสีได้มากถึง 128 สีจากวอลเปเปอร์ไปจนถึงปริภูมิสี CIELAB เป็นตัวกลาง จากนั้นสีเหล่านั้น แมปกับ CAM16. CAM16 สี ลักษณะที่ปรากฏ โอเดล ใช้สำหรับการเรียงลำดับและการกรองสีเพื่อกำหนดสีเมล็ดพืชจริง จากนั้นจานสีจะถูกสร้างขึ้นโดยใช้สีเมล็ดพืชนั้น หลังจากนั้นสีเหล่านั้นจะถูกแมปกลับไปเป็น RGB เพื่อตั้งค่าสีทั่วทั้งระบบ

CIELAB บางครั้งเรียกอีกอย่างว่า "L*a*b*" L* สำหรับความสว่าง/ความสว่างที่รับรู้ และ a* และ b* สำหรับสี่สีอันเป็นเอกลักษณ์ของการมองเห็นของมนุษย์ ได้แก่ แดง เขียว น้ำเงิน และเหลือง ความสว่างใช้สำหรับคำนวณอัตราส่วนคอนทราสต์ รับประกันว่าอ่านง่าย เมื่อนำไปใช้แล้ว คุณจะได้สีสวย ๆ ทั่วทั้งระบบซึ่งสามารถนำไปใช้ใน UI ของระบบ แอพ และอื่น ๆ อีกมากมาย

เกิดอะไรขึ้นกับ Runtime Resource Overlays (RRO)

RRO ไม่ได้หายไปไหน และวัสดุที่คุณทำงานผ่าน Fabricated Overlays API ที่ผ่านมาเราได้พูดคุยถึงเรื่อง Fabricated Overlays สามารถนำมาใช้เพื่อนำธีมแบบไม่มีรูทกลับมาได้อย่างไร. Fabricated Overlays เป็นส่วนเสริมใหม่ของ Android 12 และทำงานแตกต่างจาก RRO เล็กน้อย ประการแรก RRO ทำงานผ่าน APK โอเวอร์เลย์ที่ติดตั้งบนอุปกรณ์ ในขณะที่ Fabricated Overlay เพียงบอกแอปว่าสีอะไร ใช้.

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

ถึงกระนั้น ข้อจำกัดเหล่านี้ไม่สำคัญเลยเมื่อพูดถึง Material You และเงิน Fabricated Overlays ช่วยให้ระบบใช้สีและมิติซ้อนทับได้ทันที โดยไม่ต้องรอให้ APK คอมไพล์หรือระบบรีบูตเพื่อใช้

วัสดุ คุณยังคงปรับปรุงอยู่

วัสดุ สีไดนามิกของ You ไม่ใช่ปัญหาอย่างแน่นอน และโดยพื้นฐานแล้วมันก็ไม่ได้ยากขนาดนั้น ตัวอย่างเช่น หากคุณเปลี่ยนวอลเปเปอร์อย่างรวดเร็ว คุณก็สามารถทำได้ สร้างการโจมตีแบบปฏิเสธการให้บริการได้อย่างมีประสิทธิภาพ. มิชาล ราห์มาน ได้รับการยืนยันแล้ว การโจมตีแบบปฏิเสธบริการนี้ได้รับการแก้ไขแล้วใน Android 12L ฉันหวังเป็นอย่างยิ่งว่า Material You จะได้รับการปรับปรุงในเวอร์ชันต่อๆ ไป แม้ว่าฉันชอบมันและแนวคิดของมัน แต่มันก็ยังต้องปรับปรุงอีกมาก จากประสบการณ์ส่วนตัวของฉันเอง ฉันรู้สึกว่าความบั๊กของมันนั้นเป็นส่วนหนึ่งที่ทำให้มันไม่ได้ถูกเพิ่มเข้าไปใน AOSP... และความจริงที่ว่า Google ทำให้เป็นช่วงเวลาพิเศษสำหรับซีรีย์ Pixel อย่างมีประสิทธิภาพ ฉันยังประสบปัญหาเมื่อเร็ว ๆ นี้หลังจากอัปเดตแพตช์เดือนธันวาคมของ Android 13 บน Google Pixel 7 ของฉัน Pro ซึ่งฉันติดตามในภายหลังใน logcat ว่ามีสาเหตุมาจาก Material You และ Google Pixel ตัวเรียกใช้งาน

น่ารำคาญ Android 12 ลบตัวเลือกแบบอักษรที่กำหนดเองและไอคอนที่กำหนดเอง เพื่อสนับสนุนธีมไดนามิกของ Material You ระบบธีมเปิดตัวครั้งแรกด้วยแอป Pixel Themes และใช้เฟรมเวิร์กธีมแบบโอเวอร์เลย์ของ Android แม้ว่าระบบธีม Material You ของ Android 12 จะปรับแต่งได้มากกว่า แต่ก็ไม่มีสไตล์ที่กำหนดเองที่ Google เปิดตัวใน Android 10 ใน ความคิดเห็น ใน Google Issue Tracker นั้น Googler ให้เหตุผลในการลบออกดังต่อไปนี้:

“ฟีเจอร์สไตล์ที่กำหนดเอง (แบบอักษร รูปร่างไอคอน ชุดไอคอน และสีที่ถูกเน้น) ใน R กำลังถูกแทนที่ด้วยฟีเจอร์ธีมไดนามิกใหม่ที่เราแนะนำใน S เราเห็นว่าฟีเจอร์ธีมไดนามิกใหม่มีความทันสมัยและชาญฉลาดยิ่งขึ้น ประสบการณ์ที่เรียบง่ายและน่ารื่นรมย์ที่เราหวังว่าผู้ใช้ทุกคนจะเพลิดเพลิน”

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

การเปลี่ยนแปลงใน Android 13

Google ปรับปรุงบน Material You สำหรับการเปิดตัวของ แอนดรอยด์ 13และหนึ่งในการปรับปรุงแรกๆ ก็คือการเพิ่มสไตล์สีพิเศษอีก 5 แบบ สไตล์สีใหม่เหล่านี้เรียกว่า TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW และ FRUIT_SALAD เราได้จับภาพหน้าจอและแสดงไว้ด้านล่าง

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

Android 13 ยังนำเสนอความสามารถสำหรับนักพัฒนาในการมีไอคอนแอปที่มีธีมด้วย เพื่อให้สามารถใช้งานธีมของระบบได้ นักพัฒนาสามารถสนับสนุนสิ่งนี้ได้โดยการระบุทั้งไอคอนแบบปรับเปลี่ยนได้และไอคอนแอพแบบโมโนโครมในแอพของตน ตัวเรียกใช้งานยังคงต้องรองรับไอคอนที่มีธีม เช่น ตัวเรียกใช้งาน Google Pixel


ขอขอบคุณสมาชิกอาวุโส XDA kdrag0nผู้พัฒนาทั้ง ProtonAOSP และ การสร้างระบบธีม Material You ขึ้นใหม่สำหรับความช่วยเหลือในบทความนี้!