Wydanie mobilnej platformy Android 14

Firma Google opublikowała nową wersję otwartej platformy mobilnej Android 14. Powiązane z nowym wydaniem źródła zostały umieszczone w repozytorium Git projektu (gałąź android-14.0.0_r1). Aktualizacje oprogramowania są przygotowane dla urządzeń serii Pixel. W późniejszym czasie planowane są aktualizacje oprogramowania dla smartfonów produkcji Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo i Xiaomi. Dodatkowo stworzono uniwersalne obrazy GSI (Generic System Images), które są odpowiednie dla różnych urządzeń opartych na architekturze ARM64 i x86_64.

Główne nowości:

  • W głównym składzie platformy znajduje się magazyn Health Connect, wcześniej dostarczany w formie oddzielnego pakietu przez Google Play. Health Connect zapewnia centralne przechowywanie danych z opasek fitness i innych urządzeń związanych ze zdrowiem użytkownika oraz organizuje wspólny dostęp różnych aplikacji do danych o zdrowiu. Dostęp do ustawień Health Connect będzie teraz udostępniany przez wbudowany konfigurator platformy, na przykład poprzez ustawienia prywatności można zarządzać, do jakich dokładnie danych o zdrowiu mogą uzyskać dostęp określone aplikacje. Ponadto w Health Connect dodano wsparcie dla zapisywania informacji o trasie podczas treningu (użytkownik określa przedział czasowy, dla którego zostanie zapisany wykaz punktów na trasie). Trasa może być wizualizowana na mapie i, jeśli użytkownik zechce, przekazywana innym aplikacjom do przetworzenia, po wyraźnym potwierdzeniu operacji przez użytkownika.
    Wydanie mobilnej platformy Android 14
  • Rozszerzono środki potwierdzania dostępu do informacji o lokalizacji. Do dialogu z prośbą o potwierdzenie dostępu do lokalizacji dodano nową sekcję z informacjami o tym, kiedy aplikacja przekazuje dane o lokalizacji (dostęp zabroniony, zezwolić tylko raz i zezwolić przy każdym uruchomieniu aplikacji) oraz szczegółami, gdzie można uzyskać dodatkowe informacje o dostępie do przekazywanych danych.
    Wydanie mobilnej platformy Android 14
  • Wprowadzono okresowe (raz w miesiącu) powiadomienia ostrzegające o zmianach w aplikacjach, którym przyznano dostęp do lokalizacji, dotyczących sposobów przekazywania danych osobom trzecim (na przykład wyświetlane, gdy aplikacja zaczyna wykorzystywać dane o lokalizacji do wyświetlania reklam).
    Wydanie mobilnej platformy Android 14
  • W pracy z aplikacjami wprowadzono bardziej widoczną podpowiedź z powrotną strzałką, wyświetlaną w celu uproszczenia zrozumienia możliwości zastosowania gestu ekranu do powrotu.
    Wydanie mobilnej platformy Android 14
  • W mechanizmie Sharesheet, stosowanym do wysyłania danych (na przykład zdjęć lub linków) poza aplikację lub innemu użytkownikowi, wprowadzono możliwość dodawania własnych akcji. Na przykład można zdefiniować własną listę obsługiwanych akcji ChooserAction, pokazujących aplikacje i użytkowników, do których można wysłać. Dodatkowo rozszerzono zakres sygnałów stosowanych do rankingu celów dla bezpośredniego wysyłania danych.
    Wydanie mobilnej platformy Android 14
  • Umożliwiono częściowe przyznawanie uprawnień do dostępu tylko do wybranych przez użytkownika zdjęć i filmów (READ_MEDIA_VISUAL_USER_SELECTED; pliki, do których przyznano dostęp, są wybierane przez użytkownika za pośrednictwem interfejsu Photo picker podczas wyświetlania okna dialogowego żądania uprawnień). Po zakończeniu działania aplikacji lub jej przejściu w stan tła, przyznane przez użytkownika uprawnienie jest automatycznie wycofywane. W oknie dialogowym potwierdzenia uprawnień dostępu aplikacji do plików multimedialnych dodano możliwość przyznania dostępu tylko do wybranych zdjęć lub wideo.
    Wydanie mobilnej platformy Android 14
  • Do konfiguratora dodano sekcję do nadpisywania ustawień preferencji regionalnych, takich jak jednostki temperatury, pierwszy dzień tygodnia oraz system liczenia. Na przykład, Europejczyk żyjący w USA może ustawić wyświetlanie temperatury w stopniach Celsjusza zamiast Fahrenheita i uznać poniedziałek za pierwszy dzień tygodnia zamiast niedzieli.
    Wydanie mobilnej platformy Android 14
  • Rozszerzono możliwości skalowania czcionek; maksymalne powiększenie czcionki zwiększono z 130% do 200%. Aby tekst przy dużym powiększeniu nie wyglądał na zbyt dużą, automatycznie stosowane jest nieliniowe przekształcenie poziomu skalowania (już duży tekst powiększa się w mniejszym stopniu niż mały), co pozwoli osiągnąć optymalną czytelność tekstu przez osoby z osłabionym wzrokiem, bez ryzyka pojawienia się zniekształceń układu interfejsu.
    Wydanie mobilnej platformy Android 14
  • Wsparcie dla nagrywania wideo o wysokim zakresie dynamicznym (HDR), które pojawiło się w poprzedniej wersji, zostało rozszerzone o możliwości pozyskiwania z kamery dodatkowych informacji umożliwiających zapisywanie obrazów w formacie 'Ultra HDR', w którym do kodowania kolorów wykorzystuje się 10 bitów na kanał. Format Ultra HDR jest całkowicie kompatybilny z JPEG, co pozwala aplikacjom działać z obrazami HDR bez wprowadzania zmian, a w razie potrzeby wyświetlać je z użyciem standardowego zakresu jasności. Wyjście w trybie HDR zapewniane jest automatycznie przez platformę w przypadku aktywacji wsparcia HDR w Manifeście aplikacji lub przy wywołaniu Window.setColorMode. Do oddzielnego renderowania Ultra HDR za pomocą OpenGL lub Vulkan można zastosować klasę Gainmap.
    Wydanie mobilnej platformy Android 14
  • Rodzaje aplikacji, które mogą wyświetlać pełnoekranowe powiadomienia po zablokowaniu ekranu, są ograniczone. Powiadomienia te mają na celu zwrócenie uwagi na informacje wymagające natychmiastowej reakcji, takie jak połączenie przychodzące lub alarm, dlatego uprawnienia do wyświetlania takich powiadomień będą teraz ograniczone do aplikacji do wykonywania połączeń i wyświetlania ostrzeżeń.
  • Udoskonalone zarządzanie animacją sygnalizującą przejścia między różnymi ekranami (kartami) w aplikacji podczas przesunięcia zawartości. Dodano nowe komponenty do animacji przełączania dolnych i bocznych ekranów oraz wywoływania wyszukiwania. Wprowadzono API do tworzenia własnych efektów przejścia w aplikacji.
  • Zaktualizowany zestaw rozszerzeń dla aparatu (Camera Extensions), który umożliwia stosowanie dłużej działających algorytmów wymagających intensywnych obliczeń do przetwarzania obrazów, na przykład w celu poprawy jakości zdjęć wykonanych przy słabym oświetleniu. Dodano funkcje przewidywania opóźnień w przetwarzaniu zdjęcia, uzyskiwania informacji o postępie przetwarzania oraz szybkiego uzyskiwania wersji roboczej zdjęcia przed zakończeniem przygotowania finalnego obrazu. Wprowadzono bardziej zoptymalizowany i energooszczędny tryb podglądu SurfaceView. Podczas korzystania z rozszerzeń zapewniono wsparcie dotykowe w celu ustawienia ostrości i powiększenia.
  • Dodano wsparcie dla korzystania z wbudowanych w aparat funkcji skalowania i kadrowania przesyłanych obrazów RAW.
  • Dla słuchawek przewodowych podłączanych przez USB dodano możliwość wykorzystania formatów dźwiękowych bez straty jakości (lossless). W API dodano klasę AudioMixerAttributes, umożliwiającą bezpośrednie przesyłanie dźwięku do urządzenia, bez miksowania, regulacji głośności i przetwarzania efektów.
  • W graficznym API wprowadzono klasę Mesh, która umożliwia tworzenie własnych wariantów siatki poligonowej z wierzchołkowymi i fragmentowymi szadrami napisanymi w języku AGSL.
  • Dodano możliwość sprzętowego przyspieszenia rysowania do bufora, realizowanego poprzez klasę HardwareBufferRenderer.
  • W klasie Path, umożliwiającej tworzenie grafiki wektorowej na podstawie złożonych konturów geometrycznych, dodano wsparcie dla interpolacji między konturami o podobnej strukturze w celu uzyskania efektu morphingu oraz wykorzystania iteratora PathIterator do sekwencyjnego przeglądania wszystkich segmentów konturu.
  • Rozszerzono możliwości przypisywania poszczególnych ustawień językowych do różnych aplikacji. Umożliwiono definiowanie listy języków, które będą wyświetlane w konfiguratorze Android podczas wyboru języka dla konkretnej aplikacji.
  • Rozszerzone obszary, w których system wyświetla informacje związane z prywatnością określone przez dewelopera w formularzu Play Console, takie jak polityka dotycząca udostępniania danych osobom trzecim. Na przykład takie dane są teraz wyświetlane w dialogu prośby o uprawnienia.
  • W aplikacjach korzystających z procesorów działających w tle teraz konieczne jest określenie typu usługi tła. Podczas działania system sprawdza zgodność wskazanego typu usługi, żądanych uprawnień i używanego API. Na przykład, jeśli aplikacja wskazała typ usługi tła FOREGROUND_SERVICE_TYPE_LOCATION, przypuszcza się, że mogą być zażądane uprawnienia ACCESS_COARSE_LOCATION lub ACCESS_FINE_LOCATION.
  • Wprowadzone zmiany w celu poprawy bezpieczeństwa: Aplikacjom zabroniono wysyłania zapytań intent do niektórych wewnętrznych komponentów platformy. Dynamicznie ładowany kod musi być teraz oznaczany atrybutem dostępu tylko do odczytu. Funkcje ZipFile(String) i ZipInputStream.getNextEntry() zabraniają przetwarzania archiwów zip, których ścieżki zaczynają się od znaku „/” lub zawierają sekwencję „..”. Ograniczono uruchamianie zadań z procesorów działających w tle oraz zaktualizowane ograniczenia dotyczące wywołań interfejsów programistycznych, które nie są dostarczane w SDK.
  • Podczas podłączania urządzenia przez USB do komputera stacjonarnego, poza wcześniej dostępnymi trybami interakcji, takimi jak przesyłanie plików, ładowanie, udostępnianie internetu itd., istnieje możliwość korzystania ze smartfona jako z kamery internetowej (tryb UVC, USB Video Class). Domyślnie ta funkcjonalność jest wyłączona, ale może być aktywowana przy posiadaniu dostępu root.
  • Kontynuowane są prace nad poprawą funkcjonowania platformy na tabletach i urządzeniach ze składanym ekranem. Udostępniono biblioteki zapewniające przewidywanie zdarzeń związanych z ruchem wskaźnika oraz zapewniające niskie opóźnienia w pracy z rysikami. Udostępniono szablony interfejsu dla dużych ekranów, uwzględniające takie aplikacje jak media społecznościowe, komunikacja, multimedia, czytanie oraz zakupy.
  • Dodano osobne uprawnienie umożliwiające aplikacjom uruchamianie działań, gdy znajdują się w tle. Aktywacja w tle jest ograniczona, aby nie zakłócać użytkownika podczas pracy z bieżącą aplikacją. Aktywne aplikacje otrzymały więcej możliwości kontrolowania aktywacji działań przez inne aplikacje, z którymi współdziałają.
  • Przeprowadzono optymalizację systemu zarządzania pamięcią w celu bardziej efektywnego przydzielania zasobów aplikacjom działającym w tle. Po kilku sekundach od przetworzenia aplikacji w stan buforowany, praca w tle jest ograniczona do interakcji z API zarządzającymi cyklem życia aplikacji, takimi jak API Foreground Services, JobScheduler i WorkManager.
  • Powiadomienia oznaczone flagą FLAG_ONGOING_EVENT mogą być teraz odrzucane, gdy urządzenie ma odblokowany ekran. Jeśli urządzenie jest zablokowane, takie powiadomienia pozostaną nieodrzucalne. Powiadomienia istotne dla funkcjonowania systemu również pozostaną nieodrzucalne.
  • W API PackageInstaller dodano nowe metody: requestUserPreapproval(), która pozwala katalogowi aplikacji odłożyć pobieranie pakietów APK do momentu uzyskania potwierdzenia od użytkownika; setRequestUpdateOwnership(), która umożliwia przypisanie instalatorowi przyszłych operacji aktualizacji aplikacji; setDontKillApp(), która pozwala na dodatkowe opcje dla aplikacji podczas pracy z programem. W API InstallConstraints instalatorzy uzyskali możliwość aktywacji instalacji aktualizacji aplikacji w momentach, gdy aplikacja nie jest używana.
  • Kontynuowane są prace nad ulepszeniem działania platformy na tabletach i urządzeniach z giętkimi ekranami. Zaktualizowano wytyczne dotyczące tworzenia aplikacji na urządzenia z dużymi ekranami oraz dodano typowe szablony interfejsu dla dużych ekranów, które uwzględniają takie zastosowania jak media społecznościowe, komunikacja, treści multimedialne, czytanie i zakupy. Zaproponowano wstępne wydanie Cross device SDK z narzędziami do tworzenia aplikacji, które poprawnie działają z różnymi typami urządzeń (smartfony, tablety, inteligentne telewizory itp.) i różnymi formatami.
  • Zoptymalizowano koordynację wykonywania zasobożernych zadań w tle, takich jak przesyłanie dużych plików przy połączeniu Wi-Fi. Wprowadzono zmiany w interfejsie API uruchamiania usług priorytetowych (Foreground Service) oraz planowania zadań (JobScheduler), dodając nową funkcjonalność dla zadań związanych z przesyłaniem danych przez użytkownika. Wprowadzono wymagania dotyczące wskazania typu uruchamianych usług priorytetowych (praca z kamerą, synchronizacja danych, odtwarzanie multimediów, śledzenie lokalizacji, dostęp do mikrofonu itp.). Uproszczono definicję warunków aktywacji przesyłania danych, na przykład tylko w przypadku dostępu przez Wi-Fi.
  • Wewnętrzny system dostarczania komunikatów aplikacjom (broadcast system) został zoptymalizowany w celu zmniejszenia zużycia energii i zwiększenia responsywności. Ulepszono odbiór zarejestrowanych strumieni komunikatów przez aplikacje — komunikaty mogą być umieszczane w kolejce, łączone (na przykład, seria komunikatów BATTERY_CHANGED będzie agregowana w jedno) i dostarczane tylko po opuszczeniu przez aplikację stanu pamięci podręcznej.
  • Zwiększono limit maksymalnej liczby aplikacji w pamięci podręcznej, co pozwoliło na zmniejszenie liczby aplikacji uruchamianych w trybie «zimnym» (tj. nie cache'owanych w pamięci i uruchamianych wolniej). Dla urządzeń z 8 GB RAM liczba «zimnych» uruchomień aplikacji zmniejszyła się o 20%, a dla tych z 12 GB — o 30%.
  • Użycie funkcji wykonywania operacji w dokładnym czasie (exact alarms) w aplikacjach wymaga teraz uzyskania oddzielnego uprawnienia SCHEDULE_EXACT_ALARM, ponieważ zastosowanie tej funkcjonalności może negatywnie wpływać na czas pracy na baterii i prowadzić do zwiększonego zużycia zasobów (dla zadań wykonywanych zgodnie z harmonogramem zaleca się korzystanie z aktywacji w przybliżonym czasie). Aplikacjom z realizacją kalendarza i zegara, które korzystają z aktywacji w dokładnym czasie, musi być przyznane uprawnienie USE_EXACT_ALARM podczas instalacji. Publikacja w katalogu Google Play aplikacji z uprawnieniem USE_EXACT_ALARM jest dozwolona tylko dla programów realizujących budzik, timer i kalendarz z powiadomieniami o wydarzeniach.
  • Dodano możliwość wskazywania ustawień językowych przypisanych do poszczególnych aplikacji. Programista aplikacji może teraz zmieniać parametry localeConfig za pomocą wywołania LocaleManager.setOverrideLocaleConfig, aby określić listę języków wyświetlanych dla aplikacji w interfejsie ustawień Android.
  • Dodano API Grammatical Inflection, aby ułatwić dodawanie tłumaczeń elementów interfejsu uwzględniających języki z systemem rodzajów.
  • Aby zapobiec przechwytywaniu przez złośliwe aplikacje zapytań intent, w nowej wersji zabroniono wysyłania intentów bez wyraźnego wskazania pakietu lub wewnętrznego komponentu.
  • Zwiększono bezpieczeństwo dynamicznego ładowania kodu (DCL, Dynamic Code Loading) — aby uniknąć podstawienia złośliwego kodu do dynamicznie ładowanych plików wykonywalnych, pliki te muszą teraz mieć prawa dostępu zezwalające tylko na odczyt.
  • Instalacja aplikacji, które deklarują wersję SDK poniżej 23, jest zabroniona, co pozwoli na zablokowanie obejścia ograniczeń uprawnień poprzez powiązanie ze starszymi API (wersja API 22 jest zabroniona, ponieważ w wersji 23 (Android 6.0) wprowadzono nowy model zarządzania dostępem, umożliwiający w czasie rzeczywistym żądanie dostępu do zasobów systemowych). Aplikacje zainstalowane wcześniej, wykorzystujące starsze API, nadal będą działać po aktualizacji Androida.
  • Proponuje się interfejs API Credential Manager, umożliwiający organizację logowania w aplikacjach z wykorzystaniem danych uwierzytelniających zewnętrznych dostawców. Wprowadzono wsparcie dla technologii Passkeys, która umożliwia użytkownikowi uwierzytelnianie bez haseł z wykorzystaniem biometrycznych identyfikatorów, takich jak odcisk palca czy rozpoznawanie twarzy. Ulepszono interfejs do wyboru konta.
  • W Android Runtime (ART) wprowadzono wsparcie dla OpenJDK 17. Podstawowe biblioteki Java platformy oraz narzędzia do tworzenia aplikacji zostały zaktualizowane do OpenJDK 17. Dodano wsparcie dla dostępnych w OpenJDK 17 funkcji językowych i klas Java, na przykład klas typu record, wielowierszowych łańcuchów i dopasowania wzorca w operatorze «instanceof».
  • W Android Runtime zastosowano bardziej zaawansowane metody kompresji, które pozwoliły na zmniejszenie rozmiaru plików średnio o 9,3% bez utraty wydajności.
  • Został zmieniony sposób aktualizacji certyfikatów urzędów certyfikacji (CA). Certyfikaty systemowe nie będą już związane z oprogramowaniem, a będą dostarczane osobnym pakietem, który będzie aktualizowany przez Google Play. Takie podejście uprości utrzymanie aktualnych certyfikatów oraz usuwanie certyfikatów skompromitowanych urzędów certyfikacji, a także uniemożliwi producentom urządzeń manipulację listą zaufanych certyfikatów i uczyni proces aktualizacji niezależnym od aktualizacji oprogramowania. Z drugiej strony, nowy sposób dostarczania nie pozwoli użytkownikowi na wprowadzanie zmian w certyfikatach systemowych, nawet jeśli ma on dostęp root w systemie i całkowicie kontroluje oprogramowanie.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster