Firma Google zaprezentowała drugą wersję testową otwartej mobilnej platformy Android 15. Wydanie Android 15 jest planowane na trzeci kwartał 2024 roku. Aby ocenić nowe możliwości platformy, zaproponowano program wstępnego testowania. Zbiory oprogramowania zostały przygotowane dla urządzeń Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel Fold oraz Pixel Tablet.
Zmiany w Android 15 Developer Preview 2 w porównaniu do pierwszej wersji wstępnej:
- Aplikacje zyskały możliwość korzystania z małych ekranów pomocniczych (Cover screen), które wyposażone są niektóre składane smartfony, takie jak Samsung Galaxy Z Flip. Na przykład, ekran pomocniczy umożliwia szybkie odebranie połączenia, odpowiedzenie na wiadomość, zarządzanie aparatem i wykonywanie innych działań bez otwierania urządzenia.

- W widżecie TextView domyślnie włączony jest atrybut elegantTextHeight, w którym zamiast zwartego kroju pisma używane są czcionki z większymi odstępami pionowymi, co poprawia czytelność tekstu.


- Rozszerzono możliwości pracy przez kanały komunikacji satelitarnej. Dodano nowe elementy interfejsu w celu ujednolicenia korzystania z łączy satelitarnych. Aplikacje otrzymały możliwość określenia wykorzystania kanału satelitarnego za pomocą metody ServiceState.isUsingNonTerrestrialNetwork(). W interfejsie do obsługi SMS/MMS wdrożono wsparcie dla wysyłania i odbierania wiadomości przez kanały satelitarne.

- Przeprowadzono prace nad uproszczeniem korzystania z telefonu obsługującego NFC do płatności za produkty jednym dotknięciem (tap to pay). Aplikacjom udostępniono możliwość przełączania adaptera NFC w tryb nasłuchiwania, w którym urządzenie przyjmuje zapytania przez NFC i wysyła je do wskazanego procesu do przetworzenia, ale nie odpowiada i nie przesyła danych do czytników NFC.
- Zdecydowanie rozszerzono możliwości rysowania dokumentów PDF (API PdfRenderer). Na przykład, udostępniono środki do rysowania plików zabezpieczonych hasłem, wyświetlania adnotacji, edytowania formularzy, wyszukiwania wewnątrz dokumentu oraz zaznaczania obszarów do skopiowania w schowku. Dodano optymalizacje, które zmniejszają zużycie zasobów i przyspieszają przeglądanie lokalnych plików PDF. Realizacja API PdfRenderer została wydzielona do oddzielnego modułu, który jest aktualizowany przez Google Play i nie jest powiązany z główną platformą.

- Udoskonalone możliwości automatycznego rozpoznawania języka i przełączania języków. Aplikacjom zapewniono rozszerzone opcje do precyzyjnego dostosowywania przełączania języków podczas rozpoznawania mowy. Na przykład, tryb EXTRA_LANGUAGE_SWITCH_INITIAL_ACTIVE_DURATION_TIME_MILLIS pozwala na przełączanie tylko na początku sesji dźwiękowej, a tryb EXTRA_LANGUAGE_SWITCH_MATCH_SWITCHES cofa przełączanie języka po określonej liczbie przełączeń, co może być potrzebne w sytuacjach, gdy z góry wiadomo, że w jednej sesji będzie używany tylko jeden język.
- Zostały wprowadzone możliwości elastycznego zarządzania łamaniem wierszy. W widżecie TextView dla poprawy czytelności przy użyciu znaczników i można zarządzać przenoszeniem grup słów lub części słów do innego wiersza. Na przykład w zdaniu „The power and brains behind Pixel 8 Pro.” fraza „Pixel 8 Pro” zawsze będzie wyświetlana w jednej linii.


