Android 7.0 dla programistów: nowe funkcje, ulepszenia wydajności i inne rzeczy, o które nie będziesz się martwić

Opublikowany: 2022-03-11

Google oficjalnie ogłosiło Androida 7.0 Nougat kilka tygodni temu, ale jak zwykle trzeba będzie poczekać. Większość użytkowników otrzyma aktualizacje OTA dopiero na początku przyszłego roku. Wielu innych otrzyma je za tydzień od „nigdy”, ponieważ niektórzy producenci urządzeń po prostu nie przejmują się tym.

Może to brzmieć jak moje złośliwe irytujące zwierzątko, ale fragmentacja Androida to nie żart; od lat jest to poważny ból głowy dla użytkowników i programistów. Android 7.0 nie rozwiąże tego problemu, a szkoda, ponieważ wprowadza szereg nowych funkcji i ulepszeń wydajności, które z pewnością spodobają się użytkownikom.

Deweloperzy nie powinni jednak mieć nadziei; tutaj nie ma żadnych zmian w grze. Przyjrzyjmy się kluczowym poprawkom pod maską Androida i nowym możliwościom, które one oferują, od najbardziej do najmniej znaczących.

  1. Nowy kompilator JIT, uzupełniający istniejący kompilator AOT firmy ART
  2. Obsługa wielu okien
  3. Wsparcie dla Vulkan API
  4. Bezpośredni rozruch
  5. Bezpośrednia odpowiedź i powiadomienia w pakiecie
  6. Tryb rzeczywistości wirtualnej Daydream (VR)
  7. Interfejs użytkownika, poprawki ułatwień dostępu i optymalizacja w tle

Oczywiście nie jest to pełna lista wszystkich nowych funkcji ; Usiadłem na pierwszej siódmej. Możesz uzyskać dogłębny przegląd Androida 7.0, jeśli udasz się do raju programistów Google. Oszczędzę Ci niepotrzebnego puchu i udzielę przydatnych informacji w skondensowanej, łatwej do strawienia formie.

1. Nowy kompilator JIT, kompilacja oparta na profilach

Kompilacja JIT powraca i choć może brzmieć jak powrót do czasów Dalvik, tak nie jest. Tym razem Google dodał kompilator JIT z profilowaniem kodu do ART, aby uzupełnić istniejący kompilator AOT ART. A kompilacja oparta na profilach to modne hasło dnia.

Duża korzyść dla użytkownika: duże aplikacje, których instalacja zajmowała kilka minut, teraz zajmują kilka sekund.

ART tworzy profil dla gorących metod każdej aplikacji i różnych warunków urządzenia. Może prekompilować gorące metody, aby zapewnić optymalną wydajność, zmniejszyć zużycie pamięci RAM, zmniejszyć zużycie energii i nie tylko.

Kompilator JIT i AOT w systemie Android 7.0

Android 7.0: nowe funkcje, wzrost wydajności i inne rzeczy, które Cię nie interesują.
Ćwierkać

Dodatkową korzyścią jest sama szybkość instalacji i aktualizacji. Ponieważ profilowanie oznacza brak optymalizacji, Google twierdzi, że nawet duże aplikacje, których instalacja w systemie Android 6.0 zajęła kilka minut, można teraz zainstalować lub zaktualizować w ciągu kilku sekund. Osobiście mam nadzieję, że dotyczy to również World of Tanks Blitz, ponieważ jest to jedyna gra na Androida warta mojego czasu.

W ciągu ostatnich kilku lat poczyniono duże postępy w zakresie mobilnej pamięci masowej. Wiele urządzeń obecnej generacji korzysta z szybkiej pamięci masowej UFS 2.0, która zapewnia znaczny wzrost wydajności w porównaniu z pamięcią masową eMMC z przeszłości. Android 7.0 powinien umożliwić inżynierom oprogramowania pełne wykorzystanie tego nowego standardu pamięci masowej i odblokowanie jeszcze większej wydajności.

Sprawdź jeden z moich poprzednich wpisów na blogu, aby dowiedzieć się, co plany kompilatora Google oznaczają dla programistów Androida bardziej szczegółowo.

Wpływ na programistę: kompilacja sterowana profilem powinna zapewnić doskonałą wydajność i wzrost wydajności. Instalacje i aktualizacje będą znacznie szybsze, a dzięki obszernej dokumentacji Google wdrożenie powinno być stosunkowo łatwe. Mniej czekania na wszystkich. To coś dobrego.

