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 API cho Android. Đối với Android 14, hãy tìm các API đã được thêm vào cấp độ API 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 expands on the per-app language features that were introduced in Android 13 (API level 33) with these additional capabilities:
Automatically generate an app's
localeConfig: Starting with Android Studio Giraffe Canary 7 and AGP 8.1.0-alpha07, you can configure your app to support per-app language preferences automatically. Based on your project resources, the Android Gradle plugin generates theLocaleConfigfile and adds a reference to it in the final manifest file, so you no longer have to create or update the file manually. AGP uses the resources in theresfolders of your app modules and any library module dependencies to determine the locales to include in theLocaleConfigfile.Dynamic updates for an app's
localeConfig: Use thesetOverrideLocaleConfig()andgetOverrideLocaleConfig()methods inLocaleManagerto dynamically update your app's list of supported languages in the device's system settings. Use this flexibility to customize the list of supported languages per region, run A/B experiments, or provide an updated list of locales if your app utilizes server-side pushes for localization.App language visibility for input method editors (IMEs): IMEs can utilize the
getApplicationLocales()method to check the language of the current app and match the IME language to that language.
API Biến tố ngữ pháp
3 billion people speak gendered languages: languages where grammatical categories—such as nouns, verbs, adjectives, and prepositions—inflect according to the gender of people and objects you talk to or about. Traditionally, many gendered languages use masculine grammatical gender as the default or generic gender.
Addressing users in the wrong grammatical gender, such as addressing women in masculine grammatical gender, can negatively impact their performance and attitude. In contrast, a UI with language that correctly reflects the user's grammatical gender can improve user engagement and provide a more personalized and natural-sounding user experience.
Để 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
Regional preferences enable users to personalize temperature units, the first day of the week, and numbering systems. A European living in the United States might prefer temperature units to be in Celsius rather than Fahrenheit and for apps to treat Monday as the beginning of the week instead of the US default of Sunday.
New Android Settings menus for these preferences provide users with a
discoverable and centralized location to change app preferences. These
preferences also persist through backup and restore. Several APIs and
intents—such as
getTemperatureUnit
and
getFirstDayOfWeek—
grant your app read access to user preferences, so your app can adjust how it
displays information. You can also register a
BroadcastReceiver on
ACTION_LOCALE_CHANGED
to handle locale configuration changes when regional preferences change.
To find these settings, open the Settings app and navigate to System > Languages & input > Regional preferences.
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
When REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE in
CameraCharacteristics contains
SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW, your app
can use advanced sensor capabilities to give a cropped RAW stream the same
pixels as the full field of view by using a CaptureRequest
with a RAW target that has stream use case set to
CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW.
By implementing the request override controls, the updated camera gives users
zoom control even before other camera controls are ready.
Âm thanh qua cổng USB không bị suy hao
Android 14 gains support for lossless audio formats for audiophile-level
experiences over USB wired headsets. You can query a USB device for its
preferred mixer attributes, register a listener for changes in preferred mixer
attributes, and configure mixer attributes using the
AudioMixerAttributes class. This class represents the
format, such as channel mask, sample rate, and behavior of the audio mixer. The
class allows for audio to be sent directly, without mixing,
volume adjustment, or processing effects.
Nâng cao năng suất và công cụ 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 tiếp tục công cuộc làm mới các thư viện cốt lõi của Android để phù hợp với các tính năng trong bản phát hành OpenJDK LTS mới nhất, bao gồm cả bản cập nhật thư viện và tính năng hỗ trợ ngôn ngữ Java 17 cho các nhà phát triển ứng dụng và nền tảng.
Bao gồm các tính năng và điểm cải tiến sau đây:
- Cập nhật tính năng hỗ trợ Java 17 cho khoảng 300 lớp
java.base. - Khối văn bản (Text Blocks) ra mắt các giá trị cố định dạng chuỗi nhiều dòng bằng ngôn ngữ lập trình Java.
- So khớp mẫu cho instanceof, cho phép một đối tượng được xem là có một kiểu cụ thể trong
instanceofmà không cần thêm bất cứ biến nào. - Lớp kín (sealed classes) cho phép bạn hạn chế các lớp và giao diện có thể mở rộng hoặc triển khai các lớp đó.
Nhờ các bản cập nhật hệ thống Google Play (Project Mainline), hơn 600 triệu thiết bị được phép nhận các bản cập nhật Android Runtime (ART) mới nhất có các thay đổi này. Đây là một phần trong cam kết của chúng tôi nhằm cung cấp cho các ứng dụng một môi trường nhất quán, bảo mật hơn trên các thiết bị, đồng thời cung cấp các tính năng và chức năng mới cho người dùng độc lập với các bản phát hành nền tảng.
Java và OpenJDK là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Những điểm cải tiến cho các cửa hàng ứng dụng
Android 14 giới thiệu một số API PackageInstaller cho phép cửa hàng ứng dụng cải thiện trải nghiệm người dùng.
Yêu cầu phê duyệt lượt cài đặt trước khi tải xuống
Có thể bạn phải yêu cầu người dùng phê duyệt việc cài đặt hoặc cập nhật ứng dụng.
Ví dụ: khi trình cài đặt sử dụng quyền REQUEST_INSTALL_PACKAGES cố gắng cài đặt một ứng dụng mới. Trong các phiên bản Android trước, cửa hàng ứng dụng chỉ có thể yêu cầu người dùng phê duyệt sau khi các tệp APK được ghi vào phiên cài đặt còn phiên hoạt động thì được cam kết.
Kể từ Android 14, phương thức requestUserPreapproval() sẽ cho phép trình cài đặt yêu cầu người dùng phê duyệt trước khi xác nhận phiên cài đặt. Điểm cải tiến này cho phép cửa hàng ứng dụng trì hoãn việc tải mọi tệp APK xuống cho đến khi người dùng phê duyệt quá trình cài đặt. Hơn nữa, sau khi người dùng phê duyệt việc cài đặt, cửa hàng ứng dụng có thể tải và cài đặt ứng dụng ở chế độ nền mà không làm gián đoạn người dùng.
Tuyên bố trách nhiệm đối với các bản cập nhật trong tương lai
Phương thức setRequestUpdateOwnership() cho phép trình cài đặt cho hệ thống biết rằng sau này trình cài đặt dự định sẽ chịu trách nhiệm về các bản cập nhật của ứng dụng đang cài đặt. Tính năng này cho phép thực thi theo quyền sở hữu bản cập nhật, nghĩa là chỉ chủ sở hữu bản cập nhật mới được phép tự động cài đặt bản cập nhật cho ứng dụng. Việc thực thi theo quyền sở hữu bản cập nhật giúp đảm bảo rằng người dùng chỉ nhận được bản cập nhật từ cửa hàng ứng dụng theo đúng mong đợi.
Mọi trình cài đặt khác (bao gồm cả những trình cài đặt sử dụng quyền INSTALL_PACKAGES) phải nhận được sự chấp thuận rõ ràng của người dùng để có thể cài đặt bản cập nhật. Nếu người dùng quyết định tiếp tục cập nhật từ một nguồn khác, thì quyền sở hữu bản cập nhật sẽ bị mất.
Cập nhật ứng dụng vào những thời điểm ít gây gián đoạn hơn
Các cửa hàng ứng dụng thường muốn tránh cập nhật một ứng dụng đang được sử dụng, vì việc này dẫn đến việc các quy trình đang chạy của ứng dụng bị dừng, có khả năng làm gián đoạn công việc mà người dùng đang thực hiện.
Kể từ Android 14, InstallConstraints API sẽ giúp trình cài đặt có thể đảm bảo quá trình cập nhật ứng dụng diễn ra đúng lúc. Ví dụ: một cửa hàng ứng dụng có thể gọi phương thức commitSessionAfterInstallConstraintsAreMet() để đảm bảo rằng bản cập nhật chỉ được cam kết khi người dùng không còn tương tác với ứng dụng có liên quan.
Cài đặt các phần phân tách không bắt buộc sao cho liền mạch
Nhờ tệp APK phân tách, nhiều tính năng của một ứng dụng có thể được phân phối trong các tệp APK riêng biệt, thay vì dưới dạng tệp APK nguyên khối. Tệp APK phân tách cho phép cửa hàng ứng dụng tối ưu hoá việc phân phối nhiều thành phần của ứng dụng. Ví dụ: có thể các cửa hàng ứng dụng sẽ tối ưu hoá dựa trên thuộc tính của thiết bị mục tiêu. PackageInstaller API đã hỗ trợ các phần phân tách kể từ khi ra mắt trong API cấp 22.
Trong Android 14, phương thức setDontKillApp() sẽ cho phép trình cài đặt cho biết rằng các quy trình đang chạy của ứng dụng sẽ không bị tắt khi các phần phân tách mới được cài đặt. Các cửa hàng ứng dụng có thể sử dụng tính năng này để cài đặt liền mạch những tính năng mới của một ứng dụng trong khi người dùng đang sử dụng ứng dụng đó.
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ị
To create a more standardized experience for detecting screenshots, Android 14 introduces a privacy-preserving screenshot detection API. This API lets apps register callbacks on a per-activity basis. These callbacks are invoked, and the user is notified, when the user takes a screenshot while that activity is visible.
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 updates the system sharesheet to support custom app actions and more informative preview results for users.
Add custom actions
With Android 14, your app can add custom actions to the system sharesheet it invokes.
Improve ranking of Direct Share targets
Android 14 uses more signals from apps to determine the ranking of the direct share targets to provide more helpful results for the user. To provide the most useful signal for ranking, follow the guidance for improving rankings of your Direct Share targets. Communication apps can also report shortcut usage for outgoing and incoming messages.
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
App screen sharing enables users to share an app window instead of the entire device screen during screen content recording.
With app screen sharing, the status bar, navigation bar, notifications, and other system UI elements are excluded from the shared display. Only the content of the selected app is shared.
App screen sharing improves productivity and privacy by enabling users to run multiple apps but limit content sharing to a single app.
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 có thể truy vấn và nội suy
Android's Path API is a powerful and flexible mechanism for
creating and rendering vector graphics, with the ability to stroke or fill a
path, construct a path from line segments or quadratic or cubic curves, perform
boolean operations to get even more complex shapes, or all of these
simultaneously. One limitation is the ability to find out what is actually in a
Path object; the internals of the object are opaque to callers after creation.
To create a Path, you call methods such as
moveTo(), lineTo(), and
cubicTo() to add path segments. But there has been no way to
ask that path what the segments are, so you must retain that information at
creation time.
Starting in Android 14, you can query paths to find out what's inside of them.
First, you need to get a PathIterator object using the
Path.getPathIterator API:
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();
Next, you can call PathIterator to iterate through the segments
one by one, retrieving all of the necessary data for each segment. This example
uses PathIterator.Segment objects, which packages up the data
for you:
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 also has a non-allocating version of next() where you can pass
in a buffer to hold the point data.
One of the important use cases of querying Path data is interpolation. For
example, you might want to animate (or morph) between two different paths. To
further simplify that use case, Android 14 also includes the
interpolate() method on Path. Assuming the two paths have
the same internal structure, the interpolate() method creates a new Path
with that interpolated result. This example returns a path whose shape is
halfway (a linear interpolation of .5) between path and 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); }
The Jetpack graphics-path library enables similar APIs for earlier versions of Android as well.
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
Để hỗ trợ việc sử dụng API Canvas của Android nhằm vẽ bằng tính năng tăng tốc phần cứng vào HardwareBuffer, Android 14 sẽ ra mắt HardwareBufferRenderer. API này là
đặc biệt hữu ích khi trường hợp sử dụng của bạn liên quan đến hoạt động giao tiếp với hệ thống
trình tổng hợp thông qua SurfaceControl để có độ trễ thấp
bản vẽ.