Nowości w Androidzie Q z perspektywy programisty.

Paweł Dedio Programowanie 2019-03-30

Witajcie ponownie. Jak już wiecie, niedawno została wydana wersja testowa najnowszej odsłony systemu Android. Wszystkie nowości wraz z najdrobniejszymi zmianami z perspektywy zwykłego użytkownika podsumował już Łukasz. Ja chciałbym rozwinąć nieco temat z perspektywy programisty. Lista zmian API jest dość długa, tak więc możemy spodziewać się licznych nowości, które niekoniecznie muszą się podobać programistom. Tak więc zapraszam do omówienia najciekawszych usprawnień Androida Q dla tych, co tworzą kod.

Zmiany w cyklu życia

android q logo nowosci zmiany

W celu lepszego wsparcia składanych telefonów Google wprowadził zmiany w cyklu życia (zobacz Cykl życia aplikacji na Androida — co to takiego?). W Androidzie Q będziemy mogli mieć kilka aplikacji, które jednocześnie będą w stanie wznowionym (resumed). Oprócz tego dojdzie nowa metoda, która będzie informowała nas, czy nasza aplikacja ma obecnie focus — w skrócie, czy jest na pierwszym planie. Wszystko brzmi świetnie, tylko że Google nie dostarczył żadnej szczegółowej dokumentacji, na czym tak właściwie będą polegać te zmiany. Dodatkowo ciężko to przetestować, bo na ten moment nie ma emulatora, który obsługiwałby składany ekran.

O ile zmiany w cyklu życia niekoniecznie mogą ucieszyć programistów, to uważam, że będzie to dobra zmiana dla użytkownika, choć obecnie to trochę wróżenie z fusów. Bardzo prawdopodobne bowiem, że w Androidzie Q wszystkie aplikacje otwarte równocześnie, będą się zachowywały, tak jakby były jedyne na ekranie. Przykładowo nie powinno już być sytuacji, że jakaś aplikacja wstrzyma odtwarzanie filmu, gdy wprowadzimy ją w tryb podzielnego ekranu.

 

Zmiany w dostępie do plików

Nasze propozycje przydatnych aplikacji znajdziesz w tym poradniku

Obecne aplikacje, aby zapisać jakieś dane w ogólnodostępnej przestrzeni plików, musiały posiadać odpowiednie pozwolenie. Teraz zostało to nieco zmienione, każda aplikacja będzie miała wydzieloną swoją przestrzeń, do której dostępu nie będzie potrzebne żadne dodatkowe uprawnienie. Dodatkowo nie musimy się martwić o zaśmiecanie pamięci, ponieważ system automatycznie usunie ten katalog, podczas odinstalowania aplikacji.

Oprócz takiego prywatnego folderu aplikacje nadal będą miały dostęp do wspólnych katalogów (takich jak Music, Photos, Videos i Downloads). Podobnie jak wcześniej, tutaj także aplikacja będzie potrzebowała pozwolenia. Jednak te same w sobie również ulegną zmianie, będziemy mieli bowiem osobne uprawnienia do zdjęć, filmów oraz piosenek.

Aplikacje zainstalowane na Androidzie Q nie będą mogły w żaden sposób odczytywać informacji o pobranych przez nas plikach. Każda aplikacja będzie widziała w tym katalogu tylko te pliki, które zostały pobrane przez nią samą. Wszystkie inne będą dostępne, dopiero gdy użytkownik wskaże je za pomocą systemowej kontrolki do wybierania plików.

 

Role

Android Q Uprawnienia

Role oznaczają ustawienie aplikacji jako domyślnej dla pewnego typu zadań. Na początku Google udostępnił następujące role: Przeglądarka Internetowa, Telefon, Aplikacja SMS, Launcher, Odtwrzacz Muzyczny oraz Galeria. Na razie nie możemy jednak brać tego za pewnik, ponieważ w dokumentacji wyraźnie zaznaczono, że ta lista może ulec zmianie.

Ta zmiana mocno utrudni tworzenie aplikacji z kilkoma różnymi funkcjonalnościami. Przykładowo żadna aplikacja (poza domyślną aplikacją galerii) nie będzie mogła stworzyć swojej przeglądarki zdjęć w celu jej przetworzenia. Zawsze będziemy musieli używać domyślnej aplikacji Galerii, bo tylko ona będzie miała dostęp do wszystkich zdjęć na urządzeniu. Możemy więc spodziewać się zmiany sposobu dodawania zdjęć na przykład w aplikacji Messenger od Facebooka.

 

Dostęp do lokalizacji

W najnowszym Androidzie będziemy mogli zastrzec, że udostępniamy aplikacji dostęp do lokalizacji, tylko wtedy gdy jest ona aktualnie uruchomiona. W związku z tym dojdzie nam nowe pozwolenie, które określi, czy nasza aplikacja ma dostęp do lokalizacji, kiedy działa w tle. Oczywiście przy udzieleniu lokalizacji tylko dla aktualnie uruchomionych programów, aplikacja będzie nas mogła zapytać później o pozwolenie do lokalizacji w tle. Z perspektywy użytkownika jest to świetna decyzja — aż się prosi, aby coś takiego było możliwe również dla innych typów pozwoleń.

 