2. Obsługa wielu okien

Poczekaj chwilę — czy nie widzieliśmy już funkcji wielu okien na Androidzie? Tak i nie; niektóre forki oferowały obsługę wielu okien, ale teraz jest natywna. Istnieją dwie implementacje podzielonego ekranu: obok siebie i jedna nad drugą . To mniej więcej standard, jeśli chodzi o urządzenia mobilne, ale niestety nie miałem jeszcze okazji tego wypróbować.

Obsługa wielu okien Androida 7.0

I szczerze mówiąc, nigdy nie byłem fanem obsługi wielu okien na urządzeniach mobilnych, ponieważ większość użytkowników po prostu jej nie potrzebuje.

Nie chodzi jednak tylko o smartfony. Google pracuje również cicho nad ofertami smart TV, więc obsługa wielu okien obejmie również te urządzenia, ale z niespodzianką. Mając do dyspozycji większą powierzchnię wyświetlacza, twórcy aplikacji będą mogli korzystać z trybu obrazu w obrazie na telewizorach, a niektóre funkcje będą zależeć od dostawcy. Sprzedawcy będą mogli zdecydować, czy włączyć tryb dowolny . Oznacza to, że dostawcy przewymiarowanych phabletów, tabletów i innych urządzeń z dużymi wyświetlaczami mogą pozwolić użytkownikom bawić się rozmiarem i pozycją okna, co brzmi podobnie do podejścia Microsoftu, po raz pierwszy zaimplementowanego w systemie Windows 8.x.

Wpływ na programistów: obsługa wielu okien nie zmienia zasad gry, ale zapewni natychmiastową możliwość na tabletach i telewizorach inteligentnych z systemem Android, przy czym te ostatnie będą również otrzymywać obraz w obrazie i możliwość nagrywania wideo. Problem? Telewizory z systemem Android nie są zbyt popularne, a tablety z systemem Android nigdy nie były zbyt popularne, zwłaszcza jeśli chodzi o aplikacje biurowe, które najbardziej skorzystają na obsłudze wielu okien.

I kto wie? Może bardzo bystry programista stworzy zabójczą aplikację na smartfona, która to wykorzysta. Nie będę wstrzymać oddechu.

3. Wulkan API

To kolejna potencjalnie potężna aktualizacja pod maską. Jasne, nie przyciągnie tak dużego zainteresowania prasy i konsumentów, jak więcej sztuczek, ale nie popełnij błędu: Vulkan API to wielka sprawa.

Jeśli to przegapiłeś, Vulkan API to nowy, oszczędny, zbliżony do metalu interfejs API dla procesorów graficznych (GPU). I to nie tylko do gier 3D, ale także do obliczeń na GPU. Zasadniczo jest to kontynuacja OpenGL i powinna zapewnić doskonałą wydajność na procesorach wielowątkowych wraz z kompatybilnością międzyplatformową. Powinno to również zaoszczędzić tysiące roboczogodzin na opracowywaniu sterowników.

Dlaczego więc nie robi się coraz więcej szumu? Cóż, to nowy standard, a wprowadzenie całkowicie nowego graficznego API zwykle zajmuje kilka lat. Dlatego konsumenci nie przejmują się tym, a programiści Androida powinni się tym przejmować .

A teraz czekamy… Wsparcie Vulkan API może nie wydawać się teraz ważne, ale za kilka lat będzie ogromne.

Aby dowiedzieć się więcej o implementacji Vulkan w systemie Android 7.0, przeczytaj pełny przegląd Vulkan API, który napisałem na początku tego roku, lub sprawdź zasoby deweloperskie Google.

Wpływ na programistów: nadejdzie czas Vulkan API. Zmniejszy obciążenie procesora, zwiększając w ten sposób wydajność GPU i zmniejszając zużycie energii w grach 3D. Jednak adopcja z pewnością będzie powolna, ponieważ mówimy o niezwykle potężnym i złożonym interfejsie graficznym, a nie tylko kosmetycznym ulepszeniu.

4. Bezpośredni rozruch

Co się dzieje z zablokowanym urządzeniem z Androidem 7.0? Działa w bezpiecznym trybie bezpośredniego rozruchu , dopóki użytkownik nie odblokuje urządzenia.

