Android 14 mang đến cho nhà phát triển các tính năng và API mới hữu ích. Nội dung dưới đây giúp bạn tìm hiểu các tính năng cho ứng dụng cũng như làm quen với các API liên quan.
Để biết danh sách chi tiết về các API đã thêm, sửa đổi và xoá, hãy đọc báo cáo điểm khác biệt về API. Để biết thông tin chi tiết về các API đã thêm, hãy truy cập vào tài liệu tham khảo về API cho Android. Đối với Android 14, hãy tìm các API đã được thêm vào API cấp 34. Để tìm hiểu những thay đổi của nền tảng có thể tác động đến ứng dụng của bạn, hãy nhớ tham khảo các thay đổi về hành vi của Android 14 đối với ứng dụng nhắm đến Android 14 và tất cả ứng dụng.
Quốc tế hoá
Lựa chọn ưu tiên về ngôn ngữ cho mỗi ứng dụng
Android 14 扩展了 Android 13(API 级别 33)中引入的按应用设定语言功能,并包含以下额外功能:
自动生成应用的
localeConfig:从 Android Studio Giraffe Canary 7 和 AGP 8.1.0-alpha07 开始,您可以将应用配置为自动支持各应用语言偏好设定。Android Gradle 插件会根据您的项目资源生成LocaleConfig文件,并在最终清单文件中添加对该文件的引用,这样您就不再需要手动创建或更新该文件。AGP 使用应用模块的res文件夹中的资源以及任何库模块依赖项来确定要在LocaleConfig文件中添加的语言区域。动态更新应用的
localeConfig:使用LocaleManager方法中的setOverrideLocaleConfig()和getOverrideLocaleConfig()可以在设备的系统设置中动态更新应用的受支持语言列表。有了这种灵活性,您可以按区域自定义支持的语言列表、运行 A/B 实验,或者如果您的应用通过服务器端推送进行本地化,则可以提供更新后的语言区域列表。输入法 (IME) 的应用语言可见性:IME 可以利用
getApplicationLocales()方法查看当前应用的语言,并将 IME 语言与该语言进行匹配。
API Biến tố ngữ pháp
Có đến 3 tỷ người sử dụng ngôn ngữ có phân biệt giống ngữ pháp: ngôn ngữ mà các danh mục ngữ pháp (chẳng hạn như danh từ, động từ, tính từ và giới từ) sẽ phản ánh theo giống của người và đối tượng mà bạn nói đến hoặc nói về. Theo truyền thống, nhiều ngôn ngữ có phân biệt giống ngữ pháp sử dụng giống đực làm giống mặc định hoặc chung.
Việc xưng hô sai ngữ pháp với người dùng, chẳng hạn như xưng hô với phụ nữ theo ngữ pháp giống đực, có thể ảnh hưởng tiêu cực đến hiệu suất và thái độ của họ. Ngược lại, giao diện người dùng có ngôn ngữ phản ánh chính xác giống ngữ pháp của người dùng có thể cải thiện mức độ tương tác, cũng như mang lại trải nghiệm tự nhiên và phù hợp hơn cho người dùng.
Để xây dựng giao diện người dùng cho các ngôn ngữ có giống ngữ pháp, Android 14 ra mắt API Biến tố ngữ pháp, cho phép bạn hỗ trợ giống ngữ pháp mà không cần tái cấu trúc ứng dụng.
Lựa chọn ưu tiên theo khu vực
用户可通过地区偏好设置对温度单位、一周的第一天和编号系统进行个性化设置。居住在美国的欧洲用户可能更希望使用摄氏度,而不是华氏度,并且希望应用将星期一视为一周的开始,而不是像美国那样默认从星期日开始。
新 Android 设置菜单包含这些偏好设置,使用户能够在一个位置集中发现这些应用更改偏好设置。这些偏好设置在备份和恢复设备后也会保持不变。多个 API 和 intent(例如 getTemperatureUnit 和 getFirstDayOfWeek)会为您的应用授予读取权限来访问用户偏好设置,因此您的应用可以调整其显示信息的方式。您还可以在 ACTION_LOCALE_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。
如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和输入法 > 地区偏好设置。
Hỗ trợ tiếp cận
Điều chỉnh tỷ lệ phông chữ phi tuyến tính lên đến 200%
Kể từ Android 14, hệ thống sẽ hỗ trợ việc chuyển tỷ lệ phông chữ lên đến 200%, mang đến cho người dùng thêm một số chế độ hỗ trợ tiếp cận.
Để ngăn các thành phần văn bản cỡ lớn trên màn hình bị chuyển tỷ lệ quá lớn, hệ thống sẽ áp dụng một đường cong tỷ lệ phi tuyến tính. Chiến lược điều chỉnh tỷ lệ này có nghĩa là văn bản lớn không chuyển tỷ lệ theo cùng mức độ với văn bản nhỏ hơn. Việc chuyển tỷ lệ phông chữ phi tuyến tính giúp bảo toàn thứ bậc tỷ lệ giữa các phần tử có kích thước khác nhau, trong khi giảm thiểu vấn đề với việc chuyển tỷ lệ văn bản tuyến tính ở mức cao (chẳng hạn như văn bản bị cắt hoặc văn bản trở nên khó đọc hơn do kích thước trên màn hình cực kỳ lớn).
Kiểm thử ứng dụng bằng tỷ lệ phông chữ phi tuyến tính
Nếu đã sử dụng đơn vị pixel có thể mở rộng (sp) để xác định kích thước văn bản, thì các lựa chọn bổ sung và điểm cải tiến về tỷ lệ này sẽ tự động được áp dụng cho văn bản trong ứng dụng của bạn. Tuy nhiên, bạn vẫn nên tiến hành kiểm thử giao diện người dùng khi bật kích thước phông chữ tối đa (200%) để đảm bảo rằng ứng dụng của bạn áp dụng kích thước phông chữ một cách chính xác và có thể sử dụng phông chữ có kích thước lớn hơn mà không ảnh hưởng đến khả năng hữu dụng.
Để bật kích thước phông chữ 200%, hãy làm theo các bước sau:
- Mở ứng dụng Cài đặt rồi chuyển đến phần Hỗ trợ tiếp cận > Văn bản và kích thước hiển thị.
- Đối với tuỳ chọn Kích thước phông chữ, hãy nhấn vào biểu tượng dấu cộng (+) cho đến khi bật chế độ cài đặt kích thước phông chữ tối đa, như trong hình ảnh kèm theo phần này.
Sử dụng đơn vị pixel được điều chỉnh theo tỷ lệ (sp) đối với kích thước văn bản
Hãy nhớ luôn chỉ định kích thước văn bản theo đơn vị sp. Khi ứng dụng của bạn sử dụng đơn vị sp, Android có thể áp dụng kích thước văn bản mà người dùng ưu tiên và chuyển tỷ lệ văn bản một cách thích hợp.
Đừng sử dụng đơn vị sp cho khoảng đệm hoặc xác định chiều cao của khung hiển thị giả định khoảng đệm ngầm ẩn: với việc chuyển tỷ lệ phông chữ phi tuyến tính theo đơn vị sp thì kích thước có thể sẽ không tỷ lệ thuận, vì vậy, 4sp + 20sp có thể không bằng 24sp.
Chuyển đổi đơn vị pixel được điều chỉnh theo tỷ lệ (sp)
Sử dụng TypedValue.applyDimension() để chuyển đổi từ đơn vị sp sang pixel và sử dụng TypedValue.deriveDimension() để chuyển đổi pixel thành sp. Các phương thức này tự động áp dụng đường cong tỷ lệ phi tuyến tính thích hợp.
Tránh phương trình mã hoá cứng bằng Configuration.fontScale hoặc DisplayMetrics.scaledDensity. Vì việc chuyển tỷ lệ phông chữ là phi tuyến tính, nên trường scaledDensity không còn chính xác nữa. Bạn chỉ nên sử dụng trường fontScale cho mục đích cung cấp thông tin vì phông chữ không còn được điều chỉnh tỷ lệ bằng một giá trị vô hướng duy nhất nữa.
Sử dụng đơn vị sp cho lineHeight
Luôn xác định android:lineHeight bằng đơn vị sp thay vì dp, để chiều cao dòng có thể điều chỉnh theo văn bản của bạn. Nếu không, nếu văn bản của bạn là sp nhưng lineHeight ở dp hoặc px, thì văn bản đó sẽ không được điều chỉnh tỷ lệ và trông có vẻ chật hẹp.
TextView tự động điều chỉnh lineHeight để giữ nguyên tỷ lệ mà bạn muốn, nhưng chỉ khi cả textSize và lineHeight đều được xác định bằng đơn vị sp.
Camera và nội dung nghe nhìn
Ultra HDR cho hình ảnh
Android 14 hỗ trợ thêm hình ảnh Dải động cao (HDR) giúp giữ lại nhiều thông tin hơn từ cảm biến khi chụp ảnh, nhờ đó mang lại màu sắc sống động và độ tương phản cao hơn. Android sử dụng định dạng Ultra HDR, tương thích hoàn toàn ngược với hình ảnh JPEG, cho phép các ứng dụng tương tác liền mạch với hình ảnh HDR, hiển thị hình ảnh đó ở Dải động tiêu chuẩn (SDR) nếu cần.
Khung sẽ tự động kết xuất các hình ảnh này trong giao diện người dùng ở chế độ HDR khi ứng dụng của bạn chọn sử dụng giao diện người dùng HDR cho Cửa sổ hoạt động, thông qua một mục nhập tệp kê khai hoặc trong thời gian chạy bằng cách gọi Window.setColorMode(). Bạn cũng có thể chụp hình ảnh tĩnh HDR siêu độ nét được nén trên các thiết bị được hỗ trợ. Khi cảm biến khôi phục được nhiều màu hơn, bạn có thể chỉnh sửa linh hoạt hơn sau khi chụp. Bạn có thể sử dụng Gainmap liên kết với hình ảnh Ultra HDR để kết xuất hình ảnh bằng OpenGL hoặc Vulkan.
Thu phóng, Lấy nét, Xem nhanh và nhiều tính năng khác trong các tiện ích camera
Android 14 nâng cấp và cải thiện tiện ích máy ảnh, cho phép các ứng dụng xử lý trong thời gian dài hơn, nhờ đó hình ảnh được cải thiện bằng cách sử dụng các thuật toán chuyên sâu về điện toán như chụp ảnh ở điều kiện ánh sáng yếu trên các thiết bị được hỗ trợ. Các tính năng này mang đến cho người dùng trải nghiệm mạnh mẽ hơn nữa khi sử dụng các tính năng của tiện ích máy ảnh. Sau đây là một số ví dụ về những điểm cải tiến này:
- Tính năng ước tính độ trễ xử lý ảnh tĩnh động cung cấp thông tin ước tính độ trễ chụp ảnh tĩnh chính xác hơn nhiều dựa trên điều kiện môi trường và cảnh hiện tại. Gọi
CameraExtensionSession.getRealtimeStillCaptureLatency()để lấy đối tượngStillCaptureLatencycó hai phương thức ước tính độ trễ. Phương thứcgetCaptureLatency()trả về độ trễ ước tính giữaonCaptureStartedvàonCaptureProcessStarted(), còn phương thứcgetProcessingLatency()trả về độ trễ ước tính giữaonCaptureProcessStarted()và khung hình đã xử lý cuối cùng. - Hỗ trợ các lệnh gọi lại tiến trình chụp để ứng dụng có thể hiển thị tiến trình hiện tại của các thao tác xử lý ảnh chụp tĩnh, chạy trong thời gian dài. Bạn có thể kiểm tra xem tính năng này có dùng được với
CameraExtensionCharacteristics.isCaptureProcessProgressAvailablehay không. Nếu có, bạn sẽ triển khai lệnh gọi lạionCaptureProcessProgressed(), trong đó tiến trình (từ 0 đến 100) được truyền vào dưới dạng tham số. Siêu dữ liệu dành riêng cho tiện ích, chẳng hạn như
CaptureRequest.EXTENSION_STRENGTHđể điều chỉnh mức độ của một hiệu ứng tiện ích, chẳng hạn như mức độ làm mờ nền bằngEXTENSION_BOKEH.Tính năng Xem sau cho tính năng Chụp ảnh tĩnh trong các tiện ích máy ảnh, cung cấp hình ảnh được xử lý ít hơn và nhanh hơn so với hình ảnh cuối cùng. Nếu một tiện ích tăng độ trễ xử lý, thì bạn có thể cung cấp hình ảnh sau khi xem làm phần giữ chỗ để cải thiện trải nghiệm người dùng và sau đó chuyển sang hình ảnh cuối cùng. Bạn có thể kiểm tra xem tính năng này có dùng được với
CameraExtensionCharacteristics.isPostviewAvailablehay không. Sau đó, bạn có thể truyềnOutputConfigurationđếnExtensionSessionConfiguration.setPostviewOutputConfiguration.Hỗ trợ
SurfaceViewcho phép đường dẫn kết xuất bản xem trước được tối ưu hoá và tiết kiệm điện năng hơn.Hỗ trợ tính năng nhấn để lấy nét và thu phóng trong quá trình sử dụng tiện ích.
Thu phóng trong cảm biến
Khi REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE trong CameraCharacteristics chứa SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW, ứng dụng của bạn có thể sử dụng các tính năng cảm biến nâng cao để cung cấp luồng RAW đã cắt có cùng số pixel với trường nhìn đầy đủ bằng cách sử dụng CaptureRequest với mục tiêu RAW có trường hợp sử dụng luồng được đặt thành CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW.
Bằng cách triển khai các chế độ điều khiển ghi đè yêu cầu, máy ảnh đã cập nhật sẽ cho phép người dùng điều khiển tính năng thu phóng ngay cả trước khi các chế độ điều khiển khác của máy ảnh sẵn sàng.
Âm thanh qua cổng USB không bị suy hao
Android 14 hỗ trợ các định dạng âm thanh không suy hao để mang lại trải nghiệm âm thanh chất lượng cao qua tai nghe có dây USB. Bạn có thể truy vấn một thiết bị USB để biết các thuộc tính bộ trộn ưu tiên, đăng ký trình nghe cho các thay đổi trong các thuộc tính bộ trộn ưu tiên và định cấu hình các thuộc tính bộ trộn bằng cách sử dụng lớp AudioMixerAttributes. Lớp này đại diện cho định dạng, chẳng hạn như mặt nạ kênh, tốc độ lấy mẫu và hành vi của bộ trộn âm thanh. Lớp này cho phép gửi trực tiếp âm thanh mà không cần trộn, điều chỉnh âm lượng hoặc xử lý hiệu ứng.
Năng suất và công cụ dành cho nhà phát triển
Trình quản lý thông tin xác thực
Android 14 thêm Trình quản lý thông tin xác thực làm API nền tảng, với khả năng hỗ trợ bổ sung cho các thiết bị Android 4.4 (API cấp 19) thông qua Thư viện Jetpack bằng Dịch vụ Google Play. Mục đích của Trình quản lý thông tin xác thực là giúp người dùng đăng nhập dễ dàng hơn bằng các API truy xuất và lưu trữ thông tin xác thực thông qua các trình cung cấp thông tin xác thực do người dùng định cấu hình. Trình quản lý thông tin xác thực hỗ trợ nhiều phương thức đăng nhập, bao gồm tên người dùng và mật khẩu, khoá truy cập và các giải pháp đăng nhập liên kết (chẳng hạn như Đăng nhập bằng Google) trong một API duy nhất.
Khẩu khoá truy cập mang lại nhiều lợi thế. Ví dụ: khoá truy cập được xây dựng dựa trên các tiêu chuẩn của ngành, có thể hoạt động trên nhiều hệ điều hành và hệ sinh thái trình duyệt, cũng như có thể được sử dụng với cả trang web và ứng dụng.
Để biết thêm thông tin, hãy xem tài liệu về Trình quản lý thông tin xác thực và khoá truy cập cũng như bài đăng trên blog về Trình quản lý thông tin xác thực và khoá truy cập.
Health Connect
Health Connect là một kho lưu trữ trên thiết bị dành cho dữ liệu sức khoẻ và thể chất của người dùng. Tính năng này cho phép người dùng chia sẻ dữ liệu giữa các ứng dụng mà họ yêu thích, với một nơi duy nhất để kiểm soát dữ liệu họ muốn chia sẻ với các ứng dụng này.
Trên các thiết bị chạy phiên bản Android trước Android 14, bạn có thể tải Health Connect xuống dưới dạng ứng dụng trên Cửa hàng Google Play. Kể từ Android 14, Health Connect là một phần của nền tảng và nhận được bản cập nhật thông qua bản cập nhật hệ thống của Google Play mà không cần tải xuống riêng. Nhờ đó, Health Connect có thể được cập nhật thường xuyên và các ứng dụng của bạn có thể dựa vào Health Connect có sẵn trên các thiết bị chạy Android 14 trở lên. Người dùng có thể truy cập vào Health Connect từ phần Cài đặt trong thiết bị của họ, với các chế độ kiểm soát quyền riêng tư được tích hợp vào phần cài đặt hệ thống.
Health Connect có một số tính năng mới trong Android 14, chẳng hạn như tuyến đường tập thể dục, cho phép người dùng chia sẻ tuyến đường tập thể dục của họ và có thể được trực quan hoá trên bản đồ. Tuyến đường được xác định là danh sách các vị trí được lưu trong một khoảng thời gian và ứng dụng của bạn có thể chèn các tuyến đường vào các phiên tập thể dục, liên kết các tuyến đường đó với nhau. Để đảm bảo người dùng có toàn quyền kiểm soát dữ liệu nhạy cảm này, người dùng phải cho phép chia sẻ từng tuyến đường với các ứng dụng khác.
Để biết thêm thông tin, hãy xem tài liệu về Health Connect và bài đăng trên blog về Tính năng mới trong Android Health.
Nội dung cập nhật 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 及/或其关联公司的商标或注册商标。
Những điểm cải tiến cho các cửa hàng ứng dụng
Android 14 引入了多个 PackageInstaller API,可帮助应用商店改善其用户体验。
下载之前请求批准安装
安装或更新应用可能需要用户批准。例如,当使用 REQUEST_INSTALL_PACKAGES 权限的安装程序尝试安装新应用时。在之前的 Android 版本中,只有在将 APK 写入安装会话并且提交会话后,应用商店才能请求用户批准。
从 Android 14 开始,requestUserPreapproval() 方法可让安装程序在提交安装会话之前请求用户批准。此项改进可让应用商店将任何 APK 的下载操作推迟到用户批准安装之后。此外,用户批准安装后,应用商店可以在后台下载并安装应用,而不会干扰用户。
承担未来更新的责任
借助 setRequestUpdateOwnership() 方法,安装程序可以向系统表明它打算负责将被安装的应用未来的更新。此 capability 可实现更新所有权强制执行,即仅允许更新所有者为应用安装自动更新。更新所有权强制执行有助于确保用户仅收到来自预期应用商店的更新。
任何其他安装程序(包括使用 INSTALL_PACKAGES 权限的安装程序)都必须获得用户的明确批准,才能安装更新。如果用户决定继续从其他来源安装更新,则会失去更新所有权。
在干扰较少的时段更新应用
应用商店通常希望避免更新正在使用的应用,因为这会导致应用正在运行的进程被终止,而这可能会中断用户正在执行的操作。
从 Android 14 开始,InstallConstraints API 让安装程序可以确保其应用更新在适当的时机进行。例如,应用商店可以调用 commitSessionAfterInstallConstraintsAreMet() 方法来确保仅在用户不再与相应应用互动时才进行更新。
无缝安装可选拆分
借助拆分 APK,应用的功能可以通过单独的 APK 文件提供,而不是以单体式 APK 的形式提供。借助拆分 APK,应用商店可以优化不同应用组件的提供。例如,应用商店可能会根据目标设备的属性进行优化。自在 API 级别 22 中引入以来,PackageInstaller API 一直支持拆分。
在 Android 14 中,setDontKillApp() 方法可让安装程序指明在安装新的拆分项时应用的运行进程不应终止。应用商店可以使用此功能,在用户使用应用时无缝安装应用的新功能。
Gói siêu dữ liệu ứng dụng
Kể từ Android 14, trình cài đặt gói Android cho phép bạn chỉ định siêu dữ liệu ứng dụng (ví dụ: các biện pháp đảm bảo an toàn dữ liệu) để đưa vào các trang trên cửa hàng ứng dụng như Google Play.
Phát hiện thời điểm người dùng chụp ảnh màn hình thiết bị
为了打造更加标准化的屏幕截图检测体验,Android 14 引入了可保护隐私的屏幕截图检测 API。借助此 API,应用可以按 activity 注册回调。如果用户在该 activity 可见时截取屏幕截图,系统会调用这些回调并通知用户。
Trải nghiệm người dùng
Các thao tác tuỳ chỉnh trên Trang chia sẻ nội dung và cách cải thiện thứ hạng
Android 14 更新了系统 Sharesheet,以便为用户提供自定义应用操作和信息更丰富的预览结果。
添加自定义操作
对于 Android 14,您的应用可以向其调用的系统 Sharesheet 添加自定义操作。
提高直接共享目标的排名
Android 14 根据来自应用的更多信号来确定直接共享目标的排名,以便为用户提供更实用的结果。为了提供最实用的排名信号,请遵循提高直接共享目标排名的准则。通讯应用还可以报告出站和入站消息的快捷方式使用情况。
Hỗ trợ ảnh động tích hợp sẵn và ảnh động tuỳ chỉnh cho tính năng Xem trước thao tác quay lại
Android 13 đã giới thiệu ảnh động xem trước thao tác quay lại màn hình chính dưới hình thức tuỳ chọn dành cho nhà phát triển. Khi vuốt ngược lại, trong một ứng dụng được hỗ trợ và tuỳ chọn dành cho nhà phát triển được bật, sẽ xuất hiện ảnh động chỉ ra rằng cử chỉ vuốt ngược là để thoát khỏi ứng dụng và quay lại màn hình chính.
Android 14 có nhiều điểm cải tiến và hướng dẫn mới về tính năng Xem trước thao tác quay lại:
- Bạn có thể thiết lập
android:enableOnBackInvokedCallback=trueđể chọn sử dụng ảnh động xem trước quay lại hệ thống cho mỗi Hoạt động thay vì cho toàn bộ ứng dụng. - Chúng tôi đã thêm ảnh động hệ thống mới để tăng cường cho ảnh động quay lại màn hình chính từ Android 13. Sau khi di chuyển sang tính năng Xem trước thao tác quay lại, bạn sẽ tự động nhận được các ảnh động hệ thống mới trên nhiều hoạt động và nhiều tác vụ.
- Chúng tôi đã thêm ảnh động mới trong Thành phần Material cho Bảng dưới cùng, Bảng bên và Tìm kiếm.
- Chúng tôi đã tạo hướng dẫn thiết kế để tạo ảnh động và hiệu ứng chuyển đổi tuỳ chỉnh trong ứng dụng.
- Chúng tôi đã thêm nhiều API mới để hỗ trợ ảnh động chuyển đổi tuỳ chỉnh trong ứng dụng:
handleOnBackStarted,handleOnBackProgressed,handleOnBackCancelledinOnBackPressedCallbackonBackStarted,onBackProgressed,onBackCancelledinOnBackAnimationCallback- Sử dụng
overrideActivityTransitionthay vìoverridePendingTransitionđối với các hiệu ứng chuyển đổi phản hồi khi người dùng vuốt ngược lại.
Đối với bản thử nghiệm Android 14 này, tất cả tính năng Xem trước thao tác quay lại vẫn là tuỳ chọn dành cho nhà phát triển. Xem hướng dẫn dành cho nhà phát triển để di chuyển ứng dụng sang tính năng Xem trước thao tác quay lại, cũng như hướng dẫn dành cho nhà phát triển để tạo các hiệu ứng chuyển đổi tuỳ chỉnh trong ứng dụng.
Chế độ ghi đè cho mỗi ứng dụng của nhà sản xuất thiết bị có màn hình lớn
Chế độ ghi đè cho mỗi ứng dụng cho phép nhà sản xuất thiết bị thay đổi hành vi của các ứng dụng trên thiết bị có màn hình lớn. Ví dụ: chế độ ghi đè FORCE_RESIZE_APP sẽ hướng dẫn hệ thống đổi kích thước ứng dụng cho vừa với kích thước màn hình (tránh chế độ tương thích với kích thước) ngay cả khi resizeableActivity="false" được thiết lập trong tệp kê khai ứng dụng.
Tính năng ghi đè nhằm cải thiện trải nghiệm người dùng trên màn hình lớn.
Các thuộc tính tệp kê khai mới cho phép bạn tắt một số chế độ ghi đè của nhà sản xuất thiết bị cho ứng dụng của mình.
Chế độ ghi đè cho mỗi ứng dụng của người dùng trên màn hình lớn
Tính năng ghi đè cho mỗi ứng dụng thay đổi hành vi của ứng dụng trên thiết bị có màn hình lớn. Ví dụ: chế độ ghi đè của nhà sản xuất thiết bị OVERRIDE_MIN_ASPECT_RATIO_LARGE đặt tỷ lệ khung hình của ứng dụng thành 16:9 bất kể cấu hình của ứng dụng.
Android 14 QPR1 cho phép người dùng áp dụng chế độ ghi đè cho mỗi ứng dụng thông qua trình đơn cài đặt mới trên các thiết bị có màn hình lớn.
Chia sẻ màn hình ứng dụng
Tính năng chia sẻ màn hình ứng dụng cho phép người dùng chia sẻ một cửa sổ ứng dụng thay vì toàn bộ màn hình thiết bị trong khi ghi nội dung trên màn hình.
Khi chia sẻ màn hình ứng dụng, thanh trạng thái, thanh điều hướng, thông báo và các thành phần khác trên giao diện người dùng của hệ thống sẽ bị loại trừ khỏi màn hình được chia sẻ. Chỉ nội dung của ứng dụng đã chọn mới được chia sẻ.
Tính năng chia sẻ màn hình ứng dụng giúp cải thiện năng suất và quyền riêng tư bằng cách cho phép người dùng chạy nhiều ứng dụng nhưng chỉ giới hạn việc chia sẻ nội dung ở một ứng dụng.
Tính năng Trả lời thông minh dựa trên LLM trong Gboard trên Pixel 8 Pro
Trên các thiết bị Pixel 8 Pro có Bản phát hành tính năng tháng 12, nhà phát triển có thể dùng thử tính năng trả lời thông minh chất lượng cao hơn trong Gboard nhờ các Mô hình ngôn ngữ lớn (LLM) trên thiết bị chạy trên Google Tensor.
Tính năng này được cung cấp dưới dạng bản dùng thử có giới hạn cho tiếng Anh (Hoa Kỳ) trong WhatsApp, Line và KakaoTalk. Bạn cần sử dụng thiết bị Pixel 8 Pro có Gboard làm bàn phím.
Để dùng thử, trước tiên, hãy bật tính năng này trong phần Settings > Developer Options > AiCore Settings > Enable Aicore Persistent (Cài đặt > Tuỳ chọn cho nhà phát triển > Cài đặt AICore > Bật Aicore Persistent).
Tiếp theo, hãy mở một cuộc trò chuyện trong một ứng dụng được hỗ trợ để xem tính năng Trả lời thông minh dựa trên LLM trong dải đề xuất của Gboard để phản hồi tin nhắn đến.
Đồ hoạ
Các đường dẫn nay truy vấn được và nội suy được
Android 的 Path API 是一种强大且灵活的机制,可用于创建和渲染矢量图形,能够描边或填充路径、根据线段或二次曲线或立方曲线构建路径、执行布尔运算以获取更复杂的形状,或同时执行所有这些操作。但有一个限制是,您无法了解 Path 对象中实际包含的内容;该对象的内部信息在创建后对调用方是不透明的。
如需创建 Path,您可以调用 moveTo()、lineTo() 和 cubicTo() 等方法来添加路径段。但是,无法询问该路径有哪些片段,因此您必须在创建时保留该信息。
从 Android 14 开始,您可以查询路径以了解其内部内容。首先,您需要使用 Path.getPathIterator API 获取 PathIterator 对象:
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();
接下来,您可以调用 PathIterator 逐个遍历片段,并检索每个片段的所有必要数据。以下示例使用了 PathIterator.Segment 对象,它会为您打包数据:
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()); }
PathIterator 还有一个非分配版 next(),您可以在其中传入缓冲区来保存点数据。
查询 Path 数据的一个重要用例是插值。例如,您可能想在两个不同的路径之间添加动画(或变形)。为了进一步简化该用例,Android 14 针对 Path 还包含 interpolate() 方法。假设两个路径具有相同的内部结构,interpolate() 方法会使用该插值结果创建一个新的 Path。以下示例返回了一个形状介于 path 和 otherPath 之间的一半(线性插值为 0.5)的路径:
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); }
Jetpack graphics-path 库也为早期版本的 Android 启用了类似的 API。
Lưới tuỳ chỉnh có chương trình đổ bóng đỉnh và mảnh
Android từ lâu đã hỗ trợ vẽ lưới tam giác bằng tính năng tô bóng tuỳ chỉnh, nhưng định dạng lưới đầu vào bị giới hạn ở một số tổ hợp thuộc tính được xác định trước. Android 14 hỗ trợ thêm lưới tuỳ chỉnh. Lưới này có thể được xác định là tam giác hoặc dải tam giác và có thể được lập chỉ mục (không bắt buộc). Các lưới này được chỉ định bằng các thuộc tính tuỳ chỉnh, bước đỉnh, thay đổi, chương trình đổ bóng đỉnh và mảnh được viết bằng AGSL.
Chương trình đổ bóng đỉnh xác định các biến thể, chẳng hạn như vị trí và màu sắc, trong khi chương trình đổ bóng mảnh có thể tuỳ ý xác định màu cho pixel, thường là bằng cách sử dụng các biến thể do chương trình đổ bóng đỉnh tạo ra. Nếu màu được cung cấp bởi chương trình đổ bóng mảnh, thì màu đó sẽ được kết hợp với màu Paint hiện tại bằng cách sử dụng chế độ kết hợp được chọn khi vẽ lưới. Bạn có thể truyền Bộ đồng nhất vào chương trình đổ bóng mảnh và đỉnh để tăng tính linh hoạt.
Trình kết xuất vùng đệm phần cứng cho Canvas
协助使用 Android 的 Canvas API 通过
硬件加速至 HardwareBuffer、Android 14
引入了 HardwareBufferRenderer。如果您的用例涉及通过 SurfaceControl 与系统合成器通信以实现低延迟绘制,此 API 特别有用。