Thay đổi về hành vi: tất cả ứng dụng

Nền tảng Android 15 có các thay đổi về hành vi có thể ảnh hưởng đến ứng dụng của bạn. Những thay đổi sau đây về hành vi áp dụng cho tất cả ứng dụng khi các ứng dụng này chạy trên Android 15, bất kể targetSdkVersion. Bạn nên thử nghiệm ứng dụng, sau đó sửa đổi khi cần thiết để hỗ trợ các lượt chuyển đổi này đúng cách (nếu có).

Ngoài ra, hãy nhớ tham khảo danh sách thay đổi về hành vi chỉ ảnh hưởng đến những ứng dụng nhắm đến Android 15.

Chức năng cốt lõi

Android 15 sửa đổi hoặc mở rộng nhiều chức năng cốt lõi của hệ thống Android.

Các thay đổi đối với trạng thái gói đang dừng

Mục đích của trạng thái FLAG_STOPPED của gói (người dùng có thể tham gia vào các bản dựng AOSP bằng cách nhấn và giữ biểu tượng ứng dụng rồi chọn "Buộc dừng") luôn là giữ ứng dụng ở trạng thái này cho đến khi người dùng xoá ứng dụng khỏi trạng thái này một cách rõ ràng bằng cách trực tiếp khởi chạy ứng dụng hoặc tương tác gián tiếp với ứng dụng (thông qua trang chia sẻ nội dung hoặc tiện ích, chọn ứng dụng làm hình nền động, v.v.). Trên Android 15, chúng tôi sẽ cập nhật hành vi của hệ thống để phù hợp với hành vi dự kiến này. Bạn chỉ nên xoá ứng dụng khỏi trạng thái đã dừng thông qua thao tác trực tiếp hoặc gián tiếp của người dùng.

Để hỗ trợ hành vi dự kiến, ngoài các hạn chế hiện có, hệ thống cũng huỷ mọi ý định đang chờ xử lý khi ứng dụng chuyển sang trạng thái đã dừng trên thiết bị chạy Android 15. Khi các thao tác của người dùng xoá ứng dụng khỏi trạng thái đã dừng, thông báo truyền tin ACTION_BOOT_COMPLETED sẽ được gửi đến ứng dụng, mang đến cơ hội đăng ký lại mọi ý định đang chờ xử lý.

Bạn có thể gọi phương thức ApplicationStartInfo.wasForceStopped() mới để xác nhận xem ứng dụng có được đưa vào trạng thái dừng hay không.

Hỗ trợ các kích thước trang 16 KB

Android 过去仅支持 4 KB 内存页面大小, 优化了系统内存性能,以针对 Android 设备通常具备的功能。从 Android 15 开始,AOSP 支持 配置为使用 16 KB (16 KB) 页面大小的设备 设备)。如果您的应用使用任何 NDK 库,请直接使用 或者通过 SDK 间接创建,那么,您需要重新构建自己的应用 支持这些 16KB 设备。

随着设备制造商不断打造出 物理内存 (RAM),许多此类设备都会采用 16KB(以及 页面大小以优化设备的性能。正在添加 支持 16 KB 页面大小的设备,可使您的应用在这些设备上运行 并有助于您的应用从相关的广告效果中获益 改进。如果不重新编译,应用可能无法在 16KB 设备上运行 在未来的 Android 版本中正式推出。

为帮助您为应用添加支持,我们提供了有关如何检查 如果您的应用受到影响 重新构建您的应用(如果适用),以及如何在 Google Play 中 使用模拟器(包括 Android 15)的 16 KB 环境 系统映像)。

Lợi ích và mức tăng hiệu suất