Aby było to możliwe, Android 7.0 ma dwie lokalizacje przechowywania danych, z dwoma różnymi rozwiązaniami szyfrowania:

  • Pamięć masowa zaszyfrowana przez urządzenie jest dostępna podczas rozruchu bezpośredniego i można do niej uzyskać dostęp niezależnie od tego, czy urządzenie jest zablokowane, czy odblokowane.
  • Pamięć zaszyfrowana poświadczeniami jest nadal domyślną lokalizacją i jest dostępna dopiero po odblokowaniu urządzenia przez użytkownika.

Większość implikacji jest oczywista: aplikacje, które muszą działać w trybie bezpośredniego rozruchu przed odblokowaniem urządzenia, muszą być w tym celu włączone. Domyślnie aplikacje nie mogą działać w trybie rozruchu bezpośredniego , ale programiści mogą rejestrować różne składniki aplikacji, które muszą działać w tym stanie.

Powinno to obejmować aplikacje, które dostarczają ważne lub zaplanowane powiadomienia, takie jak aplikacje do obsługi wiadomości i kalendarza. Aplikacje wymagające dostępu do pamięci muszą polegać na zaszyfrowanej pamięci urządzenia , która jest chroniona kluczem, który staje się dostępny po zweryfikowaniu rozruchu urządzenia. Dostęp nie obejmuje danych powiązanych z danymi uwierzytelniającymi użytkownika, a mianowicie kodów PIN i haseł. Zaszyfrowana pamięć masowa nie jest dostępna, dopóki urządzenie nie uruchomi się i nie zostanie odblokowane przez użytkownika, ale po uzyskaniu dostępu pozostaje dostępna do momentu wyłączenia urządzenia.

Wpływ na programistę: Bezpośrednie uruchamianie ma poprawić bezpieczeństwo bez uszczerbku dla wygody użytkownika i szybkości reakcji. Wdrożenie powinno być proste, ale w niektórych przypadkach będzie wymagało sporo żmudnej pracy. Mimo to brzmi to jak mały kompromis w celu zwiększenia bezpieczeństwa.

5. Bezpośrednia odpowiedź i powiadomienia w pakiecie

Wygląda na to, że jest to związane z bezpośrednim rozruchem , ale bezpośrednia odpowiedź to inna bestia, umożliwiająca użytkownikom odpowiadanie na wiadomości i powiadomienia z ekranu powiadomień. Wbudowana akcja odpowiedzi jest dostępna za pośrednictwem nowego przycisku w powiadomieniu. W praktyce użytkownicy powinni mieć możliwość odpowiadania na powiadomienia bez dostępu do aplikacji, a system zajmie się resztą.

System może wykonać swoją magię tylko wtedy, gdy programiści poświęcą swój czas na włączenie pobierania odpowiedzi w trybie inline, wywołując getResultsFromIntent() , która zwraca pakiet z wymaganą odpowiedzią tekstową. W systemie Android 7.0 firma Google zapewnia programistom nową metodę przedstawiania powiadomień w kolejce: powiadomienia w pakiecie . Rozwiązanie jest podobne do stosu powiadomień w Android Wear.

Powiadomienia w pakiecie to tylko takie: podobne komunikaty prezentowane w jednej grupie, z czystą hierarchią i nadrzędnym powiadomieniem na górze. Użytkownicy mogą następnie rozszerzyć pakiet, aby uzyskać więcej informacji i podjąć odpowiednie działania, lub łatwo odrzucić wszystko, jeśli nie są zainteresowani.

Jednak powiadomienia w pakiecie nie są przeznaczone do użytku ze wszystkimi typami powiadomień . Google wyjaśnia to jasno w sprawdzonych metodach powiadamiania Androida. Najlepiej byłoby, gdyby podejście to było stosowane w przypadku aplikacji generujących dużą liczbę podobnych lub powiązanych powiadomień, takich jak aplikacje do przesyłania wiadomości.

Począwszy od systemu Android 7.0 (poziom interfejsu API 24), użytkownicy mogą odpowiadać bezpośrednio na wiadomości tekstowe lub aktualizować listy zadań z poziomu okna dialogowego powiadomień. Na urządzeniu przenośnym akcja odpowiedzi w linii pojawia się jako dodatkowy przycisk wyświetlany w powiadomieniu. Gdy użytkownik odpowiada za pomocą klawiatury, system dołącza odpowiedź tekstową do określonej przez Ciebie intencji (dla akcji powiadomienia) i wysyła ją do Twojej aplikacji przenośnej.

