ไลบรารีบุคคลที่สามนี้นำธีม Material You ของ Android 12 มาสู่ทุกแอป

ต้องการรวมฟีเจอร์ธีมไดนามิกของ Material You เข้ากับแอปของคุณหรือไม่? ไลบรารีนี้ช่วยให้คุณเพิ่มได้แม้ในอุปกรณ์รุ่นเก่ากว่า Android 12

วัสดุคุณ คือการปรับปรุงภาษาการออกแบบของ Google ครั้งล่าสุด Google ให้ความสำคัญกับการปรับเปลี่ยนในแบบของคุณด้วย Material You ซึ่งเป็นสาเหตุว่าทำไม แอนดรอยด์ 12มีระบบธีมไดนามิกใหม่ที่เปลี่ยนสี UX ของคุณโดยใช้สี ดึงมาจากวอลเปเปอร์ของคุณ. ระบบธีมแบบไดนามิกนี้มีชื่อรหัสว่า "โมเนต์" ใช้งานได้จริงใน Android 12 Beta 2แต่ Google ยังไม่ได้จัดทำเอกสารเกี่ยวกับ API/การใช้งาน, จัดเตรียมไลบรารีสนับสนุน หรือเปิด Google Play เพื่อเผยแพร่แอปที่กำหนดเป้าหมาย API ระดับ 31 (Android 12) ดังนั้นนักพัฒนาส่วนใหญ่จึงไม่สนใจที่จะปรับแอปของตนให้รองรับธีมไดนามิกด้วยซ้ำ ระบบ.

นั่นไม่ได้หมายความว่าอย่างนั้น เลขที่ นักพัฒนากำลังเล่นกับระบบธีมของ Android 12 ผู้พัฒนาของ แอพอัตโนมัติยอดนิยม Tasker ได้สาธิตการรองรับธีมแบบไดนามิกในแอปของเขาโดยใช้ API อย่างเป็นทางการของ Android 12 ในทางกลับกัน นักพัฒนารายอื่น kdrag0n ได้สร้างระบบขึ้นมาใหม่ทั้งหมด โดยใช้อัลกอริธึมการแยกสีและการสร้างจานสีของเขาเอง Kdrag0n แชร์ซอร์สโค้ดสำหรับเอ็นจิ้นธีมของเขา และกำลังทำงานในไลบรารี Jetpack Compose และ Flutter ดังนั้นแอปของบุคคลที่สามที่สร้างขึ้นสำหรับระบบปฏิบัติการเวอร์ชันเก่าจึงสามารถนำแนวคิดของเขาไปใช้ "monet"

ตอนนี้ XDA ได้รับการยอมรับจากนักพัฒนาแล้ว ควินนี่899 ได้สร้างไลบรารีของเขาเองซึ่งอิงตามการใช้งาน "monet" ที่กำหนดเองของ kdrag0n (เช่น ของมัน ไม่ ขึ้นอยู่กับเครื่องมือธีมของ Google) นักพัฒนาสามารถรวมไลบรารี MonetCompat นี้เข้ากับแอพของตนเพื่อเพิ่มการรองรับสำหรับการกำหนดธีม UI ของแอพแบบไดนามิกตามวอลเปเปอร์ของผู้ใช้ ไลบรารีนี้ทำงานบนอุปกรณ์ที่ใช้ Android 5.0 ขึ้นไป (โดยใช้ Palette API ในโหมดความเข้ากันได้) และ Android 8.1 Oreo ขึ้นไปในโหมดปกติ ไลบรารีไม่สามารถแยกสีจากวอลเปเปอร์เคลื่อนไหวในเวอร์ชันก่อน Android 8.1 ได้เนื่องจากข้อจำกัดใน API ของแพลตฟอร์ม

สำหรับสาเหตุที่นักพัฒนาอาจต้องการใช้ไลบรารีนี้ Quinny899 เองก็อธิบายไว้ในหน้า GitHub ของโปรเจ็กต์ "ขณะนี้ยังไม่เป็นที่ทราบแน่ชัดว่า Google จะจัดเตรียมไลบรารีความเข้ากันได้แบบย้อนหลังสำหรับ Monet ด้วยการเปิดตัว Android 12 หรือไม่ ดังนั้นไลบรารีนี้อาจถูกแทนที่ด้วยไลบรารีอย่างเป็นทางการในที่สุด โปรเจ็กต์นี้ไม่มีการใช้รหัสที่เป็นกรรมสิทธิ์ของ Google ดังนั้นจึงได้รับใบอนุญาตจาก MIT เพื่อใช้ในแอปของบุคคลที่สาม"