Các thiết bị được định cấu hình có kích thước trang 16 KB sử dụng bộ nhớ nhiều hơn một chút, nhưng cũng có được nhiều điểm cải tiến về hiệu suất cho cả hệ thống và ứng dụng:

  • Giảm thời gian khởi chạy ứng dụng trong khi hệ thống chịu áp lực về bộ nhớ: trung bình thấp hơn 3,16%, với nhiều cải tiến đáng kể hơn (lên đến 30%) đối với một số ứng dụng mà chúng tôi thử nghiệm
  • Giảm mức tiêu thụ pin trong khi khởi chạy ứng dụng: trung bình giảm 4,56%
  • Khởi động máy ảnh nhanh hơn: khởi động nóng nhanh hơn trung bình 4,48% và khởi động nguội nhanh hơn trung bình 6,60%
  • Cải thiện thời gian khởi động hệ thống: trung bình tăng 1,5% (khoảng 0,8 giây)

Những điểm cải tiến này dựa trên quy trình kiểm thử ban đầu của chúng tôi, và kết quả trên thiết bị thực tế có thể sẽ khác. Chúng tôi sẽ phân tích thêm về lợi ích tiềm năng của ứng dụng trong quá trình thử nghiệm.

Kiểm tra xem ứng dụng của bạn có bị ảnh hưởng không

Nếu ứng dụng của bạn sử dụng bất kỳ mã gốc nào, thì bạn nên tạo lại ứng dụng có hỗ trợ cho thiết bị 16 KB. Nếu không chắc ứng dụng của mình có sử dụng mã gốc hay không, bạn có thể sử dụng Công cụ phân tích APK để xác định xem có mã gốc nào hay không.

Nếu ứng dụng của bạn chỉ dùng mã được viết bằng ngôn ngữ lập trình Java hoặc Kotlin, bao gồm tất cả thư viện hoặc SDK, thì ứng dụng đã hỗ trợ thiết bị 16 KB. Tuy nhiên, bạn nên kiểm thử ứng dụng trong môi trường 16 KB để xác minh rằng không có sự hồi quy không mong muốn nào trong hành vi của ứng dụng.

Những thay đổi cần thiết đối với một số ứng dụng để hỗ trợ không gian riêng tư

私密空间是 Android 15 中的一项新功能,可让用户 在设备上创建一个单独的空间,以便将敏感应用拒之门外 增加了一层额外的身份验证。因为 由于私密空间的公开范围有限,因此某些类型的应用需要 需要完成一些额外步骤才能查看用户私有中的应用并与之互动 空间。

所有应用

由于私密空间中的应用保存在单独的用户个人资料中, 工作资料,则应用不应假定已安装任何 不在主资料中的应用副本位于工作资料中。如果 您的应用具有与工作资料应用相关的逻辑,这类应用会做出这种假设, 您需要调整此逻辑。

医疗应用

当用户锁定私密空间后,私密空间中的所有应用都会停止, 并且这些应用无法执行前台或后台 activity,包括 显示通知。这种行为可能会严重影响 安装在私密空间中的医疗应用的功能。

设置私密空间时,系统会警告用户私密空间 适用于需要执行关键前台或后台任务的应用 活动,例如显示来自医疗应用的通知。不过, 应用无法确定其是否被用在私密空间中; 这样他们就无法针对这种情况向用户显示警告。

出于这些原因,如果您开发了医疗应用,请查看此功能可能会给 影响您的应用并采取适当措施,例如告知用户不要 在私密空间中安装您的应用,以免干扰关键应用 功能。

启动器应用

如果您要开发启动器应用,必须先执行以下操作,然后再运行 以下私密空间:

  1. 您必须将应用指定为设备的默认启动器应用, 具有 ROLE_HOME 角色。
  2. 您的应用必须声明 ACCESS_HIDDEN_PROFILES 普通权限。