Wpływ na programistę: bezpośrednia odpowiedź i powiadomienia w pakiecie powinny poprawić wrażenia użytkownika w wielu scenariuszach. A sądząc po dokumentacji Google, nie powinny być też trudne do wdrożenia. Oczywiście, aplikacje e-mail, komunikatory i aplikacje społecznościowe mogą najwięcej zyskać na odpowiedzi inline, chociaż podejście można wdrożyć gdzie indziej.

6. Rzeczywistość wirtualna na jawie

Niedawne skupienie się Google na VR dowodzi, że gigant wyszukiwania nie jest odporny na szum. Wszyscy pamiętamy Google Cardboard i Google Glass, które były niefortunnym pęknięciem w przestrzeni rozszerzonej rzeczywistości.

W przeciwieństwie do Glass, Cardboard nie zwiędł i umarł, ale pozostaje bardziej eksperymentem niż prawdziwym produktem. Google ulepszyło koncepcję i za kilka tygodni zostanie ponownie uruchomione pod nową nazwą: Google Daydream . Daydream to mniej więcej krok ewolucyjny. Wygląda jak podrasowany zestaw słuchawkowy Cardboard, ale istotne zmiany są trudne do zauważenia.

Rzeczywistość wirtualna na Androidzie 7.0 będzie rozczarowująca. Nie dlatego, że nie ma technologii, ale dlatego, że nie ma dobrych treści.

Wsparcie będzie dostępne wkrótce, w następnej generacji telefonów z Androidem, ale projektanci i programiści mogą testować swoje koncepcje na Nexusie 6P obecnej generacji, obecnie jedynym urządzeniu zgodnym z Daydream .

Google opisuje Daydream jako rozwiązanie VR nowej generacji dla urządzeń mobilnych, z lepszą interaktywnością i lepszą responsywnością w porównaniu z Cardboard. Firma twierdzi, że wprowadziła ulepszenia na wszystkich poziomach stosu Androida, aby poprawić responsywność. Powinno to pozwolić Androidowi 7.0 na szybszy dostęp do danych z czujników i renderowanie odpowiedniej sceny VR we właściwym czasie, drastycznie zmniejszając opóźnienia. Daydream jest również wyposażony w nowy bezprzewodowy kontroler z przyciskami APP i HOME .

Niestety żadna z tych poprawek nie rozwiąże największego problemu, z jakim boryka się VR: brak treści . Dobrą wiadomością jest to, że sprawy się poprawiają, a Google obiecuje dostarczać więcej treści w Daydream poprzez szereg partnerstw obejmujących wszystko, od sitcomów po gry.

Moje stanowisko na temat mobilnej rzeczywistości wirtualnej pozostaje dość konserwatywne, jak wspomniałem w moim przeglądzie Google Cardboard. Moje poglądy częściowo potwierdziły ostatnie badania rynku, które wydają się sugerować, że popyt na VR pozostaje słaby. Google nie jest w stanie rozwiązać wszystkich problemów związanych z ząbkowaniem, z jakimi boryka się dziś mobilna VR. To nie jest kwestia samozadowolenia; Google musi poczekać na lepszy sprzęt.

Jeszcze zanim wypróbowałem Cardboard, wiedziałem, że problemem będzie żywotność baterii i termika, podobnie jak Google. Idąc dalej, pozostanie to utrzymującym się problemem. W rzeczywistości Google wyraźnie stwierdza, że ​​wydajność termiczna Nexusa 6P „nie jest reprezentatywna” dla nadchodzących telefonów obsługujących Daydream :

Spodziewaj się, że 6P zmniejszy termicznie wydajność procesora i karty graficznej po krótkim okresie użytkowania, w zależności od obciążenia.

Zanim naprawdę będziemy mogli skorzystać z Daydream , będziemy musieli poczekać, aż producenci chipów i sprzedawcy smartfonów wprowadzą nową generację produktów.

Wpływ na programistów: Daydream VR może oferować kilka nowych możliwości, ale nie jest to tak proste, jak się wydaje. Podczas gdy wiele firm technologicznych wspina się na pokład pociągu VR, konsumenci nie. W tej chwili jest to samotna i droga jazda.

7. Interfejs użytkownika, poprawki ułatwień dostępu i optymalizacja w tle