Ulepszone udostępniane treści

Mechanizm udostępniania będzie łatwiejszy w obsłudze. Twórcy aplikacji będą mogli deklarować skróty, które umożliwią udostępnienie treści dla konkretnej grupy odbiorców. Skróty te będą publikowane do systemu prawdopodobnie przy uruchomieniu danej aplikacji — nie mamy jeszcze konkretnej dokumentacji do tej funkcjonalności. Dzięki temu udostępnianie będzie bardzo szybkie, ponieważ system będzie znał wszystkie możliwe skróty już przed wciśnięciem przycisku odpowiedzialnym za udostępnianie.

 

Panel szybkich ustawień

Ta zmiana nie jest jakoś bardzo imponująca, lecz na pewno spodoba się użytkownikom naszej aplikacji. Będą oni mogli zmienić niektóre ustawienia, bez potrzeby opuszczania naszej aplikacji. Na ten moment wiadomo o trzech typach ustawień: ustawienia połączeń internetowych, ustawienia NFC oraz ustawienia dźwięku. Łatwo sobie wyobrazić zastosowania dla tej funkcjonalności. Na przykład aplikacja wymagająca NFC, może pokazać takie okienko, zamiast odsyłać użytkownika do ustawień i liczyć na to, że nie zapomni, co tak właściwie miał zrobić.

 

Głębia w zdjęciach

W Androidzie Q programiści będą mogli wykorzystać potęgę kilku aparatów. Jeśli jakaś aplikacja wykona zdjęcie za pomocą wbudowanej aplikacji aparatu, oprócz statycznego zdjęcia będzie mogła otrzymać także informacje dotyczące głębi zdjęcia. Możemy więc spodziewać się różnych programów, które w ciekawy sposób przerobią nasze zdjęcia. Łatwiej będzie też rozpoznawać twarz oraz inne punkty znajdujące się na zdjęciu.

 

Wymuszenie wsparcia nowszych wersji

android q zmiany nowosci

Do rozwinięcia tego punktu musimy sobie wyjaśnić, czym jest targetSdkVersion. Jest to specjalny parametr, którym twórcy aplikacji określają, dla jakiej wersji Androida jest dedykowana dana aplikacja. Z reguły powinniśmy ustawiać wartość tego parametru na najnowszą dostępną wersję Androida, jednak niektórzy twórcy celowo tego nie robią, ponieważ w ten sposób można ominąć niektóre restrykcje wchodzące w nowszej wersji systemu.

W Androidzie Q Google wprowadził kilka zmian, mających na calu wymuszenie na programistach wspieranie nowszych wersji systemu. Niebawem, wszystkie nowe aplikacje lub aktualizacje obecnych, będą musiały mieć ustawiony targetSdk na minimum Androida 9 Pie. Dodatkowo system będzie ostrzegał użytkownika, jeśli będzie próbował uruchomić po raz pierwszy aplikację z targetSdk dla systemu starszego niż Android 6 Marshmallow.

 

Sieć WiFi

Ta zmiana ucieszy na pewno wszystkich, którzy robią aplikacje streamujące do innego urządzenia, wykorzystując do tego sieć WiFi. W najnowszej wersji Androida będziemy mogli przełączyć moduł WiFi w dwa specjalne tryby. Pierwszy z nich służy do zminimalizowania opóźnień wynikających z przesyłania sygnału, natomiast drugi ma na celu osiągnięcie maksymalnej wydajności w transmisji. Cała odpowiedzialność za to działanie spoczywa po stronie systemu. Twórcy aplikacji muszą tylko przekazać systemowi, że chcą używać WiFi w jednym z tych trybów. Jest to zmiana, która nie wymaga żadnego wysiłku od programistów, tak więc możemy być pewni, że usprawnienie to zagości w wielu aplikacjach.

 

Pozostałe

Google nie zapomniał o zmianach w nieco węższych dziedzinach. W najnowszej odsłonie Androida możemy się spodziewać ulepszonego wsparcia grafiki 3D, rozszerzenia wsparcia sieci neuronowych oraz obsługę czytników biometrycznych. Dodatkowo użytkownicy powinni spodziewać się minimalnie szybszego uruchamiania aplikacji, ponieważ ART (środowisko uruchomieniowe Androida, o którym więcej dowiecie się w kolejnym odcinku) został zoptymalizowany pod kątem wydajności.

Oczywiście powyższa lista może jeszcze ulec delikatnej zmianie, ponieważ nie jest to finalne wydanie. Jest to jednak dość wyraźny sygnał dla programistów, jakie prace muszą poczynić w swoich aplikacjach, aby maksymalnie wykorzystać Androida Q. Widzimy się już za tydzień, gdzie opowiem Wam o tym, co się dzieje podczas instalacji aplikacji oraz w trakcie jej uruchamiania.

Zapraszam również na największe w Polsce forum dla programistów Android. Jeśli macie pytania odnośnie do kariery programisty — zapraszam do działu Kariera programowanie. Zachęcam również do przejrzenia działu Praca oraz zlecenia dla programistów — być może to właśnie tam znajdziesz swoją pierwszą pracę.

Pozostałe odcinki serii o programowaniu.





x