声明 ACCESS_HIDDEN_PROFILES 权限的启动器应用必须处理 私密空间的使用场景如下:

  1. 您的应用必须为安装在 私密空间使用 getLauncherUserInfo() 方法 确定正在处理的用户个人资料类型。
  2. 用户必须能够隐藏和显示私密空间容器。
  3. 用户必须能够锁定和解锁私密空间容器。使用 requestQuietModeEnabled() 方法锁定(通过 传递 true)或解锁(通过传递 false)私密空间。
  4. 处于锁定状态时,私密空间容器中的任何应用都不应可见或 可通过搜索等机制发现。您的应用应注册 接收器 ACTION_PROFILE_AVAILABLEACTION_PROFILE_UNAVAILABLE 广播,并更新 私密空间处于锁定或解锁状态时应用中的界面 容器更改这两种广播都包含 EXTRA_USER,您的应用可以使用它来引用 个人资料用户。

    您还可以使用 isQuietModeEnabled() 方法 检查私密空间配置文件是否处于锁定状态。

应用商店应用

私密空间包括“安装应用”启动隐式 intent 来将应用安装到用户的私密空间中。为了让您的应用 收到此隐式 intent,请声明 <intent-filter> 在应用的清单文件中,使用 <category> CATEGORY_APP_MARKET

Đã xoá phông chữ biểu tượng cảm xúc dựa trên PNG

基于 PNG 的旧版表情符号字体文件 (NotoColorEmojiLegacy.ttf) 已 只留下基于矢量的文件从 Android 13 (API) 开始 级别 33),系统表情符号渲染程序使用的表情符号字体文件已从 PNG 文件转换为矢量文件。系统保留了 Android 13 和 14 中的旧版字体文件。 具有自己的字体渲染程序的应用可以继续使用旧版字体文件 直到能够升级为止

要查看您的应用是否会受到影响,请在应用的代码中搜索对 NotoColorEmojiLegacy.ttf 文件。

您可以选择以多种方式调整您的应用:

  • 使用平台 API 进行文本渲染。您可以将文本渲染为基于位图的 Canvas,并在必要时使用它获取原始图像。
  • 向您的应用添加 COLRv1 字体支持。FreeType 开源库 在版本 2.13.0 中支持 COLRv1,并且 。
  • 万不得已时,可以将旧版表情符号字体文件打包 (NotoColorEmoji.ttf) 复制到您的 APK 中, 但在这种情况下,您的应用将缺少最新的表情符号更新。对于 请参阅 Noto 表情符号 GitHub 项目 页面

Tăng phiên bản SDK mục tiêu tối thiểu từ 23 lên 24

Android 15 基于 在 Android 14 中进行的更改,并扩展了 安全性。在 Android 15 中, 无法安装低于 24 的 targetSdkVersion。 要求应用符合现代 API 级别有助于确保更好的安全性和 保护隐私。

恶意软件通常会以较低的 API 级别为目标平台,以绕过安全和隐私 更高的 Android 版本中引入的保护机制。例如,有些恶意软件应用使用 targetSdkVersion 22,以避免受到 Android 6.0 Marshmallow(API 级别 23)在 2015 年引入的运行时权限模型的约束。这项 Android 15 变更使恶意软件更难以规避安全和隐私权方面的改进限制。尝试安装以较低 API 级别为目标平台的应用将导致安装失败,并且 Logcat 中会显示如下所示的消息:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

在升级到 Android 15 的设备上,targetSdkVersion 级别较低的任何应用 安装在 Google Play 上

如果您需要测试以旧版 API 级别为目标平台的应用,请使用以下 ADB 命令:

adb install --bypass-low-target-sdk-block FILENAME.apk

Máy ảnh và nội dung nghe nhìn

Android 15 thực hiện các thay đổi sau đối với hành vi của máy ảnh và nội dung nghe nhìn đối với tất cả của chúng tôi.

Giờ đây, tính năng phát âm thanh trực tiếp và giảm tải sẽ làm mất hiệu lực của các bản âm thanh mở trực tiếp hoặc giảm tải trước đó khi đạt đến giới hạn về tài nguyên

Trước Android 15, nếu một ứng dụng yêu cầu phát âm thanh trực tiếp hoặc giảm tải trong khi một ứng dụng khác đang phát âm thanh và đã đạt đến giới hạn tài nguyên, thì ứng dụng đó sẽ không mở được AudioTrack mới.

