Wilt u de dynamische themafunctie van Material You in uw app integreren? Met deze bibliotheek kun je deze zelfs toevoegen op apparaten ouder dan Android 12.
Materiaal Jij is de nieuwste herziening van de ontwerptaal van Google. Met Material You legt Google de nadruk op personalisatie, en dat is de reden waarom in Androïde 12, is er een nieuw dynamisch themasysteem dat uw UX opnieuw kleurt met behulp van kleuren uit uw behang gehaald. Dit dynamische themasysteem, met de codenaam "monet", live gegaan in Android 12 Bèta 2, maar Google moet de API's/implementatie nog documenteren, ondersteuningsbibliotheken bieden of Google Play openstellen voor het publiceren van apps die op API zijn gericht niveau 31 (Android 12), dus de overgrote meerderheid van de ontwikkelaars heeft niet eens de moeite genomen om hun apps aan te passen om het dynamische thema te ondersteunen systeem.
Dat betekent niet dat Nee De ontwikkelaar speelt echter met het themasysteem van Android 12. De ontwikkelaar van de populaire automatiseringsapp Tasker
heeft ondersteuning voor dynamische thema's in zijn app gedemonstreerd met behulp van de officiële API's van Android 12. Aan de andere kant heeft een andere ontwikkelaar, kdrag0n, het systeem in zijn geheel opnieuw gemaakt met behulp van zijn eigen algoritme voor kleurextractie en paletgeneratie. Kdrag0n deelde de broncode voor zijn thema-engine en werkt aan een Jetpack Compose- en Flutter-bibliotheek, zodat apps van derden die voor oudere OS-versies zijn gebouwd, zijn kijk op 'monet' kunnen implementeren.Nu, XDA erkende ontwikkelaar Quinny899 heeft een eigen bibliotheek gemaakt die gebaseerd is op de aangepaste "monet"-implementatie van kdrag0n (dwz. zijn niet gebaseerd op de thema-engine van Google). Ontwikkelaars kunnen deze MonetCompat-bibliotheek in hun apps integreren om ondersteuning toe te voegen voor het dynamisch thematiseren van de gebruikersinterface van hun app op basis van de achtergrond van de gebruiker. Deze bibliotheek werkt op apparaten met Android 5.0 en hoger (met behulp van de Palette API in compatibiliteitsmodus) en Android 8.1 Oreo en hoger in de normale modus. De bibliotheek kan geen kleuren extraheren uit live achtergronden op versies vóór Android 8.1 vanwege beperkingen in de platform-API's.
Waarom een ontwikkelaar deze bibliotheek zou willen gebruiken, legt Quinny899 zelf uit op de GitHub-pagina van het project. "Het is momenteel ook niet bekend of Google zijn eigen achterwaartse compatibiliteitsbibliotheek voor Monet zal aanbieden met de release van Android 12, dus deze bibliotheek kan uiteindelijk worden vervangen door een officiële bibliotheek. In dit project wordt geen eigen Google-code gebruikt en daarom is het gelicentieerd met de MIT-licentie voor gebruik in apps van derden."
De eerste app die MonetCompat gebruikt, is uiteraard Quinny899's eigen DarQ-app. DarQ is een app waarmee je de geforceerde donkere modus van Android per app kunt wijzigen. Het oorspronkelijk root-toegang gebruikt om een systeemeigenschap in te stellen, maar was bijgewerkt om een ADB-shellscript te gebruiken dat op de pc van de gebruiker wordt uitgevoerd, waardoor de rootvereiste wordt geschrapt. In DarQ 2.0 hoeven gebruikers het ADB-script niet langer vanaf hun pc uit te voeren, omdat de app nu is geïntegreerd Shizuku. Shizuku is een app en service waarmee andere apps shell-opdrachten kunnen uitvoeren of toegang kunnen krijgen tot API's met ADB-shell-gebruikersrechten - beschouw het als een superuser-beheer-app maar dan voor ADB-shell-toegang. Op Android 11+ kan de Shizuku-service worden gestart via de ingebouwde draadloze debugging-functie, zodat je helemaal geen pc meer nodig hebt om DarQ in te stellen. Met de overstap naar Shizuku gebruikt DarQ nu ook een ProcessObserver in plaats van een AccessibilityService, die de De ontwikkelaar zegt dat DarQ veel meer kan detecteren wanneer een app is geopend (en dus de force dark-instelling kan toepassen). snel.
Als u, om welke reden dan ook, de kleur die MonetCompat voor de DarQ-app genereert, niet leuk vindt, kunt u driemaal op "DarQ 2.0" tikken om de ontwikkelaarsopties in de app in te schakelen. Hier kunt u "Monet Color Picker" selecteren om de kleur te wijzigen die u door de app wilt gebruiken.
Wijzigingenlogboek voor DarQ 2.0
- DarQ 2.0 heeft een geheel nieuw ontwerp, met Material You-elementen en Monet-kleuren (op basis van behang).
- Het ADB-script is nu verdwenen en in plaats daarvan handelt Shizuku de service af op niet-rootapparaten. Als je niet weet wat Shizuku is, beschouw het dan als een Superuser-app voor niet-rootapparaten. Start Shizuku één keer per keer opstarten via ADB op een computer (of zelfs op je telefoon op Android 11 en hoger), en elke app die Shizuku gebruikt, kan ADB-services gebruiken.
- De Accessibility Service is vervangen door een ProcessObserver, die gebruik maakt van de Shizuku/Root-service. Dit is veel sneller dan Toegankelijkheid, dus apps die voorheen te snel werden geopend om te worden ondersteund, werken nu mogelijk.
- Verbeteringen aan het automatische donkere thema bij zonsopgang/zonsondergang, zodat het beter werkt op verschillende apparaten.
- Verbeteringen aan de Xposed-module voor apps die het gebruik van force dark proberen te blokkeren, waardoor ze dit niet kunnen doen.
Lees verder
DarQ XDA-forumthread ||| MonetCompat-bibliotheek op GitHub