Wydanie platformy mobilnej Android 12

Google opublikowało wersję otwartej platformy mobilnej Android 12. Teksty źródłowe związane z nową wersją znajdują się w repozytorium Git projektu (gałąź android-12.0.0_r1). Aktualizacje oprogramowania sprzętowego przygotowywane są dla urządzeń z serii Pixel, a także smartfonów marek Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo i Xiaomi. Dodatkowo stworzono uniwersalne złożenia GSI (Generic System Images), odpowiednie dla różnych urządzeń opartych na architekturach ARM64 i x86_64.

Główne innowacje:

  • Zaproponowano jedną z najważniejszych aktualizacji projektu interfejsu w historii projektu. Nowy projekt realizuje koncepcję „Material You”, reklamowaną jako następna generacja Material Design. Nowa koncepcja zostanie automatycznie zastosowana do wszystkich platform i elementów interfejsu i nie będzie wymagała od twórców aplikacji wprowadzania żadnych zmian. W lipcu planowane jest udostępnienie twórcom aplikacji pierwszej stabilnej wersji nowego zestawu narzędzi do tworzenia interfejsów graficznych - Jetpack Compose.
    Wydanie platformy mobilnej Android 12

    Sama platforma posiada nowy wygląd widgetów. Widgety zostały bardziej widoczne, rogi lepiej zaokrąglone, a także zapewniono możliwość wykorzystania dynamicznych kolorów pasujących do tematyki systemu. Dodano interaktywne kontrolki, takie jak pola wyboru i przełączniki (CheckBox, Switch i RadioButton), umożliwiające na przykład edycję list zadań w widżecie TODO bez otwierania aplikacji.

    Wydanie platformy mobilnej Android 12

    Zaimplementowano płynniejsze wizualne przejście do aplikacji uruchamianych z widżetów. Uproszczono personalizację widżetów – dodano przycisk (kółko z ołówkiem) umożliwiający szybką zmianę położenia widżetu na ekranie, który pojawia się po dłuższym dotknięciu widżetu.

    Wydanie platformy mobilnej Android 12Wydanie platformy mobilnej Android 12

    Dodatkowe tryby pozwalają na ograniczenie rozmiaru widżetu oraz możliwość wykorzystania adaptacyjnego układu elementów widżetu (układu responsywnego) do tworzenia standardowych układów, które zmieniają się w zależności od wielkości widocznego obszaru (można np. tworzyć osobne układy dla tablety i smartfony). Interfejs wyboru widżetów implementuje dynamiczny podgląd i możliwość wyświetlenia opisu widżetu.

    Wydanie platformy mobilnej Android 12
  • Dodano możliwość automatycznego dostosowania palety systemowej do koloru wybranej tapety – system automatycznie wykrywa dominujące kolory, dostosowuje aktualną paletę i wprowadza zmiany we wszystkich elementach interfejsu, w tym w obszarze powiadomień, ekranie blokady, widżetach i regulacji głośności.
  • Zaimplementowano nowe efekty animowane, takie jak stopniowe powiększanie i płynne przesuwanie obszarów podczas przewijania, pojawiania się i przesuwania elementów na ekranie. Na przykład, gdy anulujesz powiadomienie na ekranie blokady, wskaźnik czasu automatycznie się powiększy i zajmie miejsce, które poprzednio zajmowało powiadomienie.
  • Przeprojektowano wygląd rozwijanego obszaru z powiadomieniami i szybkimi ustawieniami. Do szybkich ustawień dodano opcje Google Pay i sterowania inteligentnym domem. Przytrzymanie przycisku zasilania powoduje wyświetlenie Asystenta Google, któremu możesz nakazać wykonanie połączenia, otwarcie aplikacji lub przeczytanie artykułu na głos. Powiadomienia o treści określonej przez aplikację prezentowane są w formie ogólnej.
    Wydanie platformy mobilnej Android 12
  • Dodano efekt przewijania Rozciągnij, aby wskazać, że użytkownik wyszedł poza obszar przewijania i dotarł do końca treści. Dzięki nowemu efektowi obraz treści wydaje się rozciągać i odskakiwać. Nowe zachowanie końca przewijania jest domyślnie włączone, ale w ustawieniach dostępna jest opcja przywrócenia starego zachowania.
  • Interfejs został zoptymalizowany dla urządzeń ze składanymi ekranami.
    Wydanie platformy mobilnej Android 12
  • Zaimplementowano płynniejsze przejścia audio - podczas przełączania z jednej aplikacji odtwarzającej dźwięk do drugiej, dźwięk pierwszej jest teraz płynnie wyciszany, a drugiej płynnie się zwiększa, bez nakładania się jednego dźwięku na drugi.
  • Zmodernizowano interfejs do zarządzania połączeniami sieciowymi w bloku szybkich ustawień, panelu i konfiguratorze systemu. Dodano nowy panel internetowy, który umożliwia szybkie przełączanie się pomiędzy różnymi dostawcami i diagnozowanie problemów.
    Wydanie platformy mobilnej Android 12
  • Dodano możliwość tworzenia zrzutów ekranu obejmujących nie tylko widoczny obszar, ale także zawartość obszaru przewijania. Możliwość przechowywania zawartości poza widocznym obszarem działa we wszystkich aplikacjach korzystających z klasy View jako danych wyjściowych. Aby zaimplementować obsługę przewijania zrzutów ekranu w programach korzystających z określonych interfejsów, zaproponowano API ScrollCapture.
    Wydanie platformy mobilnej Android 12
  • Funkcja automatycznego obracania zawartości ekranu została ulepszona i może teraz korzystać z rozpoznawania twarzy z przedniego aparatu, aby określić, czy ekran wymaga obrócenia, na przykład gdy ktoś korzysta z telefonu w pozycji leżącej. Aby zapewnić poufność, informacje są przetwarzane na bieżąco, bez pośredniego przechowywania obrazów. Ta funkcja jest obecnie dostępna tylko na smartfonach Pixel 4 i nowszych.
  • Ulepszony tryb obrazu w obrazie (PIP, obraz w obrazie) i zwiększona płynność efektów przejść. Jeśli włączysz automatyczne przejście do trybu PIP za pomocą gestu „do domu” (przesunięcie dolnej części ekranu w górę), aplikacja zostanie natychmiast przełączona w tryb PIP, bez czekania na zakończenie animacji. Poprawiono zmianę rozmiaru okien PIP z treściami innymi niż wideo. Dodano możliwość ukrycia okna PIP poprzez przeciągnięcie go do lewej lub prawej krawędzi ekranu. Zmieniono zachowanie podczas dotykania okna PIP - jedno dotknięcie wyświetla teraz przyciski sterujące, a podwójne dotknięcie zmienia rozmiar okna.
  • Optymalizacje wydajności:
    • Przeprowadzono znaczną optymalizację wydajności systemu - obciążenie procesora głównych usług systemowych spadło o 22%, co w efekcie przełożyło się na wzrost żywotności baterii o 15%. Zmniejszając rywalizację o blokady, zmniejszając opóźnienia i optymalizując operacje we/wy, zwiększa się wydajność przechodzenia z jednej aplikacji do drugiej, a czas uruchamiania aplikacji ulega skróceniu.

      W PackageManager podczas pracy z migawkami w trybie tylko do odczytu rywalizacja o blokady jest zmniejszona o 92%. Mechanizm komunikacji międzyprocesowej Bindera wykorzystuje lekkie buforowanie, aby w przypadku niektórych typów połączeń zmniejszyć opóźnienia nawet 47-krotnie. Poprawiona wydajność przetwarzania plików dex, odex i vdex, co skutkuje krótszym czasem ładowania aplikacji, szczególnie na urządzeniach z małą ilością pamięci. Uruchamianie aplikacji z powiadomień zostało przyspieszone, np. uruchamianie Zdjęć Google z powiadomienia jest teraz o 34% szybsze.

      Wydajność zapytań do bazy danych została poprawiona dzięki zastosowaniu optymalizacji wbudowanych w operacji CursorWindow. W przypadku małych ilości danych CursorWindow stał się o 36% szybszy, a w przypadku zestawów zawierających ponad 1000 wierszy przyspieszenie może wzrosnąć nawet 49 razy.

      Zaproponowano kryteria klasyfikacji urządzeń ze względu na wydajność. Na podstawie możliwości urządzenia przypisuje się mu klasę wydajności, którą można następnie wykorzystać w aplikacjach do ograniczania funkcjonalności kodeków na urządzeniach o niskim poborze mocy lub do obsługi treści multimedialnych wyższej jakości na wydajnym sprzęcie.

    • Zaimplementowano tryb hibernacji aplikacji, który pozwala, jeśli użytkownik przez dłuższy czas nie miał jawnej interakcji z programem, automatycznie zresetować wcześniej przyznane uprawnienia do aplikacji, zatrzymać wykonywanie, zwrócić zasoby wykorzystywane przez aplikację, takie jak pamięć, i blokuj uruchamianie pracy w tle i wysyłanie powiadomień push. Tryb ten może być używany w większości aplikacji i pozwala chronić dane użytkownika, do których nadal mają dostęp dawno zapomniane programy. W razie potrzeby tryb hibernacji można selektywnie wyłączyć w ustawieniach.
    • Animacja podczas obracania ekranu została zoptymalizowana, zmniejszając opóźnienie przed obrotem o około 25%.
    • W strukturze znajduje się nowa, wysokowydajna wyszukiwarka AppSearch, która umożliwia indeksowanie informacji na urządzeniu oraz przeprowadzanie wyszukiwania pełnotekstowego z rankingiem wyników. AppSearch udostępnia dwa rodzaje indeksów – do organizowania wyszukiwań w poszczególnych aplikacjach oraz do przeszukiwania całego systemu.
    • Dodano API trybu gry i odpowiednie ustawienia, które pozwalają zarządzać profilem wydajności gry - na przykład możesz poświęcić wydajność, aby wydłużyć czas pracy baterii lub wykorzystać wszystkie dostępne zasoby, aby osiągnąć maksymalny FPS.
    • Dodano funkcję odtwarzania podczas pobierania, umożliwiającą pobieranie zasobów gry w tle podczas procesu instalacji, co pozwala na rozpoczęcie gry przed zakończeniem pobierania. aplikacja.
    • Zwiększona responsywność i szybkość reakcji podczas pracy z powiadomieniami. Na przykład, gdy użytkownik dotknie powiadomienia, natychmiast przeniesie go do powiązanej aplikacji. Aplikacje ograniczają korzystanie z trampolin powiadamiających.
    • Zoptymalizowane wywołania IPC w Binderze. Dzięki zastosowaniu nowej strategii buforowania i wyeliminowaniu rywalizacji o blokady opóźnienia zostały znacznie zmniejszone. Ogólnie rzecz biorąc, wydajność połączeń Bindera wzrosła mniej więcej dwukrotnie, ale w niektórych obszarach osiągnięto jeszcze większe przyspieszenie. Na przykład wywołanie refContentProvider() stało się 47 razy szybsze, releaseWakeLock() 15 razy szybsze, a JobScheduler.schedule() 7.9 razy szybsze.
    • Aby zapobiec potencjalnym problemom z wydajnością, aplikacjom nie wolno uruchamiać usług na pierwszym planie podczas działania w tle, z wyjątkiem kilku specjalnych przypadków. Aby rozpocząć pracę w tle, zaleca się użycie WorkManager. Aby uprościć przejście, w JobScheduler zaproponowano nowy rodzaj pracy, który rozpoczyna się natychmiast, ma zwiększony priorytet i dostęp do sieci.
  • Zmiany wpływające na bezpieczeństwo i prywatność:
    • Zaimplementowano interfejs Privacy Dashboard z ogólnym przeglądem wszystkich ustawień uprawnień, co pozwala zrozumieć, do czego mają dostęp aplikacje danych użytkownika. Interfejs zawiera także oś czasu wizualizującą historię dostępu aplikacji do mikrofonu, kamery i danych o lokalizacji. Dla każdej aplikacji możesz zobaczyć szczegóły i powody dostępu do wrażliwych danych.
      Wydanie platformy mobilnej Android 12
    • Do panelu dodano wskaźniki aktywności mikrofonu i kamery, które pojawiają się, gdy aplikacja uzyskuje dostęp do kamery lub mikrofonu. Po kliknięciu wskaźników pojawia się okno dialogowe z ustawieniami, w którym możesz określić, która aplikacja współpracuje z kamerą lub mikrofonem, a jeśli to konieczne, cofnąć uprawnienia.
    • Do wyskakującego bloku szybkich ustawień dodano przełączniki, za pomocą których można na siłę wyłączyć mikrofon i kamerę. Po wyłączeniu próby uzyskania dostępu do kamery i mikrofonu będą skutkować powiadomieniem i przesłaniem do aplikacji pustych danych.
      Wydanie platformy mobilnej Android 12
    • Dodano nowe powiadomienie pojawiające się na dole ekranu przy każdej próbie odczytania zawartości schowka przez aplikację poprzez wywołanie funkcji getPrimaryClip(). Jeżeli zawartość schowka zostanie skopiowana w tej samej aplikacji, w której została dodana, powiadomienie nie pojawi się.
    • Dodano osobne pozwolenie BLUETOOTH_SCAN na skanowanie pobliskich urządzeń przez Bluetooth. Wcześniej możliwość ta zapewniana była w oparciu o dostęp do informacji o lokalizacji urządzenia, co skutkowało koniecznością nadawania dodatkowych uprawnień aplikacjom wymagającym parowania z innym urządzeniem poprzez Bluetooth.
    • Zmodernizowano okno dialogowe umożliwiające dostęp do informacji o lokalizacji urządzenia. Użytkownik ma teraz możliwość przekazania aplikacji informacji o dokładnej lokalizacji lub podania jedynie przybliżonych danych, a także ograniczenia uprawnień tylko do aktywnej sesji z programem (odmowa dostępu w tle). Poziom dokładności danych zwracanych przy wyborze przybliżonej lokalizacji można zmienić w ustawieniach, także w odniesieniu do poszczególnych aplikacji.
      Wydanie platformy mobilnej Android 12
    • Twórcy aplikacji mają możliwość wyłączenia ostrzeżeń wyskakujących okienek, które nakładają się na treść. Wcześniej możliwość wyświetlania nakładających się okien była kontrolowana poprzez wymaganie weryfikacji uprawnień podczas instalacji aplikacji wyświetlających nakładające się okna. Nie było dostępnych narzędzi wpływających na nakładanie się treści z aplikacji, których okna się pokrywają. Podczas korzystania z wywołania Window#setHideOverlayWindows() wszystkie nakładające się okna będą teraz automatycznie ukryte. Można np. włączyć ukrywanie podczas wyświetlania szczególnie ważnych informacji, takich jak potwierdzenie transakcji.
    • Aplikacje otrzymują dodatkowe ustawienia ograniczające powiadomienia, gdy ekran jest zablokowany. Wcześniej miałeś możliwość kontrolowania widoczności powiadomień tylko wtedy, gdy ekran był zablokowany, ale teraz możesz włączyć obowiązkowe uwierzytelnianie, aby wykonywać jakiekolwiek czynności związane z powiadomieniami, gdy ekran jest zablokowany. Na przykład aplikacja do przesyłania wiadomości może wymagać uwierzytelnienia przed usunięciem lub oznaczeniem wiadomości jako przeczytanej.
    • Dodano API PackageManager.requestChecksums() umożliwiające żądanie i weryfikację sumy kontrolnej zainstalowanej aplikacji. Obsługiwane algorytmy obejmują SHA256, SHA512 i Merkle Root.
    • Silnik internetowy WebView implementuje możliwość wykorzystania atrybutu SameSite do kontrolowania przetwarzania plików cookie. Wartość „SameSite=Lax” ogranicza wysyłanie plików cookie w przypadku żądań podrzędnych między witrynami, takich jak żądanie obrazu lub ładowanie treści za pośrednictwem elementu iframe z innej witryny. W trybie „SameSite=Strict” pliki cookie nie są wysyłane w przypadku jakichkolwiek żądań między witrynami, w tym wszystkich linków przychodzących z witryn zewnętrznych.
    • Kontynuujemy prace nad losowaniem adresów MAC, aby wyeliminować możliwość śledzenia urządzenia po podłączeniu do sieci bezprzewodowej. Nieuprzywilejowane aplikacje mają ograniczony dostęp do adresu MAC urządzenia i wywołanie getHardwareAddress() zwraca teraz wartość null.
  • Zmiany i ulepszenia niskiego poziomu dla twórców aplikacji:
    • Dodano możliwość dostosowania elementów interfejsu do urządzeń z zaokrąglonymi ekranami. Programiści mogą teraz uzyskać informacje o zaokrągleniach ekranu i dostosować elementy interfejsu, które mieszczą się w niewidocznych obszarach rogów. Dzięki nowemu API RoundedCorner możesz poznać parametry, takie jak promień i środek zaokrąglenia, a poprzez Display.getRoundedCorner() i WindowInsets.getRoundedCorner() możesz określić współrzędne każdego zaokrąglonego rogu ekranu.
      Wydanie platformy mobilnej Android 12
    • Dodano nowy interfejs API CompanionDeviceService, za pomocą którego można aktywować aplikacje sterujące urządzeniami towarzyszącymi, takimi jak smartwatche i trackery fitness. API rozwiązuje problem uruchamiania i podłączania niezbędnych aplikacji, gdy w pobliżu pojawi się urządzenie towarzyszące. System aktywuje usługę, gdy urządzenie znajdzie się w pobliżu i wysyła powiadomienie, gdy urządzenie zostanie odłączone lub gdy urządzenie wejdzie lub wyjdzie z zasięgu. Aplikacje mogą także korzystać z nowego profilu urządzenia towarzyszącego, aby łatwiej konfigurować uprawnienia do dołączenia do urządzenia.
    • Ulepszony system prognozowania wydajności. Aplikacje mogą teraz żądać informacji o przewidywanej całkowitej przepustowości w odniesieniu do operatora, konkretnej sieci bezprzewodowej (SSID Wi-Fi), typu sieci i siły sygnału.
    • Stosowanie typowych efektów wizualnych, takich jak rozmycie i zniekształcenie kolorów, zostało uproszczone i można je teraz zastosować za pomocą interfejsu API RenderEffect do dowolnego obiektu RenderNode lub całego widocznego obszaru, w tym w łańcuchu z innymi efektami. Ta funkcja umożliwia na przykład rozmycie obrazu wyświetlanego przez ImageView bez jawnego kopiowania, przetwarzania i zastępowania mapy bitowej, przenosząc te działania na stronę platformy. Dodatkowo zaproponowano API Window.setBackgroundBlurRadius(), za pomocą którego można rozmyć tło okna efektem matowego szkła oraz podkreślić głębię poprzez rozmycie przestrzeni otaczającej okno.
      Wydanie platformy mobilnej Android 12
    • Zintegrowane narzędzia do transkodowania strumieni multimediów, których można używać w środowiskach z aplikacją aparatu zapisującą wideo w formacie HEVC, aby zapewnić kompatybilność z aplikacjami, które nie obsługują tego formatu. Dla takich zastosowań do bardziej popularnego formatu AVC dodano funkcję automatycznego transkodowania.
    • Dodano obsługę formatu obrazu AVIF (AV1 Image Format), który wykorzystuje technologie kompresji wewnątrzklatkowej z formatu kodowania wideo AV1. Kontener do dystrybucji skompresowanych danych w AVIF jest całkowicie podobny do HEIF. AVIF obsługuje zarówno obrazy w HDR (High Dynamic Range) i szerokiej gamie kolorów, jak i w standardowym zakresie dynamiki (SDR).
    • Zaproponowano ujednolicony interfejs API OnReceiveContentListener do wstawiania i przenoszenia rozszerzonych typów treści (sformatowany tekst, obrazy, filmy, pliki audio itp.) pomiędzy aplikacjami korzystającymi z różnych źródeł danych, w tym schowka, klawiatury i interfejsu przeciągnij i upuść.
    • Dodano efekt dotykowego sprzężenia zwrotnego, realizowany za pomocą silnika wibracyjnego wbudowanego w telefony, którego częstotliwość i intensywność wibracji zależy od parametrów aktualnie emitowanego dźwięku. Nowy efekt pozwala fizycznie poczuć dźwięk i można go wykorzystać do dodania dodatkowego realizmu grom i programom dźwiękowym.
    • W trybie Immersive, w którym program jest wyświetlany na pełnym ekranie z ukrytymi panelami usług, nawigacja jest uproszczona za pomocą gestów sterujących. Na przykład po książkach, filmach i zdjęciach można teraz poruszać się jednym gestem machnięcia.
    • W ramach projektu Mainline, który pozwala na aktualizację poszczególnych komponentów systemu bez aktualizacji całej platformy, oprócz 22 modułów dostępnych w systemie Android 11, przygotowano nowe, aktualizowalne moduły systemu. Aktualizacje dotyczą komponentów niesprzętowych, które pobierane są poprzez Google Play oddzielnie od aktualizacji oprogramowania sprzętowego OTA od producenta. Wśród nowych modułów, które można aktualizować za pośrednictwem Google Play bez aktualizacji oprogramowania sprzętowego, znajduje się ART (Android Runtime) oraz moduł do transkodowania wideo.
    • Do klasy WindowInsets dodano API umożliwiające określenie położenia wyświetlania wskaźników użycia kamery i mikrofonu (wskaźniki mogą nakładać się na elementy sterujące w programach wdrożonych na pełnym ekranie, a poprzez określone API aplikacja może dostosować swój interfejs).
    • Dla urządzeń zarządzanych centralnie dodano opcję uniemożliwiającą użycie przełączników wyciszających mikrofon i kamerę.
    • W przypadku aplikacji CDM (Companion Device Manager) działających w tle, które kontrolują urządzenia towarzyszące, takie jak inteligentne zegarki i trackery fitness, możliwe jest uruchomienie usług na pierwszym planie.
    • Zamiast wersji na urządzenia ubieralne, Android Wear wraz z Samsungiem postanowili opracować nową, ujednoliconą platformę, która łączy w sobie możliwości Androida i Tizen.
    • Rozszerzono możliwości wersji Android dla samochodowych systemów informacyjno-rozrywkowych i telewizorów Smart TV.

    Źródło: opennet.ru

  • Dodaj komentarz