Omówienie funkcji i interfejsów API

Android 12 wprowadza programistów – świetne nowe funkcje i interfejsy API. W sekcjach poniżej znajdziesz informacje o funkcjach dostępnych w Twoich aplikacjach i dowiesz się, jak zacząć z nich korzystać z odpowiednimi interfejsami API.

Szczegółową listę nowych, zmodyfikowanych i usuniętych interfejsów API znajdziesz w artykule Różnice między interfejsami API . Szczegóły dotyczące nowych interfejsów API znajdziesz w artykule Android Dokumentacja API – nowe interfejsy API zostały wyróżnione, aby zwiększyć ich widoczność. Dodatkowo, aby obszarów, w których zmiany na platformie mogą wpłynąć na Twoje aplikacje, zmian w działaniu Androida 12 w przypadku aplikacji kierowanych Android 12 i dla wszystkich aplikacji.

Interfejs użytkownika

Material You

W Androidzie 12 wprowadziliśmy nowy język projektowania o nazwie Material Ty, która pomaga w tworzeniu bardziej spersonalizowane, atrakcyjniejsze aplikacje. Połączenie najnowszych technologii Material Design 3 aktualizacji aplikacji, wypróbuj wersję alfa Material Design Komponenty.

Material You

Ulepszenia widżetów

Android 12 ulepsza dotychczasowy interfejs Widgets API, aby zwiększyć wygodę użytkowników i deweloperów platformy i programów uruchamiających. Opracowaliśmy przewodnik, który pomoże Ci upewnij się, że widżet jest zgodny z Androidem 12, i odśwież go funkcje zabezpieczeń.

Zobacz ulepszenia widżetów w Androidzie 12 – znajdziesz więcej informacji.

Wstawianie treści multimedialnych

Android 12 wprowadza nowy, ujednolicony interfejs API, który umożliwia aplikacjom otrzymywać szczegółowe treści z dowolnego dostępnego źródła: schowka, klawiatury lub funkcji przeciągania spadek.

Więcej informacji znajdziesz w artykule Otrzymywanie szczegółowych informacji treści.

Interfejs API ekranów powitalnych aplikacji

Android 12 wprowadza nową animację uruchamiania aplikacji w przypadku wszystkich aplikacji, która zawiera ruch w aplikacji od momentu jej uruchomienia, ekran powitalny z ikoną i przejście do samej aplikacji. Zapoznaj się z informacjami o programistach ekranów powitalnych .

Interfejsy API z zaokrąglonym rogiem

Android 12: RoundedCorner i WindowInsets.getRoundedCorner(int position), który określa promień i punkt środkowy zaokrąglonych narożników.

Więcej informacji znajdziesz w artykule Zaokrąglone rogi.

Bogate możliwości reakcji haptycznych

Android 12 to rozszerzenie narzędzi do tworzenia wartościowych reakcji haptycznych w interfejsie wydarzeń, wciągających i zachwycających efektów w grach oraz charakterystycznych reakcji haptycznych i zwiększać produktywność.

Efekty uruchamiające

Android 12 dodaje ekspresywne efekty, takie jak niska jakość zaznacz wykorzystują szersze pasma częstotliwości dostępne w najnowszych urządzeniach wykonawczych. Gra programiści mają teraz dostęp do wielu, różnych urządzenia uruchamiające niezależnie w grze kontrolerów, aby synchronicznie lub z różnymi efektami haptycznymi. na kilku urządzeniach uruchamiających. Deweloperom zalecamy korzystanie z stałe elementy podstawowe jako elementy składowe zapewniające zaawansowane efekty haptyczne – stałe, ulepszające zdarzenia w interfejsie kompozytor haptyczny do sekwencji w przypadku bardziej złożonych efektów. Te interfejsy API można wypróbować na Pixelu 4 i nadal pracujemy z naszymi partnerami, którzy są z nami producentami urządzeń, dzięki najnowszym rozwiązaniom haptycznym użytkownikom w całym ekosystemie.