- Rozszerzone możliwości filtracji zapytań intent. Za pomocą klasy UriRelativeFilterGroup można ustalać zasady blokowania lub przepuszczania zapytań na podstawie zawartości parametrów URL i fragmentów URL. Zasady filtracji można również ustalać przez nowy znacznik w manifeście aplikacji.
- Rozszerzona obsługa API OpenJDK. Na przykład dodano obsługę dodatkowych metod klas Math i StrictMath, uporządkowanych kolekcji i list, użycie ByteBuffer w Deflater oraz aktualizację kluczy.
- Dodano API, które pozwala aplikacjom określać wykonywanie nagrywania ekranu. Aplikacja może określić callback-handler, który zostanie wywołany, jeśli nagrywanie ekranu jest włączone, a okno aplikacji znajduje się w obszarze widocznym. Proponowana możliwość pozwala wyświetlać użytkownikowi ostrzeżenia o nagrywaniu w przypadku wyświetlania danych poufnych.
- Dodano API ApplicationStartInfo, dzięki któremu można uzyskać informacje o stanie przy uruchamianiu programu. Na przykład można dowiedzieć się, czy komponenty aplikacji są w pamięci podręcznej (stany cold, warm lub hot), jak długo trwały różne etapy uruchamiania, co spowodowało uruchomienie, oraz zdefiniować metryki użyteczne do optymalizacji prędkości uruchamiania.
- Zmiana w obsłudze stanu zatrzymania, w którym wykonywanie aplikacji jest wstrzymywane do momentu podjęcia przez użytkownika powiązanego z aplikacją działania. W nowej wersji wprowadzono możliwości definiowania przez aplikację zakończenia wstrzymania: obsługa wiadomości BOOT_COMPLETED lub użycie metody ApplicationStartInfo.wasForceStopped().
- Oprócz metody StorageStats.getAppBytes(), która pozwala uzyskać ogólne dane o rozmiarze zainstalowanej aplikacji, dodano metodę StorageStats.getAppBytesByDataType(), która umożliwia uzyskanie oddzielnych informacji o rozmiarze pakietu APK, skompilowanym kodzie, wydobytych i wygenerowanych danych.
- Wprowadzono zmiany w API uruchamiania priorytetowych usług (Foreground Service). Dodano nowy typ priorytetowych usług — mediaProcessing, który można wykorzystać do zasobożernych operacji z treściami multimedialnymi, na przykład konwersji z jednego formatu do innego.
- Proponowane jest nowe API do pracy z silnikiem przechowywania opartym na bazie danych SQLite, które zapewnia dostęp do rozszerzonych możliwości SQLite.
- Wprowadzono możliwość zarządzania buforem jasności dla HDR (stosunek najjaśniejszej bieli w obrazie HDR do jasności bieli w obrazie w standardowym zakresie dynamicznym). Aby ustawić bufor jasności, dodano metodę setDesiredHdrHeadroom, dzięki której można zrównoważyć jasność przy wyświetlaniu treści w SDR i HDR.

- Dodano wsparcie dla standardu CTA-2075, który definiuje możliwości normalizacji głośności, pozwalające uniknąć zmiany poziomu głośności dla różnorodnych treści. Ustalenie głośności osiągane jest poprzez określenie metadanych na temat charakterystyki głośników i poziomu głośności dźwięku AAC. W celu normalizacji głośności zaproponowano obiekt LoudnessCodecController oraz metodę OnLoudnessCodecUpdateListener, korygującą parametry głośności przed zwróceniem się do kodeka.
- W AndroidX media3 ExoPlayer 1.0 domyślnie włączono korzystanie z dźwięku przestrzennego dla dźwięku wielokanałowego, jeśli dźwięk przestrzenny jest wspierany przez urządzenie. Klasa Virtualizer została uznana za przestarzałą, a do określania zachowania i możliwości dźwięku przestrzennego należy używać klasy Spatializer.
- Dodano klasę AutomaticZenRules, która pozwala aplikacjom ustawić zasady działania trybu „nie przeszkadzać” oraz określić sytuacje, w których te zasady powinny być stosowane.

Źródło: opennet.ru








