Android 14 wprowadza świetne funkcje i interfejsy API dla deweloperów. Poniższe informacje pomogą Ci poznać funkcje aplikacji i zacząć korzystać z powiązanych interfejsów API.
Szczegółową listę dodanych, zmodyfikowanych i usuniętych interfejsów API znajdziesz w raporcie różnic między interfejsami API. Szczegółowe informacje o dodanych interfejsach API znajdziesz w dokumentacji interfejsu Android API – w przypadku Androida 14 poszukaj interfejsów API dodanych na poziomie API 34. Aby dowiedzieć się, w jakich obszarach zmiany w platformie mogą mieć wpływ na Twoje aplikacje, zapoznaj się ze zmianami w zachowaniu Androida 14 w przypadku aplikacji kierowanych na tę wersję systemu i wszystkich aplikacji.
Internacjonalizacja
Wybór języka według aplikacji
Android 14 rozszerza funkcje odpowiadające językowi aplikacji, które zostały wprowadzone w Androidzie 13 (poziom interfejsu API 33) o te dodatkowe możliwości:
Automatycznie generuj
localeConfig
aplikacji: na urządzeniach z Androidem Studio Giraffe Canary 7 i AGP w wersji 8.1.0-alfa07 możesz automatycznie skonfigurować aplikację pod kątem ustawień języka. Na podstawie Twoich zasobów projektu wtyczka Androida do obsługi Gradle generuje plikLocaleConfig
i dodaje do niego odwołanie w ostatecznym pliku manifestu. Dzięki temu nie musisz ręcznie tworzyć ani aktualizować pliku. Aby określić języki do uwzględnienia w plikuLocaleConfig
, AGP używa zasobów z folderówres
modułów aplikacji i ich zależności.Dynamiczne aktualizacje
localeConfig
aplikacji: użyj metodsetOverrideLocaleConfig()
igetOverrideLocaleConfig()
wLocaleManager
, aby dynamicznie aktualizować listę obsługiwanych języków aplikacji w ustawieniach systemu urządzenia. Dzięki tej elastyczności możesz dostosować listę obsługiwanych języków w poszczególnych regionach, przeprowadzać eksperymenty A/B lub udostępniać zaktualizowaną listę ustawień regionalnych, jeśli aplikacja wykorzystuje do lokalizacji komunikaty push po stronie serwera.Widoczność języka aplikacji dla edytorów metod wprowadzania: edytory IME mogą korzystać z metody
getApplicationLocales()
, aby sprawdzać język bieżącej aplikacji i dopasowywać go do tego języka.
Grammatical Inflection API
3 miliardy ludzi mówią w językach płciowych, czyli w językach, w których kategorie gramatyczne, takie jak rzeczowniki, czasowniki, przymiotniki i przyimki, wpływają na płeć osób i obiektów, o których rozmawiasz lub o których mówisz. Tradycyjnie wiele języków, w których płeć różni się od płci męskiej, jako domyślnej lub ogólnej używa formy gramatycznej.
Zwrócenie się do użytkowników w niewłaściwy sposób gramatyczny, np. zwrócenie się do kobiet w rodzaju męskim, może negatywnie wpłynąć na ich wyniki i nastawienie. Z kolei interfejs z językiem, który poprawnie odzwierciedla płeć użytkownika, może zwiększyć jego zaangażowanie oraz zapewnić bardziej spersonalizowane i naturalne brzmienie.
为帮助您针对区分性别的语言构建以用户为中心的界面,Android 14 引入了 Grammatical Inflection API,让您无需重构应用便能添加对语法性别的支持。
Regionalne preferencje
用户可通过地区偏好设置对温度单位、一周的第一天和编号系统进行个性化设置。居住在美国的欧洲用户可能更希望使用摄氏度,而不是华氏度,并且希望应用将星期一视为一周的开始,而不是像美国那样默认从星期日开始。
新 Android 设置菜单包含这些偏好设置,使用户能够在一个位置集中发现这些应用更改偏好设置。这些偏好设置在备份和恢复设备后也会保持不变。多个 API 和 intent(例如 getTemperatureUnit
和 getFirstDayOfWeek
)会为您的应用授予读取权限来访问用户偏好设置,因此您的应用可以调整其显示信息的方式。您还可以在 ACTION_LOCALE_CHANGED
上注册 BroadcastReceiver
,以便在地区偏好设置发生更改时处理语言区域配置更改。
如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和输入法 > 地区偏好设置。
Ułatwienia dostępu
Nieliniowe skalowanie czcionki do 200%
Od Androida 14 system obsługuje skalowanie czcionek do 200%, zapewniając użytkownikom niedowidzącym dodatkowe opcje ułatwień dostępu zgodne z wytycznymi Web Content Accessibility Guidelines (WCAG).
Aby zapobiec nadmiernemu skalowaniu dużych elementów tekstowych na ekranie, system stosuje nieliniową krzywą skalowania. Ta strategia skalowania oznacza, że duży tekst nie jest skalowany w taki sam sposób jak mniejszy tekst. Pomocne jest nieliniowe skalowanie czcionek zachowaj proporcjonalną hierarchię elementów o różnych rozmiarach, łagodzenie problemów z liniowym skalowaniem tekstu pod wysokim stopniem (np. lub tekst, który staje się trudniejszy do odczytania ze względu na bardzo duży wyświetlacz. rozmiarów).
Testowanie aplikacji za pomocą nieliniowego skalowania czcionek
Jeśli do definiowania rozmiaru tekstu używasz już skalowanych pikseli (sp), te dodatkowe opcje i ulepszone skalowanie zostaną automatycznie zastosowane do tekstu w aplikacji. Mimo to nadal zalecamy przeprowadzenie testów interfejsu z włączonym maksymalnym rozmiarem czcionki (200%), aby mieć pewność, że aplikacja poprawnie stosuje rozmiary czcionek i że może wyświetlać czcionki o większych rozmiarach bez wpływu na użyteczność.
Aby włączyć rozmiar czcionki 200%, wykonaj te czynności:
- Otwórz aplikację Ustawienia i kliknij Ułatwienia dostępu > Rozmiar interfejsu i tekst.
- W przypadku opcji Rozmiar czcionki klikaj ikonę plusa (+), aby ustawić maksymalną rozmiar jest włączony, tak jak na ilustracji obok .
Używanie skalowanych pikseli (sp) do określania rozmiaru tekstu
Pamiętaj, aby zawsze określać rozmiary tekstu w jednostkach SP. Gdy aplikacja używa jednostek sp, Android może zastosować preferowany rozmiar tekstu użytkownika i odpowiednio go skalować.
Nie używaj jednostek sp jako dopełnienia ani zdefiniuj wysokości widoku, zakładając niejawne dopełnienie: z nieliniowym skalowaniem czcionki wymiary sp mogą być nieproporcjonalne, więc 4sp + 20 sp może nie równać się 24 sp.
Przelicz skalowane jednostki pikseli (sp)
Użyj TypedValue.applyDimension()
, aby przeliczyć jednostki SP
na piksele i użyj funkcji TypedValue.deriveDimension()
, aby
konwertowanie pikseli na sp. Te metody stosują odpowiednie skalowanie nieliniowe
automatycznie.
Unikaj umieszczania w kodzie stałych wartości równań za pomocą funkcji Configuration.fontScale
lub DisplayMetrics.scaledDensity
. Skalowanie czcionek jest nieliniowe, więc pole scaledDensity
nie jest już dokładne. fontScale
powinno być używane wyłącznie w celach informacyjnych, ponieważ czcionki nie są już
przeskalowane do jednej wartości skalarnej.
Używanie jednostek sp do atrybutów lineHeight
Zawsze definiuj kolumnę android:lineHeight
za pomocą jednostek SP
dp, więc wysokość wiersza jest skalowana wraz z tekstem. Jeśli natomiast tekst jest w układzie sp, ale lineHeight
jest w układzie dp lub px, nie będzie się skalować i będzie wyglądać ciasno.
TextView automatycznie poprawia lineHeight
zgodnie z
proporcje są zachowywane, ale tylko wtedy, gdy zostaną uwzględnione zarówno textSize
, jak i lineHeight
zdefiniowane w jednostkach sp.
Aparat i multimedia
Ultra HDR w przypadku zdjęć
Android 14 增加了对高动态范围 (HDR) 图片的支持,此类图片可在拍照时保留来自传感器的更多信息,从而实现鲜艳的色彩和更高的对比度。Android 采用 Ultra HDR 格式,这种格式可完全向后兼容 JPEG 图片,允许应用与 HDR 图片无缝互操作,从而根据需要以标准动态范围 (SDR) 显示图片。
当您的应用为其 Activity 窗口选择使用 HDR 界面(通过清单条目或在运行时通过调用 Window.setColorMode()
)时,框架会自动在 HDR 界面中呈现这些图片。您还可以在支持的设备上拍摄压缩的 Ultra HDR 静态图片。从传感器中恢复的颜色越多,博文中的编辑效果就越灵活。与 Ultra HDR 图片关联的 Gainmap
可用于使用 OpenGL 或 Vulkan 渲染这些图片。
Powiększenie, Ostrość, Postview i inne funkcje w rozszerzeniach aparatu
Android 14 升级并改进了相机扩展,使应用能够处理更长的处理时间,从而支持在受支持的设备上使用弱光摄影等计算密集型算法来改进图像。在使用相机扩展功能时,这些功能可让用户获得更可靠的体验。这些改进的示例包括:
- 动态静态拍摄的处理延迟时间估算值会根据当前的场景和环境条件提供更准确的静态拍摄延迟时间估算值。调用
CameraExtensionSession.getRealtimeStillCaptureLatency()
以获取具有两种延迟时间估算方法的StillCaptureLatency
对象。getCaptureLatency()
方法返回onCaptureStarted
和onCaptureProcessStarted()
之间的估计延迟时间,getProcessingLatency()
方法返回onCaptureProcessStarted()
与最终处理后的帧可用之间的估计延迟时间。 - 支持拍摄进度回调,以便应用可以显示长时间运行的静态拍摄处理操作的当前进度。您可以使用
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
检查此功能是否可用,如果可用,请实现onCaptureProcessProgressed()
回调,该回调会将进度(从 0 到 100)以参数形式传入。 特定于扩展程序的元数据,例如
CaptureRequest.EXTENSION_STRENGTH
,用于调整扩展效果的程度,例如使用EXTENSION_BOKEH
时的背景模糊处理程度。相机扩展中的静态拍摄功能(用于静态拍摄)的后视图功能,相比最终图片,提供处理较少的图片。如果扩展程序延长了处理延迟时间,则可以提供浏览后图片作为占位符来改善用户体验,之后可针对最终图片关闭该功能。您可以通过
CameraExtensionCharacteristics.isPostviewAvailable
检查此功能是否可用。然后,您可以将OutputConfiguration
传递给ExtensionSessionConfiguration.setPostviewOutputConfiguration
。支持
SurfaceView
,可实现更优化、更节能的预览渲染路径。支持在使用扩展程序期间点按即可对焦和缩放。
Zoom na czujniku
当 CameraCharacteristics
中的 REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE
包含 SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
时,您的应用可以使用高级传感器功能,通过使用 CaptureRequest
以及数据流用例设置为 CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
的 RAW 目标,为剪裁后的 RAW 数据流提供与完整视野相同的像素。通过实现请求替换控件,更新后的摄像头让用户可在其他摄像头控件准备就绪之前实现缩放控制。
Bezstratny dźwięk przez USB
Android 14 zyskuje obsługę bezstratnych formatów audio, dzięki czemu osoby audiofilskie mogą korzystać z przewodowych zestawów słuchawkowych USB. Możesz przesłać zapytanie do urządzenia USB w celu uzyskania preferowanych atrybutów miksera, zarejestrować detektor w przypadku zmian w atrybutach miksera i skonfigurować atrybuty miksera za pomocą klasy AudioMixerAttributes
. Ta klasa reprezentuje format, np. maskę kanału, częstotliwość próbkowania i działanie miksera dźwięku. Ta klasa umożliwia bezpośrednie wysyłanie dźwięku bez mieszania, regulacji głośności i efektów przetwarzania.
Narzędzia i produktywność programistów
Menedżer danych logowania
Android 14 添加了 Credential Manager 作为平台 API,并通过使用 Google Play 服务的 Jetpack 库为 Android 4.4(API 级别 19)设备提供了额外的支持。凭据管理器旨在使用 API 通过用户配置的凭据提供程序检索和存储凭据,让用户更轻松地登录。凭据管理器在一个 API 中支持多种登录方法,包括用户名和密码、通行密钥和联合登录解决方案(如“使用 Google 账号登录”)。
通行密钥具有许多优势。例如,通行密钥基于业界标准构建,可在不同的操作系统和浏览器生态系统中使用,还可用于网站和应用。
如需了解详情,请参阅凭据管理器和通行密钥文档以及关于 Credential Manager 和通行密钥的博文。
Health Connect
Health Connect to repozytorium na urządzeniu zawierające dane o zdrowiu i aktywności fizycznej użytkowników. Pozwala użytkownikom udostępniać dane między ulubionymi aplikacjami w jednym miejscu i określać, jakie dane chcą udostępniać tym aplikacjom.
Na urządzenia z Androidem w wersji starszej niż 14 aplikację Health Connect można pobrać ze Sklepu Google Play. Od Androida 14 Health Connect jest częścią platformy i pobiera aktualizacje w ramach aktualizacji systemu Google Play bez konieczności pobierania dodatkowych plików. Dzięki temu można często aktualizować Health Connect, a aplikacje mogą korzystać z jej dostępności na urządzeniach z Androidem 14 lub nowszym. Użytkownicy mogą uzyskać dostęp do Health Connect z poziomu ustawień na urządzeniu. Ustawienia prywatności są zintegrowane z ustawieniami systemu.
Health Connect zawiera kilka nowych funkcji Androida 14, takich jak trasy ćwiczeń, co pozwala użytkownikom udostępniać trasę treningu, którą można wizualizować na mapie. Trasa to lista lokalizacji zapisanych w określonym przedziale czasu, a aplikacja może wstawiać trasy do sesji ćwiczeń, łącząc je ze sobą. Aby zapewnić użytkownikom pełną kontrolę nad tymi danymi wrażliwymi, muszą oni zezwolić na udostępnianie poszczególnych tras innym aplikacjom.
Więcej informacji znajdziesz w dokumentacji Health Connection oraz w poście na blogu Co nowego w Android Health.
Aktualizacje OpenJDK 17
Android 14 将继续更新 Android 的核心库,以与最新 OpenJDK LTS 版本中的功能保持一致,包括适合应用和平台开发者的库更新和 Java 17 语言支持。
其中包含以下功能和改进:
- 将大约 300 个
java.base
类更新为支持 Java 17。 - 文本块 - 为 Java 编程语言引入了多行字符串字面量。
- instanceof 模式匹配:可让对象在
instanceof
中被视为具有特定类型,而无需任何额外的变量。 - 密封类:允许您限制哪些类和接口可以扩展或实现它们。
得益于 Google Play 系统更新 (Project Mainline),6 亿多台设备能够接收包含这些更改的最新 Android 运行时 (ART) 更新。我们致力于为应用提供更加一致、安全的跨设备环境,并为用户提供独立于平台版本的新功能。
Java 和 OpenJDK 是 Oracle 及/或其关联公司的商标或注册商标。
Ulepszenia w sklepach z aplikacjami
W Androidzie 14 wprowadziliśmy kilka interfejsów API PackageInstaller
, które pozwalają sklepom z aplikacjami zwiększyć wygodę użytkowników.
Przed pobraniem poproś o zatwierdzenie instalacji
Instalacja lub aktualizacja aplikacji może wymagać zatwierdzenia użytkownika.
Na przykład gdy instalator korzystający z uprawnienia REQUEST_INSTALL_PACKAGES
próbuje zainstalować nową aplikację. We wcześniejszych wersjach Androida sklepy z aplikacjami mogą prosić użytkownika o zatwierdzenie dopiero po zapisaniu plików APK w sesji instalacji, a sesja została zgłoszona.
Od Androida 14 metoda requestUserPreapproval()
umożliwia instalatorom prośbę o zatwierdzenie użytkownika przed wykonaniem sesji instalacji. To ulepszenie umożliwia sklep z aplikacjami odroczenie pobierania plików APK do momentu zatwierdzenia instalacji przez użytkownika. Ponadto gdy użytkownik zatwierdzi instalację, sklep z aplikacjami może pobrać i zainstalować aplikację w tle, nie przerywając mu działania.
Zgłaszanie odpowiedzialności za przyszłe aktualizacje
Metoda setRequestUpdateOwnership()
pozwala instalatorowi wskazać systemowi, że ma być odpowiedzialny za przyszłe aktualizacje instalowanej aplikacji. Ta funkcja umożliwia egzekwowanie prawa własności do aplikacji. Oznacza to, że tylko właściciel aktualizacji może instalować automatyczne aktualizacje aplikacji. Wymuszanie własności aktualizacji pomaga zadbać o to, aby użytkownicy otrzymywali aktualizacje tylko ze sklepu z aplikacjami.
Wszyscy inni użytkownicy, którzy zainstalowali aktualizację, w tym korzystający z uprawnienia INSTALL_PACKAGES
, muszą uzyskać wyraźną zgodę użytkownika. Jeśli użytkownik zdecyduje się przeprowadzić aktualizację z innego źródła, utraci własność aktualizacji.
Aktualizuj aplikacje o mniej uciążliwych porach
Sklepy z aplikacjami zwykle nie chcą aktualizować aktywnie używanej aplikacji, ponieważ powoduje to kończenie jej uruchomionych procesów, co może zakłócać działania użytkownika.
Począwszy od Androida 14 interfejs API InstallConstraints
daje instalatorom możliwość aktualizowania aplikacji w odpowiednim momencie. Na przykład sklep z aplikacjami może wywołać metodę commitSessionAfterInstallConstraintsAreMet()
, by upewnić się, że aktualizacja jest zatwierdzana tylko wtedy, gdy użytkownik nie wchodzi już w interakcję z daną aplikacją.
Bezproblemowe instalowanie opcjonalnych podziałów
W przypadku dzielonych pakietów APK funkcje aplikacji mogą być dostarczane w osobnych plikach APK, a nie jako monolityczny plik APK. Dzielone pliki APK pozwalają sklepom z aplikacjami zoptymalizować wyświetlanie różnych komponentów aplikacji. Na przykład sklepy z aplikacjami mogą prowadzić
optymalizację na podstawie właściwości urządzenia docelowego. Interfejs PackageInstaller
API obsługuje podziały od momentu wprowadzenia na poziomie 22 interfejsu API.
W Androidzie 14 metoda setDontKillApp()
umożliwia instalatorowi zasygnalizowanie, że uruchomione procesy aplikacji nie powinny zostać zatrzymane po zainstalowaniu nowych podziałów. Sklepy z aplikacjami mogą korzystać z tej funkcji, aby bezproblemowo instalować nowe funkcje aplikacji, gdy użytkownik jej używa.
Pakiety metadanych aplikacji
Począwszy od Androida 14 instalator pakietów na Androida umożliwia określanie metadanych aplikacji, takich jak praktyki związane z bezpieczeństwem danych, które mają być dołączane na stronach sklepów z aplikacjami, np. w Google Play.
Wykrywanie, kiedy użytkownicy robią zrzuty ekranu z urządzenia
Aby zapewnić bardziej ujednolicone wykrywanie zrzutów ekranu, Android 14 wprowadza interfejs API wykrywania zrzutów ekranu, który chroni prywatność. Ten interfejs API umożliwia aplikacjom rejestrowanie wywołań zwrotnych na podstawie poszczególnych działań. Te funkcje są wywoływane i użytkownik jest powiadamiany, gdy robi zrzut ekranu, gdy ta aktywność jest widoczna.
Interfejs użytkownika
Działania niestandardowe w panelu udostępniania i ulepszona kolejność
Android 14 aktualizuje systemowy arkusz udostępniania, aby obsługiwał niestandardowe działania w aplikacji i nie tylko z podglądem wyników.
Dodaj działania niestandardowe
W Androidzie 14 aplikacja może dodaj niestandardowe działania do systemowego arkusza udostępniania wywoływanego przez niego.
Popraw ranking celów w przypadku bezpośredniego udostępniania
Android 14 wykorzystuje więcej sygnałów z aplikacji do określania rankingu bezpośrednich udostępniać cele, aby dostarczać użytkownikowi bardziej przydatne wyniki. Aby uzyskać najbardziej przydatny sygnał dotyczący rankingu, postępuj zgodnie ze wskazówkami dotyczącymi poprawianie pozycji w rankingach celów bezpośredniego udostępniania. Aplikacje komunikacyjne mogą też raportować użycie skrótów do: wiadomości wychodzących i przychodzących.
Obsługa wbudowanych i niestandardowych animacji dla funkcji przewidywania tekstu z placówek
W Androidzie 13 dostępna jest opcja dla programistów, która umożliwia przewidywanie powrotu do ekranu głównego. W przypadku użycia obsługiwanej aplikacji z włączoną opcją programisty przesunięcie do tyłu powoduje wyświetlenie animacji wskazującej, że gest cofania powoduje wyjście z aplikacji z powrotem na ekran główny.
Android 14 zawiera wiele ulepszeń i nowe wskazówki dotyczące funkcji przewidywania wstecznego:
- Możesz skonfigurować
android:enableOnBackInvokedCallback=true
tak, aby otrzymywać animacje systemu na przewidywanie wstecznych działań w odniesieniu do poszczególnych działań, a nie całej aplikacji. - Dodaliśmy nowe animacje systemowe dla animacji powrotu do domu z Androida 13. Nowe animacje systemowe są wielozadaniowe i interaktywne. Są wyświetlane automatycznie po migracji do funkcji przewidywania wstecznej.
- Dodaliśmy nowe animacje komponentu Materiał dla dolnych plansz, arkuszy bocznych i wyszukiwarki.
- Opracowaliśmy wskazówki dotyczące projektowania niestandardowych animacji i przejść w aplikacji.
- Dodaliśmy nowe interfejsy API do obsługi niestandardowych animacji przejścia w aplikacji:
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- W przypadku przejść, które reagują, gdy użytkownik przesuwa do tyłu, zamiast
overridePendingTransition
używajoverrideActivityTransition
.
W tej wersji przedpremierowej Androida 14 wszystkie funkcje funkcji przewidywania wstecznego są dostępne tylko dla programistów. Zapoznaj się z przewodnikiem dla programistów, by dowiedzieć się, jak przenieść aplikację do funkcji przewidywania wstecznej, oraz przewodnikiem dla programistów po tworzeniu niestandardowych przejść w aplikacji.
Zastąpienia na urządzeniach z dużym ekranem
Zastąpienia dotyczące aplikacji umożliwiają producentom urządzeń zmianę działania aplikacji na urządzeniach z dużym ekranem. Na przykład zastąpienie FORCE_RESIZE_APP
instruuje system, aby zmienił rozmiar aplikacji, aby pasowała do wyświetlanych wymiarów (unikając trybu zgodności rozmiaru), nawet jeśli w manifeście aplikacji ustawiono resizeableActivity="false"
.
Zastąpienia mają na celu poprawę wrażeń użytkowników na dużych ekranach.
Nowe właściwości pliku manifestu umożliwiają wyłączenie w przypadku aplikacji niektórych zastąpień producenta urządzenia.
Zastąpienia dla użytkowników na dużym ekranie na poziomie aplikacji
按应用替换会更改大屏设备上应用的行为。例如,无论应用的配置如何,OVERRIDE_MIN_ASPECT_RATIO_LARGE
设备制造商替换项都会将应用宽高比设置为 16:9。
Android 14 QPR1 允许用户在大屏设备上通过新的设置菜单应用按应用替换项。
Udostępnianie ekranu aplikacji
Udostępnianie ekranu aplikacji umożliwia użytkownikom udostępnianie okna aplikacji zamiast całego ekranu urządzenia podczas nagrywania zawartości ekranu.
W przypadku udostępniania ekranu aplikacji pasek stanu, pasek nawigacyjny, powiadomienia i inne elementy interfejsu systemu są wykluczone z udostępnianego wyświetlacza. Udostępniana jest tylko treść wybranej aplikacji.
Udostępnianie ekranu aplikacji zwiększa produktywność i prywatność, ponieważ użytkownicy mogą korzystać z wielu aplikacji przy jednoczesnym ograniczeniu udostępniania treści do jednej aplikacji.
Inteligentna odpowiedź na klawiaturze Gboard na Pixelu 8 Pro z wykorzystaniem LLM
在附带 12 月功能更新版的 Pixel 8 Pro 设备上,开发者可以在 Gboard 中体验更优质的智能回复,该功能由在 Google Tensor 上运行的设备端大型语言模型 (LLM) 提供支持。
此功能目前仅在 WhatsApp、Line 和 KakaoTalk 中推出美式英语的有限预览版。该功能需要使用一部支持 Gboard 的 Pixel 8 Pro 设备作为键盘。
如需试用,请先依次选择设置 > 开发者选项 > AiCore 设置 > 启用 Aicore Persistent 以启用该功能。
接下来,在受支持的应用中打开对话,以在 Gboard 的建议栏中看到由 LLM 提供支持的智能回复,以便响应收到的消息。
Grafika
Ścieżki można wyszukiwać i interpolować
Interfejs API Path
na Androida to zaawansowany i elastyczny mechanizm tworzenia i renderowania grafiki wektorowej, który umożliwia kreślenie lub wypełnianie ścieżki, tworzenie ścieżki z segmentów linii albo krzywych kwadratowych i krzywych sześciennych, wykonywanie operacji logicznych w celu uzyskania jeszcze bardziej złożonych kształtów lub wszystkich tych elementów jednocześnie. Ograniczeniem jest możliwość sprawdzenia, co tak naprawdę znajduje się w obiekcie ścieżki. Elementy wewnętrzne obiektu są nieprzezroczyste po jego utworzeniu.
Aby utworzyć Path
, użyj metod wywoływania takich jak moveTo()
, lineTo()
i cubicTo()
, aby dodać segmenty ścieżki. Nie ma jednak możliwości określenia, jakie segmenty mają się znaleźć na tej ścieżce, więc musisz zachować te informacje w momencie tworzenia.
Począwszy od Androida 14 możesz wysyłać zapytania dotyczące ścieżek, aby dowiedzieć się, co się na nich znajduje.
Najpierw musisz uzyskać obiekt PathIterator
, korzystając z interfejsu API Path.getPathIterator
:
Kotlin
val path = Path().apply { moveTo(1.0f, 1.0f) lineTo(2.0f, 2.0f) close() } val pathIterator = path.pathIterator
Java
Path path = new Path(); path.moveTo(1.0F, 1.0F); path.lineTo(2.0F, 2.0F); path.close(); PathIterator pathIterator = path.getPathIterator();
Następnie możesz wywołać metodę PathIterator
, by iterować po kolei segmenty i pobrać wszystkie niezbędne dane dla każdego z nich. W tym przykładzie użyto obiektów PathIterator.Segment
, które gromadzą dane w formie pakietów:
Kotlin
for (segment in pathIterator) { println("segment: ${segment.verb}, ${segment.points}") }
Java
while (pathIterator.hasNext()) { PathIterator.Segment segment = pathIterator.next(); Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints()); }
Funkcja PathIterator
ma też wersję next()
, która nie przydziela pamięci, i możesz jej użyć do przekazania bufora, aby przechowywać dane punktowe.
Jednym z ważnych zastosowań zapytań o dane Path
jest interpolacja. Możesz na przykład chcieć animować (czyli przekształcać) 2 różne ścieżki. Aby jeszcze bardziej uprościć ten przypadek użycia, Android 14 zawiera też metodę interpolate()
w Path
. Zakładając, że 2 ścieżki mają taką samą strukturę wewnętrzną, metoda interpolate()
tworzy nowy Path
z tym interpolowanym wynikiem. Ten przykład zwraca ścieżkę, która jest połową (interpolacja liniowa 0,5) ścieżki path
i otherPath
:
Kotlin
val interpolatedResult = Path() if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, .5f, interpolatedResult) }
Java
Path interpolatedResult = new Path(); if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, 0.5F, interpolatedResult); }
Biblioteka Jetpack graphics-path umożliwia korzystanie z podobnych interfejsów API również w starszych wersjach Androida.
niestandardowe siatki z shaderami wierzchołkowymi i fragmentowymi,
Android 长期支持绘制具有自定义着色的三角形网格,但输入网格格式被限制为几种预定义的属性组合。Android 14 增加了对自定义网格的支持,自定义网格可定义为三角形或三角形带,并且可以视需要编入索引。这些网格通过自定义属性、顶点步长、转换以及用 AGSL 编写的顶点和片段着色器指定。
顶点着色器定义变化,例如位置和颜色,而 fragment 着色器可以选择定义像素的颜色,通常通过使用顶点着色器创建的变化。如果 fragment 着色器提供了颜色,则它会使用绘制网格时选择的混合模式与当前的 Paint
颜色混合。您可以将 uniform 传递到 fragment 和顶点着色器中,以提高灵活性。
sprzętowy renderowanie bufora dla Canvasa,
Aby ułatwić korzystanie z interfejsu API Canvas
w Androidzie do rysowania z przyspieszeniem sprzętowym w HardwareBuffer
, Android 14 wprowadza HardwareBufferRenderer
. Ten interfejs API jest
szczególnie przydatne, gdy Twój przypadek użycia obejmuje komunikację z systemem
kompozytor do SurfaceControl
, by zapewnić małe opóźnienie
rysunek.