Efekty haptyczne sprzężone z dźwiękiem

Aplikacje na Androida 12 mogą generować reakcję haptyczną na podstawie sesji audio przy użyciu: dzięki wibracjom w telefonie. Daje to szansę na bardziej wciągającą grę odczucia audio. Na przykład dzwonki z reakcją haptyczną mogą pomóc w identyfikacji rozmówców lub gry samochodowej mogą symulować wrażenie nierównego terenu.

Zobacz HapticGenerator w dokumentacji referencyjnej.

Wyszukiwanie aplikacji

W Androidzie 12 wprowadzamy AppSearch – wysoką wydajną wyszukiwarkę działającą na urządzeniu. jako usługa systemowa. AppSearch umożliwia aplikacjom indeksowanie uporządkowanych danych. i przeszukiwać go za pomocą funkcji wyszukiwania pełnotekstowego. Ponadto AppSearch obsługuje natywne funkcje wyszukiwania, takie jak bardzo skuteczne indeksowanie pobieranie danych, obsługa wielu języków i ranking trafności.

Diagram przedstawiający indeksowanie i wyszukiwanie w AppSearch

AppSearch ma dwie odmiany: lokalny indeks wykorzystywany przez aplikację. kompatybilnych ze starszymi wersjami Androida lub centralnym indeksem, dla całego systemu w Androidzie 12. Za pomocą centralnego indeksu aplikacji może zezwalać na wyświetlanie jej danych na zainstalowany fabrycznie w systemie komponent analityczny. Dokładne dane, które zostaną wyświetlane na interfejsach systemu zależą od producenta OEM. Dodatkowo aplikacja może bezpiecznie udostępniać dane innym aplikacjom, aby mogły które pozwalają przeszukiwać też te dane.

Więcej informacji o AppSearch znajdziesz w przewodnika dla programistów i zacznij z niego korzystać bibliotekę AppSearch Jetpack, która zapewnia łatwy w obsłudze interfejs API oraz procesor adnotacji, .

Tryb gry

Interfejs Game Mode API i tryb gry i interwencji pozwalają optymalizować rozgrywkę, priorytetowo traktując takie cechy jak wydajność czy czas pracy na baterii na podstawie ustawień użytkownika lub konfiguracji gry.

Więcej informacji znajdziesz w artykule Tryb gry.

Rekomendacje i ulepszenia dotyczące funkcji obraz w obrazie (PIP)

Android 12 wprowadza te ulepszenia trybu obraz w obrazie:

Obsługa nowych gestów obrazu w obrazie

Android 12 obsługuje teraz składanie i powiększanie przez ściąganie palców gestów w obrazie w obrazie okno:

  • Aby umieścić okno w skrypcie, użytkownik może przeciągnąć je w lewo lub w prawo krawędzi. Aby przywrócić okno ze schowka, użytkownik może kliknąć widoczną część okna lub przeciągnąć je do kosza.

  • Użytkownik może teraz zmieniać rozmiar okna PIP za pomocą ściągnięcia palcami.

W Androidzie 12 dodano znaczne poprawki kosmetyczne do animacji przejścia między oknami trybu pełnoekranowego i PIP. Zdecydowanie zalecamy wprowadzenie wszystkich obowiązujących zmian; zmiany te automatycznie skalują się do dużych ekranów, np. urządzeń składanych i tabletów, wykonanie dodatkowych czynności.

Te funkcje to:

Powiadomienia o nowych połączeniach telefonicznych pozwalające na określenie ważności połączeń przychodzących

Android 12 dodaje nowy styl powiadomień Notification.CallStyle do połączeń telefonicznych. Użycie tego szablonu pozwala aplikacji określić znaczenie aktywnych połączeń przez wyświetlanie dobrze widocznego elementu, który pokazuje godzinę połączenia pasek stanu; użytkownik może kliknąć ten element, aby wrócić do rozmowy.

