Următoarea versiune de Android de la Google, Android 10 Q, va include un mod întunecat la nivelul întregului sistem. Cum vor gestiona aplicațiile din Android Q temele întunecate?
În a noastră prima postare Detaliind modificările pe care le-am găsit din versiunea Android Q în curs de dezvoltare pe care am obținut-o, am vorbit pe scurt despre modul întunecat care îi entuziasmează pe toți. Pentru a recapitula, modul întunecat încorporat al Google în Android Q poate fi activat printr-o nouă opțiune „Mod întunecat” din Setările afișajului. Modul întunecat poate fi fie întotdeauna dezactivat, fie întotdeauna activat, fie activat automat noaptea și dezactivat dimineața. Modul întunecat are ca teme SystemUI (panoul de volum, meniul de alimentare, panoul Setări rapide, notificări), aplicația Setări și cadrul (culoare de accent etc.).
Mai sus: Modul întunecat în Android Q pe Google Pixel 3 XL. Mai jos: Tema ușoară în Android Pie pe Google Pixel 2 XL.
Totuși, Google nu dorește doar ca elementele sistemului să aibă o temă întunecată. De asemenea, lucrează pentru a se asigura că toate aplicațiile lor primare acceptă modul întunecat atunci când utilizatorul acţionează comutatorul. Aplicații Google ca
Mesaje, Telefon, Contacte, Știri, Joaca jocuri, YouTube, Hărți, și multe altele au fost actualizate cu comutare în modul întunecat orientate spre utilizator, în timp ce alte aplicații le place Google Chrome încă elimină eventualele probleme înainte de Google I/O 2019. De asemenea, Google a început să încurajeze dezvoltatorii de aplicații terți să facă acest lucru îmbrățișează teme întunecate în aplicațiile lor, deoarece compania admite că sunt grozave pentru durata de viață a bateriei (cel puțin pe smartphone-urile cu ecrane OLED.)Pentru a ajuta dezvoltatorii să-și actualizeze aplicațiile cu suport pentru modul întunecat al Android Q, Google oferă o nouă opțiune pentru dezvoltatori care pare să forțeze toate aplicațiile să treacă în modul întunecat. Această opțiune nu este destinată utilizatorilor care doresc să activeze toate lucrurile în modul întunecat, deoarece este dificil pentru sistem să aleagă culorile potrivite pentru toate aplicațiile care nu au un mod întunecat nativ. Din fericire, Google a pus deja bazele pentru ca aplicațiile să accepte modurile întunecate și există deja multe aplicații care arătați bine cu opțiunea de anulare a modului întunecat de la Android Q activată, chiar dacă aplicația nu are un mod întunecat orientat spre utilizator comutare. Iată o colecție de capturi de ecran din 24 de aplicații diferite care arată cum arată ele atunci când un mod întunecat este forțat asupra lor folosind comutatorul de anulare a modului întunecat de la Android Q. Nu toate aplicațiile vor arăta la fel de bine, așa cum vă voi arăta mai jos.
Implementarea modului întunecat în Android Q
La nivelul API 8 (Android 2.2 Froyo), Google a introdus -calificările nocturne pentru resurse. Dezvoltatorii de aplicații pot comuta între modul zi și modul de noapte folosind setNightMode in UiModeManager. Cu toate acestea, setNightMode necesită ca dispozitivul să fie în modul mașină sau în modul andocat dacă dispozitivul este la nivelul API 22 sau mai jos. AppCompat v23.2 a adus implementarea DayNight, permițând aplicațiilor precum clienții Reddit să comute automat între temele lor de zi și de noapte în funcție de ora din zi folosind AppCompatDeletegate.setDefaultNightMode(). Nivelul API 28 (Android 9 Pie) a făcut ca MODE_NIGHT_FOLLOW_SYSTEM (valoarea implicită a setDefaultNightMode()) să urmeze setarea de sistem definită de utilizator în Setări --> Opțiuni pentru dezvoltatori --> Modul noapte. Google este lucrând la îmbunătățiri ale API-ului DayNight din AppCompat, în special în ceea ce privește „problemele întâlnite frecvent”, cum ar fi problemele cu WebView. În cele din urmă, Google a activat detectarea modului de noapte si are aplicații blocate fara MODIFY_DAY_NIGHT_MODE semnătură/permisiune privilegiată în cadrul Android Q. Ultima modificare înseamnă că aplicațiile nu mai pot modifica modul de noapte la nivelul întregului sistem, ceea ce a permis ca o eroare recentă Messages să deruteze utilizatorii în Android Pie.
Actualizați: Un Actualizați la AndroidX biblioteca de asistență va face mai ușor pentru dezvoltatori să activeze automat modurile întunecate în aplicațiile lor atunci când dispozitivul intră în modul de economisire a bateriei.
Forțarea modului întunecat în Android Q
Aplicații precum Snapchat, Slack, AOSP Email, AOSP Messaging, AOSP Dialer și multe altele au calificative de resurse -night, chiar dacă nu oferă utilizatorului o modalitate de a utiliza aplicația cu modul de noapte. Alte aplicații care nu au calificative de resurse de noapte codificate, cum ar fi Facebook și Instagram, pot arăta sau nu bine cu tema întunecată de anulare a Android Q activată. Instagram arată bine, în timp ce Facebook are nevoie de multă muncă. Din testarea mea, opțiunea pentru dezvoltator de anulare a modului de noapte este foarte diferită de inversarea culorii din Setările de accesibilitate — poate Google intenționează ca această funcție să ajute dezvoltatorii să creeze moduri întunecate pentru aplicațiile lor, în timp ce Android Q Developer Previews sunt În curs de desfășurare. Nu vom ști exact cum funcționează această caracteristică până când codul sursă pentru Android Q nu este lansat sau Google nu publică documentația pentru aceasta.
Suprascrierea modului întunecat în Android Q este cel mai defect în aplicațiile care folosesc WebViews.
În "Costul unei culori Pixel„discuție prezentată de Chris Banes și Alan Viverette de la Google, duo-ul încurajează dezvoltatorii să implementeze teme întunecate prin:
- Utilizarea API-ului DayNight în AppCompat. Widgeturile stoc răspund automat la modificările din modul noapte sau puteți adăuga un comutator și în aplicația dvs.
- Aplicarea dinamică a temelor de suprapunere în timpul rulării apelând getTheme().applyStyle(). Mai multe informații pot fi găsite în această discuție anterioară Aici.
- Structurarea aplicației pentru a se baza pe utilizarea atributelor temei, cum ar fi colorForeground, colorControlNormal, colorAccent etc.
- Adăugarea de calificative -night pentru resursele dvs. -calificatorii de noapte ar trebui să fie folosiți pentru resursele care au culori ale temei greu de extras.
- Activarea modului de culori inversate (Setări --> Culori --> Inversie de culoare) pentru a vă face o idee rapidă despre cum va arăta aplicația dvs. în modul întunecat. Dacă doriți să faceți o captură de ecran a aplicației dvs. cu culori inversate, ar trebui să știți că inversarea culorii nu va apărea în captură de ecran.
La lansare, modul întunecat al Android Q se va extinde la aplicațiile Google primare, dar sperăm ca aplicațiile terțe să adopte rapid teme întunecate în aplicațiile lor. În plus, sperăm să vedem mai multe aplicații care se schimbă automat la temele lor nocturne atunci când utilizatorul activează setarea la nivel de sistem. În acest moment, singura aplicație pe care am văzut-o care schimbă automat temele atunci când modul întunecat la nivelul întregului sistem al Android Q este activat este Google Contacts. Vom vedea cum vor decurge lucrurile în câteva luni când va fi lansat Android Q, dar pentru toți dezvoltatorii care citesc asta: îmbrățișați partea întunecată!
Cu contribuția de la colaboratorul LineageOS Joey Rizzoli.