Diese Drittanbieterbibliothek bringt das Material You-Design von Android 12 in jede App

Möchten Sie die dynamische Designfunktion von Material You in Ihre App integrieren? Mit dieser Bibliothek können Sie sie auch auf Geräten hinzufügen, die älter als Android 12 sind.

Material Sie ist die neueste Überarbeitung der Designsprache von Google. Bei Material You legt Google Wert auf Personalisierung, weshalb in Android 12gibt es ein neues dynamisches Designsystem, das Ihre UX mithilfe von Farben neu einfärbt aus Ihrem Hintergrundbild extrahiert. Dieses dynamische Themensystem mit dem Codenamen „monet“ ging in Android 12 Beta 2 live, aber Google muss die APIs/Implementierung noch dokumentieren, unterstützende Bibliotheken bereitstellen oder Google Play für die Veröffentlichung von Apps öffnen, die auf APIs abzielen Level 31 (Android 12), daher hat sich die überwiegende Mehrheit der Entwickler noch nicht einmal die Mühe gemacht, ihre Apps so anzupassen, dass sie das dynamische Design unterstützen System.

Das heißt nicht, dass das so ist NEIN Der Entwickler spielt jedoch mit dem Designsystem von Android 12. Der Entwickler des

beliebte Automatisierungs-App Tasker hat in seiner App mithilfe der offiziellen APIs von Android 12 die Unterstützung dynamischer Designs demonstriert. Andererseits hat ein anderer Entwickler, kdrag0n, das System komplett neu erstellt unter Verwendung seines eigenen Farbextraktions- und Palettengenerierungsalgorithmus. Kdrag0n hat den Quellcode für seine Theme-Engine geteilt und arbeitet an einer Jetpack Compose- und Flutter-Bibliothek, damit Drittanbieter-Apps, die für ältere Betriebssystemversionen entwickelt wurden, seine Version von „monet“ umsetzen können.

Jetzt XDA-anerkannter Entwickler Quinny899 hat eine eigene Bibliothek erstellt, die auf der benutzerdefinierten „monet“-Implementierung von kdrag0n basiert (d. h. es ist nicht basierend auf der Theme-Engine von Google). Entwickler können diese MonetCompat-Bibliothek in ihre Apps integrieren, um Unterstützung für die dynamische Gestaltung der Benutzeroberfläche ihrer App basierend auf dem Hintergrundbild des Benutzers hinzuzufügen. Diese Bibliothek funktioniert auf Geräten mit Android 5.0 und höher (unter Verwendung der Palette API im Kompatibilitätsmodus) und Android 8.1 Oreo und höher im normalen Modus. Aufgrund von Einschränkungen in den Plattform-APIs kann die Bibliothek bei Versionen vor Android 8.1 keine Farben aus Live-Hintergrundbildern extrahieren.

Warum ein Entwickler diese Bibliothek nutzen möchte, erklärt Quinny899 selbst auf der GitHub-Seite des Projekts. „Es ist derzeit auch nicht bekannt, ob Google mit der Veröffentlichung von Android 12 eine eigene Abwärtskompatibilitätsbibliothek für Monet bereitstellen wird, sodass diese Bibliothek möglicherweise irgendwann durch eine offizielle ersetzt wird.“ In diesem Projekt wird kein proprietärer Google-Code verwendet und daher ist es mit der MIT-Lizenz für die Verwendung in Apps von Drittanbietern lizenziert.“

Die erste App, die MonetCompat nutzt, ist natürlich Quinny899s eigene DarQ-App. DarQ ist eine App, mit der Sie die Einstellung für den erzwungenen Dunkelmodus von Android für jede einzelne App umschalten können. Es Ursprünglich wurde der Root-Zugriff verwendet um eine Systemeigenschaft festzulegen, war es aber Aktualisiert um ein ADB-Shell-Skript zu verwenden, das auf dem PC des Benutzers ausgeführt wird, wodurch die Root-Anforderung entfällt. In DarQ 2.0 müssen Benutzer das ADB-Skript nicht mehr von ihrem PC aus ausführen, da die App jetzt integriert ist Shizuku. Shizuku ist eine App und ein Dienst, mit denen andere Apps Shell-Befehle ausführen oder mit ADB-Shell-Benutzerrechten auf APIs zugreifen können. Stellen Sie sich Shizuku wie eine Superuser-Verwaltungs-App vor, jedoch mit ADB-Shell-Zugriff. Unter Android 11+ kann der Shizuku-Dienst über die integrierte drahtlose Debugging-Funktion gestartet werden, sodass Sie zum Einrichten von DarQ überhaupt keinen PC mehr benötigen. Mit dem Umzug nach Shizuku verwendet DarQ nun auch einen ProcessObserver anstelle eines AccessibilityService, den der Der Entwickler sagt, dass DarQ viel besser erkennen kann, wann eine App geöffnet wurde (und somit die Einstellung „Dunkel erzwingen“ anwenden kann). schnell.

Wenn Ihnen die von MonetCompat für die DarQ-App generierte Farbe aus irgendeinem Grund nicht gefällt, können Sie dreimal auf „DarQ 2.0“ tippen, um die Entwickleroptionen in der App zu aktivieren. Hier können Sie „Monet Color Picker“ auswählen, um die Farbe zu ändern, die die App verwenden soll.

DarQ 2.0-Änderungsprotokoll

  • DarQ 2.0 hat ein völlig neues Design mit Material You-Elementen und Monet-Farben (auf Tapetenbasis).
  • Das ADB-Skript ist jetzt weg, und stattdessen verwaltet Shizuku den Dienst auf Nicht-Root-Geräten. Wenn Sie nicht wissen, was Shizuku ist, stellen Sie es sich wie eine Superuser-App für Nicht-Root-Geräte vor. Starten Sie Shizuku über ADB auf einem Computer (oder sogar auf Ihrem Telefon mit Android 11 und höher) einmal pro Start, und jede App, die Shizuku verwendet, kann ADB-Dienste nutzen.
  • Der Accessibility Service wurde durch einen ProcessObserver ersetzt, der den Shizuku/Root-Dienst nutzt. Dies ist viel schneller als die Barrierefreiheit, sodass Apps, die zuvor zu schnell geöffnet wurden, um unterstützt zu werden, jetzt möglicherweise funktionieren.
  • Verbesserungen am Auto-Dunkel-Design bei Sonnenaufgang/Sonnenuntergang, damit es auf verschiedenen Geräten besser funktioniert.
  • Verbesserungen am Xposed-Modul für Apps, die versuchen, die Verwendung von Force Dark zu blockieren und dies zu verhindern.

mehr lesen

DarQ XDA-Forum-Thread ||| MonetCompat-Bibliothek auf GitHub