Ze względu na to, że połączenia przychodzące i trwające są kluczowe dla użytkowników, powiadomienia mają najwyższą pozycję w obszarze powiadomień. Ten ranking pozwala też by potencjalnie przekazać te priorytetowe połączenia na inne urządzenia.

Wdróż poniższy kod w przypadku wszystkich typów połączeń.

Kotlin

// Create a new call with the user as caller.
val incoming_caller = Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build()

Java

// Create a new call with the user as caller.
Person incoming_caller = new Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build();

Użyj formatu forIncomingCall() aby utworzyć powiadomienie o stylu połączenia dla połączenia przychodzącego.

Kotlin

// Create a call style notification for an incoming call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller)

Java

// Create a call style notification for an incoming call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller);

Użyj formatu forOngoingCall() aby utworzyć powiadomienie o stylu połączenia dla trwającej rozmowy.

Kotlin

// Create a call style notification for an ongoing call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller)

Java

// Create a call style notification for an ongoing call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller);

Użyj formatu forScreeningCall() aby utworzyć powiadomienie o stylu połączenia na potrzeby filtrowania połączenia.

Kotlin

// Create a call style notification for screening a call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller)

Java

Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller);

Obsługa wzbogaconych obrazów w powiadomieniach

W Androidzie 12 możesz zwiększyć skuteczność powiadomień w aplikacji przez dostarczanie animowanych obrazów w języku: MessagingStyle() i BigPictureStyle() powiadomienia. Aplikacja może też pozwalać użytkownikom na wysyłanie wiadomości graficznych, gdy: odpowiadają na wiadomości w obszarze powiadomień.

Ulepszenia trybu pojemnego dotyczącego nawigacji przy użyciu gestów

Android 12 konsoliduje dotychczasowe zachowania, aby ułatwić użytkownikom wykonuj polecenia nawigacyjne przy użyciu gestów w trybie pełnoekranowym . W Android 12 zapewnia zgodność wsteczną w przypadku aplikacji przyklejonych wciągający .

Udostępnianie adresów URL ostatnich (tylko Pixel)

Na urządzeniach Pixel użytkownicy mogą teraz udostępniać linki do ostatnio oglądanych treści z internetu bezpośrednio na ekranie Ostatnie. Po otwarciu treści w aplikacji użytkownik przesuń palcem do ekranu Ostatnie i znajdź aplikację, w której wyświetliła treść. a potem kliknij przycisk linku, aby skopiować lub udostępnić URL.

Aby uzyskać więcej informacji, zobacz Włączanie adresów URL ostatnich udostępnianie.

Prywatność i bezpieczeństwo

Panel prywatności

Pionowa oś czasu przedstawia różne aplikacje, które uzyskały
         informacje o lokalizacji oraz czas uzyskania dostępu;
Rysunek 1. Ekran o korzystaniu z lokalizacji (część strony Prywatność) Panel.

Na obsługiwanych urządzeniach z Androidem 12 lub nowszym ustawienie Prywatność W ustawieniach systemowych pojawi się ekran panelu. Na tym ekranie użytkownicy mają dostęp do oddzielne ekrany, które wyświetlają się, gdy aplikacje korzystają z lokalizacji, aparatu i mikrofonu i informacjami o nich. Na każdym ekranie widać oś czasu z danymi aplikacjami, które korzystały z określonego typu danych. Rysunek 1 przedstawia oś czasu dostępu do danych o lokalizacji i informacjami o nich.

Aplikacja może podać uzasadnienie użytkownicy pomóc im zrozumieć, dlaczego aplikacja korzysta z lokalizacji, aparatu lub mikrofonu. i informacjami o nich. Uzasadnienie może się pojawić na nowym ekranie Panelu prywatności, na ekranie uprawnień aplikacji lub na obu.

Uprawnienia Bluetooth

