Следващата версия на Android на Google, Android 10 Q, ще включва тъмен режим за цялата система. Как приложенията в Android Q ще се справят с тъмните теми?
В нашата първи пост описвайки промените, които открихме от разработената версия на Android Q, която получихме, говорихме накратко за тъмния режим, който развълнува всички. За да обобщим, вграденият тъмен режим на Google в Android Q може да бъде активиран чрез нова опция „Тъмен режим“ в настройките на дисплея. Тъмният режим може да бъде винаги изключен, винаги включен или активиран автоматично през нощта и деактивиран сутрин. Тъмният режим темизира SystemUI (панел за сила на звука, меню за захранване, панел за бързи настройки, известия), приложението за настройки и рамката (цвят на акцента и т.н.).
По-горе: Тъмен режим в Android Q на Google Pixel 3 XL. По-долу: Светла тема в Android Pie на Google Pixel 2 XL.
Google обаче не иска просто системните елементи да са тъмни. Те също така работят, за да се уверят, че всички техни приложения на първи страни поддържат тъмен режим, когато потребителят премести превключвателя. Приложения на Google като
Съобщения, Телефон, Контакти, Новини, Играя игри, YouTube, Картии други бяха актуализирани с превключватели на тъмен режим, гледащи към потребителя, докато други приложения харесват Google Chrome все още изглаждат всички пречупвания преди Google I/O 2019. Google също започна да насърчава разработчиците на приложения от трети страни да го правят прегърнете тъмни теми в техните приложения, защото компанията признава, че са страхотни за живота на батерията (поне на смартфони с OLED дисплеи.)За да помогне на разработчиците да актуализират своите приложения с поддръжка за тъмен режим на Android Q, Google предоставя нова опция за разработчици, която изглежда принуждава всички приложения да преминат към тъмен режим. Тази опция не е предназначена за потребители, които искат да използват всички неща в тъмен режим, тъй като за системата е трудно да избере правилните цветове за всички приложения, които нямат естествен тъмен режим. За щастие, Google вече е положил основите за приложения, поддържащи тъмни режими, и вече има много приложения, които изглежда добре с активирана опция за отмяна на тъмен режим на Android Q, дори ако приложението няма тъмен режим, обърнат към потребителя превключвам. Ето колекция от екранни снимки от 24 различни приложения, показващи как изглеждат, когато им бъде наложен тъмен режим с помощта на превключвателя за отмяна на тъмен режим на Android Q. Не всяко приложение ще изглежда толкова добре, както ще ви покажа по-долу.
Внедряване на тъмен режим в Android Q
В API ниво 8 (Android 2.2 Froyo), Google представи -нощни квалификации за ресурси. Разработчиците на приложения могат да превключват между дневен и нощен режим с помощта на setNightMode in UiModeManager. Въпреки това, setNightMode изисква устройството да е в режим на кола или в докинг режим, ако устройството е на API ниво 22 или по-ниско. AppCompat v23.2 донесе внедряването на DayNight, позволявайки на приложения като клиентите на Reddit автоматично да превключват между техните дневни и нощни теми въз основа на времето от деня, използвайки AppCompatDeletegate.setDefaultNightMode(). API ниво 28 (Android 9 Pie) накара MODE_NIGHT_FOLLOW_SYSTEM (стойността по подразбиране на setDefaultNightMode()) да следва дефинираната от потребителя системна настройка в Настройки --> Опции за разработчици --> Нощен режим. Google е работи върху подобрения на API на DayNight в AppCompat, особено по отношение на „често срещани проблеми“, като проблеми с WebView. И накрая, Google активира откриване на нощен режим и има блокирани приложения без MODIFY_DAY_NIGHT_MODE подпис/привилегировано разрешение в рамката на Android Q. Последната промяна означава, че приложенията вече не могат да променят нощния режим за цялата система, което е причината за скорошен бъг в Messages да обърка потребителите в Android Pie.
Актуализация: Ан актуализация към AndroidX библиотеката за поддръжка ще улесни разработчиците да активират автоматично тъмни режими в своите приложения, когато устройството влезе в режим за пестене на батерията.
Принудително налагане на тъмен режим в Android Q
Приложения като Snapchat, Slack, AOSP Email, AOSP Messaging, AOSP Dialer и много други имат квалификатори за нощни ресурси, дори ако не предоставят на потребителя начин да използва приложението с нощен режим. Други приложения, които нямат твърдо кодирани квалификатори за нощни ресурси, като Facebook и Instagram, може или не могат да изглеждат добре с включена тъмна тема за отмяна на Android Q. Instagram изглежда добре, докато Facebook има нужда от много работа. От моето тестване опцията за замяна на нощен режим за разработчици е много различна от инверсията на цветовете в настройките за достъпност - може би Google възнамерява тази функция да помогне на разработчиците да създават тъмни режими за своите приложения, докато Android Q Developer Previews са продължава. Няма да знаем как точно работи тази функция, докато изходният код за Android Q не бъде пуснат или Google не публикува документация за него.
Замяната на тъмен режим в Android Q е най-повредена в приложения, които използват WebViews.
в "Цена на цвят на пиксела" разговор, представен от Chris Banes и Alan Viverette от Google, дуото насърчава разработчиците да прилагат тъмни теми чрез:
- Използване на API DayNight в AppCompat. Stock widgets реагират автоматично на промените в нощен режим или можете също да добавите превключвател в приложението си.
- Динамично прилагане на теми за наслагване по време на изпълнение чрез извикване на getTheme().applyStyle(). Повече информация можете да намерите в този по-ранен разговор тук.
- Структурирайте приложението си, за да разчитате на използването на атрибути на тема като colorForeground, colorControlNormal, colorAccent и др.
- Добавяне на квалификатори за нощувки за вашите ресурси. -нощните квалификации трябва да се използват за ресурси, които имат трудни за извличане цветове на темата.
- Активиране на режима на обърнати цветове (Настройки --> Цветове --> Инверсия на цветовете), за да получите бърза представа как ще изглежда приложението ви в тъмен режим. Ако искате да направите екранна снимка на вашето приложение с обърнати цветове, трябва да сте наясно, че инверсията на цветовете няма да се покаже на екранната снимка.
При пускането тъмният режим на Android Q ще се разшири до приложения на Google от първи страни, но се надяваме, че приложенията на трети страни бързо приемат тъмни теми в своите приложения. Освен това се надяваме да видим повече приложения автоматично да променят своите нощни теми, когато потребителят активира настройката за цялата система. В момента единственото приложение, което съм виждал, което автоматично променя темите, когато тъмният режим на Android Q за цялата система е активиран, е Google Contacts. Ще видим как ще се развият нещата след няколко месеца, когато бъде пуснат Android Q, но към всички разработчици, които четат това: прегърнете тъмната страна!
С информация от сътрудника на LineageOS Джоуи Рицоли.