Google dopracował interfejs użytkownika, dodał kilka funkcji i dopracował wydajność, aby zapewnić jeszcze płynniejszą obsługę. Oto przedsmak nowości:

  • Częściowa obsługa około 100 nowych języków, wraz z ulepszonymi pakietami językowymi i nowymi lokalnymi wariantami dla głównych języków, takich jak hiszpański i angielski.
  • Wiele lokalizacji w Ustawieniach, co znacznie poprawi wrażenia dla użytkowników wielolokalnych i dwujęzycznych.
  • Ulepszony WebView, przeglądarka w aplikacji. Będzie polegać na pakiecie APK Chrome (od wersji 51) do renderowania stron, zmniejszając zużycie pamięci i wymagania dotyczące przepustowości. Samodzielny pakiet APK WebView nie będzie już aktualizowany , jeśli włączone jest renderowanie w Chrome.
  • Aktualizacje Android for Work poprawiające bezpieczeństwo i zapewniające stałą obsługę VPN. Funkcja szybkiego przełączania pozwoli użytkownikom przełączać się między trybem pracy a trybem osobistym.
  • Project Svelte, czyli nazwa Google obejmująca szereg optymalizacji w tle, które zmieniają sposób działania aplikacji w celu zmniejszenia zużycia pamięci RAM. Google twierdzi, że będzie nadal rozszerzać i aktualizować JobScheduler i GCMNetworkManager , ale jednocześnie usuwa trzy powszechnie używane transmisje: CONNECTIVITY_ACTION , ACTION_NEW_PICTURE i ACTION_NEW_VIDEO . Jeśli Twoja aplikacja opiera się na którymkolwiek z nich, musisz przeprowadzić migrację do JobScheduler . Możesz sprawdzić szczegóły geeków w Google.
  • Ulepszenia interfejsu użytkownika do ekranu powitalnego i kafelka Szybkie ustawienia, który zawiera teraz nowy interfejs API, którego można używać w aplikacjach innych firm. Ulepszenia powiadomień obejmują dwa nowe interfejsy API widoków niestandardowych.
  • Asystent Google, Google Allo, Google Duo.

Wpływ na programistów: te nowe funkcje i poprawki są mile widzianymi dodatkami do Androida, ale jest mało prawdopodobne, aby generowały wiele nowych możliwości.

Android 7.0: jaki jest wynik końcowy?

Można śmiało powiedzieć, że Android 7.0 nie jest wielką okazją dla programistów. To stopniowe ulepszenie, głównie w zakresie optymalizacji. Nie ułatwi tworzenia wstrząsających aplikacji i usług, które wcześniej nie były możliwe.

Ale nie widzę w tym nic złego. Smartfony są już pełne funkcji, a ludzie są zmęczeni sztuczkami, więc zrozumiałe jest, że Google postanowił skupić się na poprawie wydajności, energooszczędności, bezpieczeństwie i ogólnym doświadczeniu użytkownika. I podobnie jak iOS, Android jest teraz dojrzały. Jeśli jesteś rozczarowany brakiem nowych funkcji, sugeruję, abyś się do tego przyzwyczaił, ponieważ to nowa normalność .

Czasy szybkiej ewolucji sprzętu i oprogramowania w urządzeniach mobilnych już dawno minęły. Inkrementacja to nowa norma.

Pomyśl o tym, największą nowością związaną z Androidem 7.0 nie jest sam system operacyjny. Decyzja Google o wprowadzeniu nowych telefonów Pixel zaprojektowanych tak, aby wykorzystać wszystko, co ma do zaoferowania system operacyjny. Z punktu widzenia sprzętu nie są szczególnie wyjątkowe — są oparte na gotowej technologii, podobnie jak ich poprzednicy z serii Nexus. Ale model biznesowy Google dla Pixela jest zupełnie inny, z naciskiem na kontrolowanie kompleksowego doświadczenia użytkownika i dodawanie wartości w sposób podobny do Apple.

Jest za wcześnie, by spekulować, jaki wpływ będzie miał Pixel na resztę ekosystemu Androida, ale jedno jest pewne: będzie to delikatny balans. Google może zarezerwować niektóre funkcje wyłącznie dla własnych telefonów Pixel, ale jednocześnie nie może przesadzić z ręką. Nie może sobie pozwolić na zrazienie dostawców Androida i uczynienie ich produktów mniej konkurencyjnymi przez dodanie zbyt wielu funkcji ekskluzywnych dla Pixela.

Jak to wszystko się rozegra, dopiero się okaże, ale w międzyczasie powinniśmy skupić się na maksymalnym wykorzystaniu Androida 7.0. Właściwie zrób to 7.1, który jest w wersji beta i prawdopodobnie zostanie wkrótce wydany.

Powiązane: Android M (Android 6.0) dla programistów: ewolucyjny krok we właściwym kierunku