Android 12 wprowadza BLUETOOTH_SCAN BLUETOOTH_ADVERTISE, oraz BLUETOOTH_CONNECT uprawnień. Uprawnienia te ułatwiają korzystanie z aplikacji kierowanych Android 12 obsługuje Bluetootha urządzeń, zwłaszcza w przypadku aplikacji, które nie korzystają wymagają dostępu do lokalizacji urządzenia.

Zaktualizuj deklaracje uprawnień aplikacji Bluetooth

Aby przygotować urządzenie do kierowania na Androida 12 lub nowszego, zaktualizuj do zasad Twojej aplikacji. Zamiast deklarować starszy zestaw Bluetootha uprawnienia, zadeklaruj nowocześniejszy zestaw Bluetooth uprawnienia.

Wyszukiwanie grup uprawnień

Na urządzeniu z Androidem 12 lub nowszym możesz wysyłać zapytania o porządek w systemie uprawnienia udostępniane przez platformę grupy uprawnień:

  • Aby określić grupę uprawnień, w której system umieścił uprawnienie zdefiniowane przez platformę, wywołanie getGroupOfPlatformPermission()
  • Aby określić uprawnienia zdefiniowane na platformie, które zostały umieszczone przez system określoną grupę uprawnień, wywołaj getPlatformPermissionsForGroup()
.

Ukryj okna nakładki aplikacji

Aby dać deweloperom większą kontrolę nad tym, co widzą użytkownicy korzystający z aplikacji dewelopera, Android 12 wprowadza możliwość ukrywania funkcji okna nakładane generowane przez aplikacje, które używają SYSTEM_ALERT_WINDOW uprawnienia.

Po zadeklarowaniu HIDE_OVERLAY_WINDOWS aplikacji, aplikacja może wywołać setHideOverlayWindows() aby wskazać, że wszystkie okna typu TYPE_APPLICATION_OVERLAY powinna być ukryta, gdy widoczne jest własne okno aplikacji. Aplikacje, które mogą podjąć działania w przypadku wyświetlania poufnych ekranów, np. procesu potwierdzania transakcji.

Aplikacje wyświetlające okna typu TYPE_APPLICATION_OVERLAY, które warto wziąć pod uwagę alternatywne rozwiązania, które mogą być lepiej dostosowane do danego zastosowania, takie jak obraz w obrazie lub bąbelki.

Flaga ochrony uprawnień znanych sygnatariuszy

Począwszy od Androida 12 Atrybut knownCerts dla uprawnienia na poziomie podpisu umożliwia odwoływanie się do skrótów znanych podpisów certyfikaty w deklaracji obecnie się znajdujesz.

Aplikacja może zadeklarować ten atrybut i używać flagi knownSigner, aby zezwolić urządzeń i aplikacji, aby udzielać uprawnień do podpisu innym aplikacji, bez podpisywanie aplikacji podczas produkcji i wysyłki urządzenia.

Atestacja właściwości urządzenia

Android 12 rozszerza zestaw aplikacji, które mogą weryfikować właściwości urządzenia, które są objęte atestem certyfikat gdy te aplikacje wygenerują nowy klucz.

Od Androida 9 (poziom interfejsu API 28) zasady dotyczące urządzeń właścicieli witryn (IOD), którzy korzystają z: Keymaster w wersji 4.0 lub nowszej sprawdzić właściwości urządzenia w tych certyfikatach atestu. Zaczyna się za Android 12 i każda aplikacja kierowana na Androida 12 (poziom interfejsu API 31) lub nowszego może osiągnąć lepsze wyniki tę weryfikację za pomocą setDevicePropertiesAttestationIncluded() .

Wygenerowane właściwości urządzenia obejmują: Build pól:

  • BRAND
  • DEVICE
  • MANUFACTURER
  • MODEL
  • PRODUCT

Bezpieczne działania związane z powiadomieniami na ekranie blokady

