Nowości w pierwszej poglądowej odsłonie Androida 13 skierowanej do deweloperów
W zeszłym tygodniu, dość nieoczekiwanie, Google udostępniło pierwszą poglądową wersję Androida 13 skierowaną do programistów. Zgodnie z tradycją, przy okazji opublikowano harmonogram wypuszczania kolejnych odsłon i zarysowano ogólne założenia projektowe. Testy rozciągać się będą od lutego aż po, co najmniej, sierpień i obejmą 2 wydania deweloperskie oraz cztery bety – z czego dwie ostatnie wejdą w stan „stabilizacji platformy”.
Linki do obrazów systemu umieszczono na dedykowanej witrynie, a zainstalujemy je na 8 modelach z serii Pixel – 4, 4 XL, 4a, 4a (5G), 5, 5a, 6, a także 6 Pro.
Google oczywiście ostrzega programistów aby zawczasu przyjrzeli się swoim aplikacjom jeśli zamierzają celować w A13 – zmianie ulegnie kilka „zachowań” dotyczących prywatności i bezpieczeństwa, które potencjalnie mogą popsuć działanie ich oprogramowania.
Pełną listę i wszelkie szczegółowe informacje znajdziecie tutaj i tutaj.
Przegląd nowych funkcji i API
Pełną listę i wszelkie szczegółowe informacje znajdziecie tutaj i tutaj. Polecam również zerknąć do oficjalnego wpisu blogowego Google.
Doświadczenie użytkownika
Na pierwszy ogień bierzemy „motywy ikon aplikacji”, czyli rozszerzenie działania silnika motywów Monet – jego debiut odbył się wraz z A12 i umożliwił dostosowywanie koloru poszczególnych elementów interfejsu (nie tylko systemowych) do barwy tapety. Po uaktualnieniu pozwala dostosować również odpowiednio przygotowane, spełniające pewne wymogi ikonki. Twórca przede wszystkim musi przygotować jej monochromatyczną wersję (wektorową), gdzie samo logo (rekomendowany „płaski” wariant, dopuszczalne użycie „alpha gradient’u”) będzie mieć zagęszczenie pikseli na poziomie 36 x 36 (maksymalnie 60 x 60), które z kolei umieszczone zostanie w „kontenerze” o wymiarach 90 x 90. Potem wystarczy odpowiednio zmodyfikować plik manifestu i gotowe – wizualizacja tutaj.
Na drugi strzał weźmiemy „Quick Settings placement API”, rozwijające ideę „niestandardowych kafelków” o informatywne okna dialogowe. Aż do teraz musieliśmy się domyślić (lub ręcznie sprawdzić) ich dostarczenia wraz z zainstalowaną aplikacją. Nowe API bierze na tapet ten mankament i sprawia, że program je posiadający wyświetla monit z możliwością przypięcia, wprost z jego poziomu, do szybkich skrótów.
Kolejna rzecz do obgadania to „preferencje języka dla każdej apki z osobna”. Ułatwi to życie wielojęzycznych użytkowników, którzy oczekują czegoś więcej niż jeden globalny język w całym systemie. Skorzystają na tym także deweloperzy wykorzystujący niestandardowe selektory, ponieważ zmniejszy to ilość ich wkładu własnego (kodu). Google zapewnia przy tym, że podobne API doda do nadchodzących bibliotek Jetpack, aby wesprzeć również poprzednie odsłony Androida.
Nie zapomniano o najnowszych usprawnieniach, poprawkach i zmianach zawartych w Unicode ICU 70, Unicode CLDR 40 oraz Unicode 14.0. Co więcej, Google chwali się udoskonaleniem mechanizmu dzielenia wyrazów, dzięki czemu zawinięty tekst jest łatwiejszy do odczytania a interfejs bardziej adaptacyjny – wydajność sięga nawet 200%, więc jego uruchomienie w „TextView” nie wpłynie na efektywność renderowania. Skorzystanie z „szybszej wersji” wymaga wybrania częstotliwości „fullFast” lub „normalFast” dla funkcji „setHyphenationFrequency()”.
Prywatność i bezpieczeństwo
Nowy „selektor zdjęć” zadba o bezpieczeństwo naszych plików multimedialnych, gdyż w przypadku chęci udostępnienia fotki / wideo aplikacja nie uzyska wglądu w inne niż te wybrane przez nas (co jest zachowaniem całkowicie odwrotnym do aktualnego). Z kolei na zwiększenie prywatności wpływa fakt, że zewnętrzne oprogramowanie nie musi deklarować żadnych dodatkowych uprawnień, a sam selektor wbudowano w system i ustandaryzowano. Co najciekawsze, trafi on na starsze urządzenia jako aktualizacja z Google Play.
Zajęto się również niepotrzebnym dzieleniem się lokalizacją gdzie tylko popadnie – konkretnie chodzi o usprawnienie uprawnień z grupy NEARBY_DEVICES dla aplikacji zarządzających połączeniami z pobliskimi punktami dostępowymi poprzez Wi‑Fi. Teraz wymaga się od nich uprawnienia „NEARBY_WIFI_DEVICES”, ale w zamian nie muszą korzystać z „ACCESS_FINE_LOCATION” jeśli nie pobierają fizycznej lokalizacji z interfejsu (API) Wi‑FI.
Grafika
Kolejna iteracja robocika implementuje programowalne obiekty z grupy RuntimeShader, których zachowanie definiuje Android Graphics Shading Language (AGSL). Jak wspomina Google, AGSL dzieli większość swojej składni z GLSL, ale działa wewnątrz silnika renderującego Androida – bez zagłębiania się w niezrozumiałe dla mnie szczegóły. W każdym razie, moduły te wewnętrznie wykorzystywane są do implementacji efektów ripple, blur oraz stretch overscroll, a A13 wnosi ich obsługę do aplikacji firm trzecich.
Podstawowa funkcjonalność
Rozpoczęto prace nad odświeżeniem podstawowych bibliotek Androida w celu dostosowania ich do OpenJDK 11 LTS, co zapewni wsparcie dla języka Java 11. Co ważne odnotowania, dzięki projektowi Mainline (aktualizacja kluczowych składników systemu poprzez Google Play) zmiany te trafią również na urządzenia wyposażone w A12.
Nie będę udawał, że wiem o co chodzi, dlatego też nadchodzące nowości wrzucam poniżej w formie grafiki.
Zmiany niewyróżnione przez Google (szczegółowy opis > https://blog.esper.io/android-13-deep-dive/)
- Karta odtwarzacza multimedialnego widoczna nad panelem powiadomień ulegnie małej metamorfozie – powiększono ją, dodano pasek postępu, przycisk play / stop przeniesiono na prawy bok, lecz póki co brakuje grafiki albumu. Co prawda nie jest to jeszcze domyślnie aktywne, ale można to uczynić poprzez przestawienie stosownej flagi SystemUI;
- Podobny los spotkał selektor wyjścia multimedialnego, który nie wyświetla się już jako „karta” wysuwana od dołu ekranu, a wyśrodkowane pływające okienko;
- Przełączanie się pomiędzy profilami użytkowników ma być znacznie uproszczone i dostępne wprost z ekranu blokady, choć póki co nie wiadomo na jakie urządzenia to trafi – smartfony są raczej „jednoosobowe”, więc udostępnienie im tego ma mały sens. Póki co opcję tę wyłączono dla wszystkich, lecz aktywujemy ją zmieniając wartość logiczną wyrażenia „config_enableBouncerUserSwitcher”;
- Do systemowych aktualizacji rozprowadzanych za pośrednictwem Google Play dołączą stosy Bluetooth oraz Ultra Wideband;
- Bardziej przystępna jest również konfiguracja profilu gościa, a konkretniej instalacja (klonowanie z głównego konta) dostępnych nań aplikacji – oczywiście z zachowaniem rozdzielności danych;
- Ekran blokady zyskał tryb horyzontalny, jednak uruchamia się wyłącznie na „większych wyświetlaczach”. Co ciekawe, podobno dostępny jest „od wielu lat”, lecz do tej pory był ustawiony na „false”;
- Pixel Launcher (więc AOSP aktualnie tego nie wspiera) otrzymał obsługę dwóch niezależnych układów pulpitu – standardowego oraz „większego” (vide przepowiadany Pixel Fold). Ten drugi uruchamia się automatycznie gdy DPI urządzenia wynosi co najmniej 600. Po osiągnięciu powyższego progu widżet zegara przesuwany jest bliżej prawej krawędzi, a na dole pojawia się sześciomiejscowy pasek zadań – gdzie w Androidzie 12L (dedykowanym składanym sprzętom) jego pojemność ograniczono do 5. Ponadto, potrafi on teraz wyświetlać sugestie aplikacji, jeśli nie wszystkie z nich są zajęte – dla „standardowego pulpitu” wprowadził to A11;
- Panel Prywatności (czy jakkolwiek to oficjalnie przetłumaczono, ang. Privacy Dashboard) umożliwi zbieranie i przeglądanie dostępu do uprawnień przez poszczególne programy w okresie ostatniego tygodnia, gdzie obecnie są to jedynie 24 godziny;
- Zaimplementowano 4 nowe szybkie skróty – skaner (prawdopodobnie Google Lens), tryb jednoręczny, korekcję kolorów oraz przycisk ukazujący w pływającym okienku zadania uruchomione w tle;
- Osoby wciąż korzystające z klasycznego, 3-przyciskowego sposobu nawigacji mogą wyłączyć dłuższe przytrzymanie środkowego z nich (domowego) w celu wywołania asystenta;
- Nie wchodząc w niezrozumiałe dla mnie szczegóły (po nie odsyłam tutaj), Pixel 6 / 6 Pro w połączeniu z nowym oprogramowaniem układowym platformy Tensor (autorskie procesory Google) zapewnia dostęp do maszyny wirtualnej bazującej na jądrze – Kernel-based Virtual Machine (KVM). W ten sposób uruchomiono kilka dystrybucji Linuksa z „praktycznie natywną prędkością”, zadowalająco działającego Windows 11, a nawet nieśmiertelnego DOOM’a;
- Włączenie trybu cichego wyłącza teraz wszystkie wibracje, włącznie z tymi dotyczącymi interakcji, w tym gestów;
- Dodano inteligentną usługę konserwacji działającą w trybie bezczynności, której zadaniem jest określenie najlepszego momentu na aktywowanie defragmentacji systemu plików bez szkody dla żywotności układu pamięci masowej;
- Okienko obrazu-w-obrazie zyskało przycisk (na „większych wyświetlaczach”) przełączający je w tryb podzielonego ekranu. Widoczny jest jedynie wtedy, gdy pod nim obecna jest inna apka;
- Dotychczas zastrzeżony i ograniczony do usług Gogole Play protokół Fast Pair (szybkie wykrywanie i parowanie urządzeń BT w pobliżu) najpewniej trafi do AOSP jako część komponentu „com.android.nearby”;
- Android 13 otrzymał „automatyczne czyszczenie schowka” po 3600000 milisekund (60 minut), analogiczne do tego występującego w Gboard. Gdzie więc progres? Ano w tym, że jeśli nie korzystamy ze wspomnianej klawiatury to każda aplikacja z dostępem do schowka może odczytać jego zawartość w dowolnym momencie. Właśnie dlatego jest ono tak kluczowe dla bezpieczeństwa naszych danych. Warto przy tym nadmienić, iż w jego przypadku zmodyfikujemy interwał uruchamiania.
Przesłanki i domysły
- Android prawdopodobnie doczeka się mechanizmu analogicznego do jabłkowego „Hand off audio” (tutaj tap-to-transfer) – automatycznie zadziała w momencie wystarczająco bliskiego podejście do zewnętrznego głośnika;
- Znaleziono odniesienia do tajemniczego „hub mode”, którego celem jest „umożliwienie udostępniania aplikacji we wspólnej przestrzeni”. Prócz tego wiadomo jedynie, że „główny użytkownik” byłby wstanie zdefiniować sieć Wi-Fi odblokowującą mechanizm wymiany;
- Nie wiadomo jeszcze co i jak, ale Google najwyraźniej położy duży nacisk na nieco zapomnianą funkcję wygaszacza ekranu;
- Początkiem stycznia na Android Police pisano o przeciekach dotyczących nowych stylów silnika motywów Monet – TONAL_SPOT, VIBRANT, EXPRESSIVE oraz SPRITZ. Okazuje się, że A13 DP1 je posiada, choć wciąż pozostaje wiele niewiadomych;
- Sprzętowe wsparcie dla Identity Credential API najprawdopodobniej zostanie kolejnym wymogiem postawionym przed producentami.
Ciekawostka
W zeszłym roku Google ogłosił współpracę z Qualcomm w celu poprawy spójności i wydajności uczenia maszynowego w systemie Android. Chcieli to osiągnąć czyniąc sterowniki NNAPI możliwe do uaktualnienia poprzez Usługi Google Play i pierwotny plan zakładał debiut wraz z A12. Z czasem przesunięto termin na premierę trzynastej odsłony robocika, lecz okazuje się, że koncepcja ta została całkowicie porzucona. Powód rezygnacji jest niejasny, a wypowiedź jednego z inżynierów Google mocno zdawkowa – „zespół ostatecznie nie posunął się do przodu z planami dostarczania aktualizacji sterowników za pośrednictwem GMSCore”.