Kể từ Android 15, khi một ứng dụng yêu cầu chế độ phát trực tiếp hoặc giảm tải và đạt đến giới hạn về tài nguyên, hệ thống sẽ vô hiệu hoá mọi đối tượng AudioTrack đang mở do đó ngăn cản việc thực hiện yêu cầu theo dõi mới.

(Các bản âm thanh trực tiếp và giảm tải thường được mở để phát các định dạng âm thanh nén. Một số trường hợp sử dụng phổ biến để phát âm thanh trực tiếp: phát trực tuyến âm thanh được mã hoá qua HDMI đến TV. Các bản nhạc không tải thường dùng để phát âm thanh nén trên thiết bị di động có tính năng tăng tốc DSP phần cứng.)

Trải nghiệm người dùng và giao diện người dùng hệ thống

Android 15 có một số thay đổi nhằm tạo ra một tính nhất quán hơn trải nghiệm người dùng trực quan.

Đã bật ảnh động xem trước thao tác quay lại cho các ứng dụng đã chọn sử dụng

Kể từ Android 15, tuỳ chọn dành cho nhà phát triển đối với ảnh động xem trước thao tác quay lại đã bị xoá. Giờ đây, ảnh động hệ thống như quay lại màn hình chính, nhiều tác vụ và trên nhiều hoạt động sẽ xuất hiện cho các ứng dụng đã chọn sử dụng tính năng xem trước thao tác quay lại hoàn toàn hoặc ở cấp hoạt động. Nếu ứng dụng của bạn bị ảnh hưởng, hãy làm những việc sau:

  • Đảm bảo rằng ứng dụng của bạn đã được di chuyển đúng cách để sử dụng cử chỉ xem trước thao tác quay lại.
  • Đảm bảo rằng các hiệu ứng chuyển đổi mảnh hoạt động với tính năng điều hướng xem trước thao tác quay lại.
  • Di chuyển khỏi các hiệu ứng chuyển động và khung, đồng thời sử dụng các hiệu ứng chuyển đổi ảnh động và androidx.
  • Di chuyển khỏi các ngăn xếp lui mà FragmentManager không biết. Thay vào đó, hãy sử dụng các ngăn xếp lui do FragmentManager quản lý hoặc bằng thành phần Điều hướng.

Tiện ích bị tắt khi người dùng buộc dừng ứng dụng

Nếu người dùng buộc dừng một ứng dụng trên một thiết bị đang chạy Android 15, thì hệ thống sẽ tạm thời vô hiệu hoá tất cả các tiện ích của ứng dụng đó. Các tiện ích sẽ chuyển sang màu xám và người dùng không thể tương tác với các tiện ích đó. Lý do là kể từ Android 15, hệ thống sẽ huỷ mọi ý định đang chờ xử lý của một ứng dụng khi ứng dụng bị buộc dừng.

Hệ thống sẽ bật lại những tiện ích đó vào lần tiếp theo người dùng khởi chạy ứng dụng.

Để biết thêm thông tin, hãy xem bài viết Thay đổi đối với trạng thái đã dừng của gói.

Ngừng sử dụng

Với mỗi bản phát hành, một số API Android cụ thể có thể trở nên lỗi thời hoặc cần phải được tái cấu trúc để cung cấp trải nghiệm tốt hơn cho nhà phát triển hoặc hỗ trợ nền tảng mới các chức năng khác nhau. Trong những trường hợp này, chúng tôi chính thức ngừng sử dụng các API và hướng nhà phát triển đến các API thay thế để sử dụng.

Ngừng sử dụng có nghĩa là chúng tôi đã kết thúc dịch vụ hỗ trợ chính thức đối với các API này, nhưng chúng sẽ vẫn có sẵn cho các nhà phát triển. Để tìm hiểu thêm về tiêu chí đáng chú ý điểm ngừng sử dụng trong bản phát hành Android này, hãy xem trang về việc ngừng cung cấp.