Począwszy od Androida 12, klasa Notification.Action.Builder obsługuje setAuthenticationRequired(). która pozwala aplikacji wymagać, aby urządzenie Bez blokady zanim aplikacja wywoła określone działanie związane z powiadomieniem. Pomaga to dodać atrybut – dodatkowa warstwa zabezpieczeń powiadomień na zablokowanych urządzeniach.

Możliwe do lokalizowania ciągi znaków BiometricPrompt

Android 12 wprowadza nowe interfejsy API, które pomagają ulepszyć dane biometryczne aplikacji uwierzytelnianie użytkownika. Nowa funkcja BiometricManager.Strings klasa zagnieżdżona zawiera getButtonLabel(), getPromptMessage(), oraz getSettingName() które pozwalają aplikacji pobrać czytelną i zlokalizowaną etykietę przycisku, lub nazwę ustawienia aplikacji. Użyj tych etykiet, aby zwiększyć dokładność instrukcji dla użytkownika dotyczących uwierzytelniania biometrycznego; używane metody, takie jak „Używaj rozpoznawania twarzy” lub „Aby kontynuować, użyj odcisku palca”.

Wykrywanie phishingu w aplikacjach do obsługi wiadomości (tylko Pixel)

Użytkownik widzi taką wiadomość, gdy podejrzana wiadomość

Na obsługiwanych urządzeniach Pixel Android 12 uruchamia wykrywanie phishingu w wiadomościach otrzymywane w popularnych komunikatorach. System wykorzystuje systemy uczące się działające na urządzeniu do wykrywania podejrzanych działań. Po wykryciu bezpieczeństwa system wyświetla nałożone na UI aplikacji do obsługi wiadomości, aby ostrzegać użytkowników. Na przykład: wyłudzanie informacji może ostrzegać użytkowników o następujących potencjalnych zagrożeniach:

  • Podejrzane prośby, np. o wysłanie kodu, pieniędzy itp.
  • Niezaufane adresy URL
  • Złośliwe załączniki
  • linki do szkodliwych aplikacji,

Oprócz ostrzeżenia użytkownika nakładka umożliwia też zgłoszenie podejrzany komunikat i przekazać opinię na temat ostrzeżeń wystawionych przez system.

Deweloperzy mogą zrezygnować z tej funkcji, dodając nowy tag metadanych zawierający tag: ciąg znaków com.google.android.ALLOW_PHISHING_DETECTION w manifeście aplikacji . Na przykład:

<manifest>
    <application android:name="com.messagingapp">
        <meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />

    </application>
</manifest>

Multimedia

Transkodowanie zgodnych multimediów

Od Androida 12 (poziom interfejsu API 31) system może automatycznie transkodować HEVC(H.265) i HDR (HDR10 i HDR10+). filmów nagrywanych na urządzeniu do formatu AVC (H.264), który jest powszechnie stosowany. zgodne ze standardowymi odtwarzaczami. Wykorzystuje to nowoczesne kodeki, gdy: są dostępne bez negatywnego wpływu na zgodność ze starszymi aplikacjami.

Więcej informacji znajdziesz w artykule na temat transkodowania zgodnych multimediów.

Klasa wydajności

Android 12 wprowadza standard nazywany klasą wydajności. O klasa wydajności określa możliwości sprzętowe wykraczające poza podstawową wersję Androida . Każde urządzenie z Androidem deklaruje klasę wydajności, obsługuje. Programiści mogą sprawdzić klasę wydajności urządzenia w czasie działania oraz dostarczać ulepszone rozwiązania, które w pełni wykorzystują możliwości urządzenia, funkcje zabezpieczeń.

Zobacz Klasa skuteczności .

Ulepszenia kodowania wideo

Android 12 definiuje standardowy zestaw kluczy do sterowania wartość parametru kwantyzacji (QP) do kodowania wideo, co pozwala programistom i unikanie kodu danego dostawcy.

Nowe klucze są dostępne w Interfejs API MediaFormat oraz Biblioteka multimediów NDK.