แน่นอนว่าแอปแรกที่ใช้ MonetCompat ก็คือแอป DarQ ของ Quinny899 DarQ เป็นแอปที่ให้คุณสลับการตั้งค่าโหมดบังคับมืดของ Android ในแต่ละแอปได้ มัน เดิมทีใช้การเข้าถึงรูท เพื่อตั้งค่าคุณสมบัติของระบบแต่เป็น ปรับปรุงแล้ว เพื่อใช้เชลล์สคริปต์ ADB ที่ทำงานบนพีซีของผู้ใช้ ซึ่งจะทำให้ข้อกำหนดรูทลดลง ใน DarQ 2.0 ผู้ใช้ไม่จำเป็นต้องเรียกใช้สคริปต์ ADB จากพีซีอีกต่อไป เนื่องจากแอปได้รวมเข้าด้วยกันแล้ว ชิซูกุ. Shizuku เป็นแอปและบริการที่ช่วยให้แอปอื่นๆ เรียกใช้คำสั่งเชลล์หรือเข้าถึง API ด้วยสิทธิ์ผู้ใช้ ADB เชลล์ ให้คิดว่าเป็นแอปการจัดการ superuser แต่สำหรับการเข้าถึง ADB เชลล์ บน Android 11+ บริการ Shizuku สามารถเริ่มต้นได้ผ่านคุณสมบัติการแก้ไขจุดบกพร่องไร้สายในตัว ดังนั้นคุณจึงไม่ต้องใช้พีซีในการตั้งค่า DarQ อีกต่อไป ด้วยการย้ายไปที่ Shizuku ตอนนี้ DarQ ยังใช้ ProcessObserver แทนที่จะเป็น AccessibilityService ซึ่ง นักพัฒนาซอฟต์แวร์กล่าวว่าให้ DarQ ตรวจจับเมื่อแอปเปิดขึ้น (และใช้การตั้งค่าบังคับมืด) มากขึ้น อย่างรวดเร็ว.

ไม่ว่าด้วยเหตุผลใดก็ตาม หากคุณไม่ชอบสีที่สร้างโดย MonetCompat สำหรับแอป DarQ คุณสามารถแตะ "DarQ 2.0" สามครั้งเพื่อเปิดใช้งานตัวเลือกนักพัฒนาในแอปได้ ที่นี่ คุณสามารถเลือก "Monet Color Picker" เพื่อเปลี่ยนสีที่คุณต้องการให้แอปใช้

บันทึกการเปลี่ยนแปลง DarQ 2.0

  • DarQ 2.0 มีการออกแบบใหม่ทั้งหมด พร้อมด้วยองค์ประกอบ Material You และสีของ Monet (ตามวอลเปเปอร์)
  • ตอนนี้สคริปต์ ADB หายไปแล้ว และ Shizuku จะจัดการบริการบนอุปกรณ์ที่ไม่ใช่รูทแทน หากคุณไม่รู้ว่า Shizuku คืออะไร ให้คิดว่ามันเหมือนกับแอป Superuser สำหรับอุปกรณ์ที่ไม่ใช่รูท เริ่ม Shizuku ผ่าน ADB บนคอมพิวเตอร์ (หรือแม้แต่บนโทรศัพท์ของคุณบน Android 11 ขึ้นไป) หนึ่งครั้งต่อการบูต และแอปใดก็ตามที่ใช้ Shizuku สามารถใช้บริการ ADB ได้
  • บริการการเข้าถึงได้ถูกแทนที่ด้วย ProcessObserver โดยใช้บริการ Shizuku/Root ซึ่งเร็วกว่าการช่วยการเข้าถึงมาก ดังนั้นแอพที่ก่อนหน้านี้เปิดเร็วเกินกว่าจะรองรับอาจใช้งานได้แล้ว
  • การปรับปรุงธีมมืดอัตโนมัติเมื่อพระอาทิตย์ขึ้น/พระอาทิตย์ตกเพื่อให้ทำงานได้ดีขึ้นบนอุปกรณ์ต่างๆ
  • การปรับปรุงโมดูล Xposed สำหรับแอปที่พยายามบล็อกการใช้ Force Dark เพื่อป้องกันไม่ให้ทำเช่นนั้น

อ่านเพิ่มเติม

กระทู้ฟอรัม DarQ XDA ||| ไลบรารี MonetCompat บน GitHub