Począwszy od Androida 12 kodery wideo wymuszają minimalną jakość i konkretnego progu. Dzięki temu użytkownicy nie zobaczą treści o bardzo niskiej jakości. w przypadku kodowania filmów o dużej złożoności scen.

Aktywność audio

Od Androida 12 (poziom interfejsu API 31), gdy aplikacja prosi o aktywowanie dźwięku podczas inna aplikacja jest ustawiona na pierwszym planie i w trakcie odtwarzania jest przyciemniona.

Zobacz Aktywność audio w Androidzie 12 i nowszych .

Aktualizacje MediaDrm

Aby określić, czy w parze klucz-wartość obecnie używanych interfejsów API usługi MediaDrm, wykonaj te czynności:

  1. Utwórz MediaDrm.
  2. Otwórz sesję, aby uzyskać identyfikator sesji.
  3. Utwórz MediaCrypto, korzystając z identyfikatora sesji.
  4. Będziesz dzwonić pod numer MediaCrypto.requiresSecureDecoderComponent(mimeType).

Z nowymi metodami requiresSecureDecoder(@NonNull String mime) i requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level) możesz to sprawdzić, gdy tylko utworzysz MediaDrm.

Aparat

Rozszerzenia dostawcy Camera2

Wielu naszych partnerów, producentów urządzeń, ma własne rozszerzenia do aparatów, takie jak np. Bokeh, HDR, Tryb nocny i inne. zróżnicowanych treści na różnych urządzeniach. AparatX biblioteka już obsługuje tych niestandardowych rozszerzeń dostawców. W Androidzie 12 i rozszerzenia dostawców są teraz dostępne bezpośrednio na platformie.

Ułatwia to działanie aplikacji, które zawierają złożone Camera2 wykorzystują rozszerzenia dostawców bez konieczności istotne zmiany w starszym kodzie. Interfejsy API rozszerzenia Camera2 prezentują dokładnie ten sam zestaw w Aparacie X, które są już obsługiwane w wielu różnych urządzeń, dzięki czemu możesz z nich korzystać bez dodatkowej konfiguracji.

Więcej informacji: CameraExtensionCharacteristics

Obsługa czujnika aparatu Quad Bayer

Wiele urządzeń z Androidem jest obecnie wyposażonych w czujniki aparatu o bardzo wysokiej rozdzielczości, zwykle wzorów Quad lub Nona Bayer. Zapewniają one dużą elastyczność pod kątem jakości obrazu i wydajności przy słabym oświetleniu. Android 12 wprowadza nowe interfejsy API platformy, które pozwalają aplikacjom innych firm w pełni wykorzystać i czujników. Nowe interfejsy API obsługują wyjątkowe działanie tych czujników i uwzględniają może obsługiwać różne konfiguracje i kombinacje strumieni tryb pełnej rozdzielczości lub „maksymalna rozdzielczość” w porównaniu z trybem „domyślnym”.

Grafika i grafika

Zapewnij aplikacjom bezpośredni dostęp do śladów tombstone

Począwszy od Androida 12 możesz uzyskać dostęp do natywnego pliku tombstone w aplikacji jako bufor protokołu przez funkcję ApplicationExitInfo.getTraceInputStream(). . Bufor protokołu jest zserializowany za pomocą tego schematu. Wcześniej jedynym sposobem na uzyskanie dostępu do takich informacji było Android Debug Bridge (adb).

Więcej informacji znajdziesz w artykule Zapewnianie aplikacjom bezpośredniego dostępu do zrzutów tombstone.

Obsługa obrazów AVIF

Android 12 obsługuje obrazy w formacie pliku graficznego AV1 (AVIF). AVIF to format kontenera dla obrazów i sekwencji obrazów zakodowanych za pomocą AV1. AVIF wykorzystuje kodowane w ramce treści wideo kompresję. Dzięki temu znacząco poprawia się jakość obrazu przy tym samym rozmiarze pliku w porównaniu ze starszymi formatami obrazów, np. JPEG. Więcej informacji na temat z zalet tego formatu można znaleźć na blogu Jake'a Archibalda post.

Łatwiejsze rozmycie, filtry kolorów i inne efekty

W Androidzie 12 dodaliśmy nową wersję RenderEffect z zastosowaniem typowych efektów graficznych, takich jak rozmycie, filtry kolorów, cieniowanie Androida efekty i inne funkcje View i hierarchie renderowania. Efekty można łączyć w dowolny sposób (które tworzą efekt wewnętrzny i zewnętrzny) lub mieszane. Inny Android urządzenia mogą nie obsługiwać tej funkcji ze względu na ograniczoną moc obliczeniową.

Efekty można też stosować do tła RenderNode dla View, dzwoniąc pod numer View.setRenderEffect(RenderEffect).

Aby zaimplementować RenderEffect:

view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))

Natywne dekodowanie animowanego obrazu

Na Androidzie 12 pakiet NDK Interfejs ImageDecoder API został rozszerzony do dekodowania wszystkich klatek i danych o czasie ze zdjęć które używają animowanych GIF-ów animowane pliki w formacie WebP. Kiedy to wprowadzonego w Androidzie 11, ten interfejs API dekodował tylko pierwszy obraz animacje w tych formatach.

Aby jeszcze bardziej zmniejszyć rozmiar pliku APK, używaj ImageDecoder zamiast bibliotek innych firm rozmiar i czerpać korzyści z przyszłych aktualizacji związanych z bezpieczeństwem i wydajnością.

Więcej informacji o interfejsie API znajdziesz w dokumentacji API oraz w przykładzie na GitHubie.

Łączność

Nie usypiaj aplikacji towarzyszących

Aby zaspokoić potrzebę zarządzania urządzeniem przez aplikacje towarzyszące, Android 12 wprowadza interfejsy API, które:

  • Umożliwia wybudzanie aplikacji, gdy urządzenie towarzyszące będzie w zasięgu.
  • Zagwarantuj, że proces będzie kontynuowany, gdy urządzenie pozostanie w obrębie urządzenia. zakres dat.

Aby można było korzystać z interfejsów API, urządzenia muszą być połączone za pomocą urządzenia towarzyszącego Menedżer. Więcej Więcej informacji zawiera CompanionDeviceManager.startObservingDevicePresence() oraz CompanionDeviceService.onDeviceAppeared()

Profile Menedżera urządzeń towarzyszących

Okno uprawnień, które używa profilu urządzenia towarzyszącego do: wiele uprawnień w jednej prośbie.

Aplikacje partnerów na Androidzie 12 (poziom interfejsu API 31) lub nowszym mogą używać urządzenia towarzyszącego profile przy połączeniu z zegarkiem. Użycie profilu upraszcza rejestrację przez łączenie w pakiecie zestawu uprawnień dla danego typu urządzenia. z poziomu jednego kroku.

Uprawnienia zawarte w pakiecie są przyznawane aplikacji towarzyszącej, gdy urządzenie nawiązuje połączenie i działa tylko wtedy, gdy urządzenie jest powiązane. usunięcie aplikacji lub usunięcie powiązania powoduje też usunięcie uprawnień.

Więcej informacji: AssociationRequest.Builder.setDeviceProfile()

Ulepszenia szacowania przepustowości

W Androidzie 12 funkcja szacowania przepustowości zapewniana przez getLinkDownstreamBandwidthKbps() oraz getLinkUpstreamBandwidthKbps() są lepsze zarówno pod kątem łączności Wi-Fi, jak i komórkowej. Wartości zwrócone teraz reprezentują średnią ważoną przepustowość użytkownika w danym okresie na operatora lub sieć Wi-Fi identyfikator SSID, typ sieci i poziom sygnału we wszystkich aplikacjach na urządzeniu; Pozwala to uzyskać dokładniejsze i bardziej realistyczne oszacowanie oczekiwanej przepustowości, dostarcza prognoz przy uruchomieniu aplikacji „na zimno” i wymaga mniejszej liczby cykli w porównaniu z innymi metodami szacowania przepustowości.

Ulepszenia Wi-Fi Aware (NAN)

Android 12 dodaje kilka ulepszeń do Wi-Fi Aware:

  • Na urządzeniach z Androidem 12 (poziom interfejsu API 31) lub nowszym możesz używać funkcji Wywołanie zwrotne onServiceLost(), które ma być powiadamiane, gdy aplikacja utraci wykrytą usługę z powodu usługa zatrzymuje się lub znajduje się poza zasięgiem.
  • Sposób konfigurowania wielu ścieżek danych (ścieżki danych NAN) zmienia się co pozwoli Ci zwiększyć efektywność. Wcześniejsze wersje używały wiadomości L2 do wymiany połączeń równorzędnych i przekazywaniu informacji o inicjatorach, co spowodowało opóźnienie. Na uruchomionych urządzeniach w Androidzie 12 lub nowszym, można skonfigurować respondenta (serwer) zaakceptować dowolnego partnera – to znaczy, że nie musi znać inicjatora, informacje z całego świata. Przyspiesza to otwieranie ścieżki danych i umożliwia bezpośrednio z jednego żądania sieciowego.
  • Aby zapobiec odrzucaniu przez platformę kolejnych żądań wykrywania lub połączenia do wyczerpania zasobów na urządzeniach z Androidem 12 wyżej, możesz zadzwonić WifiAwareManager.getAvailableAwareResources() Wartość zwrócona przez tę metodę pozwala uzyskać liczbę dostępnych danych ścieżek, liczbę dostępnych sesji publikacji oraz liczbę dostępnych sesji sesji subskrypcji.

Równoczesne połączenie peer-to-peer + połączenie z internetem

Gdy urządzenia kierowane na Androida 12 (poziom interfejsu API 31) lub nowszego działają na urządzeniach z atrybutem obsługę sprzętu przez połączenie peer-to-peer połączenia nie rozłączą istniejące połączenie Wi-Fi podczas tworzenia połączenia z urządzeniem równorzędnym. Do aby sprawdzić wsparcie dla tej funkcji, użyj WifiManager.isMultiStaConcurrencySupported()

Włącz wyłączenie ekranu w przypadku płatności NFC

W aplikacjach kierowanych na Androida 12 i nowsze wersje można włączyć komunikację NFC płatności bez włączonego ekranu urządzenia przez ustawienie requireDeviceScreenOn do false Więcej informacji o płatnościach NFC przy wyłączonym lub zablokowanym ekranie znajdziesz na stronie Wyłącz ekran i ekran blokady i ich działaniu.

Miejsce na dane

Android 12 wprowadza opisane poniżej funkcje zarządzania miejscem na dane: funkcje:

Główna funkcja

Automatyczne aktualizacje aplikacji

Android 12 wprowadza setRequireUserAction() w przypadku aplikacji, które korzystają z Interfejs API PackageInstaller. Ta metoda pozwala aplikacjom instalacyjnym aktualizować aplikacje bez konieczności użytkownik musi potwierdzić tę czynność.

Informacje o chipsetu urządzenia

Android 12 dodaje do android.os.Build 2 stałe, które zapewniają widoczność informacje o dostawcy i modelu chipsetu SoC za pomocą pakietu SDK. Możesz pobrać informacje, dzwoniąc pod numer Build.SOC_MANUFACTURER i Build.SOC_MODEL .

Aktualizacje podstawowych interfejsów API Java

Na podstawie próśb i współpracy z deweloperami dodaliśmy te elementy: biblioteki podstawowe w Androidzie 12:

Zajęcia Interfejsy API
java.lang.Deprecated
java.lang.Byte
java.lang.Short
java.lang.Math
java.lang.StrictMath
java.util.Set copyOf()
java.util.Map copyOf()
java.util.List copyOf()
java.time.Duration
java.time.LocalTime