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 về hành vi sau đây áp dụng cho tất cả ứng dụng khi chạy trên Android 15, bất kể targetSdkVersion
. Bạn nên kiểm thử ứng dụng rồi sửa đổi để hỗ trợ những thay đổi này cho phù hợp (nếu cần).
Ngoài ra, hãy nhớ tham khảo danh sách các 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.
Thay đổi đối với trạng thái dừng gói
Ý định của trạng thái gói FLAG_STOPPED
(mà 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ữ cho ứ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 chạy ứng dụng hoặc gián tiếp tương tác với ứng dụng (thông qua trang chia sẻ hoặc tiện ích, chọn ứng dụng làm hình nền động, v.v.). Trong Android 15, chúng tôi đã 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. Ứng dụng chỉ được xoá khỏi trạng thái đã dừng thông qua hành động 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ỷ tất cả ý đị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 hành động 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, tạo 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 chuyển sang trạng thái dừng hay chưa.
Hỗ trợ kích thước trang 16 KB
从历史上看,Android 仅支持 4 KB 内存页面大小,这优化了系统内存性能,以适应 Android 设备通常拥有的平均总内存量。从 Android 15 开始,AOSP 支持配置为使用 16 KB 页面大小的设备(16 KB 设备)。如果您的应用直接或通过 SDK 间接使用任何 NDK 库,则需要重新构建应用,才能在这些 16 KB 设备上运行。
随着设备制造商不断制造出具有更大物理内存 (RAM) 的设备,许多此类设备将采用 16 KB(最终甚至更大)的页面大小来优化设备性能。添加对 16 KB 页面大小设备的支持,可让您的应用在这些设备上运行,并帮助您的应用受益于相关的性能改进。如果不重新编译,应用将无法在未来 Android 版本的 16 KB 设备上运行。
为帮助您为应用添加支持,我们提供了相关指南,介绍了如何检查应用是否受到影响、如何重新构建应用(如果适用),以及如何使用模拟器(包括 Android 模拟器的 Android 15 系统映像)在 16 KB 环境中测试应用。
优势和性能提升
Các thiết bị được định cấu hình với kích thước trang 16 KB sử dụng nhiều bộ nhớ hơn một chút trung bình, nhưng cũng 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 khi hệ thống chịu áp lực về bộ nhớ: Trung bình thấp hơn 3,16%, với mức cải thiệ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ụ điện năng trong quá trình khởi chạy ứng dụng: trung bình giảm 4,56%
- Khởi động máy ảnh nhanh hơn: trung bình khởi động nóng nhanh hơn 4,48% và khởi động nguội nhanh hơn 6,60%
- Cải thiện thời gian khởi động hệ thống: trung bình cải thiện 8% (khoảng 950 mili giây)
Những cải tiến này dựa trên thử nghiệm ban đầu của chúng tôi và kết quả trên các thiết bị thực tế có thể sẽ khác. Chúng tôi sẽ phân tích thêm về những lợi ích có thể xảy ra đối với ứng dụng trong quá trình kiểm thử.
检查您的应用是否受到影响
Nếu ứng dụng của bạn sử dụng mã gốc, thì bạn nên tạo lại ứng dụng để hỗ trợ các thiết bị 16 KB. Nếu không chắc chắn liệu ứng dụng của mình có dùng mã gốc hay không, bạn có thể dùng Công cụ phân tích APK để xác định xem có mã gốc nào hay không, sau đó kiểm tra mức căn chỉnh của các phân đoạn ELF cho mọi thư viện dùng chung mà bạn tìm thấy. Android Studio cũng cung cấp các tính năng giúp bạn tự động phát hiện các vấn đề về căn chỉnh.
Nếu ứng dụng của bạn chỉ dùng mã viết bằng ngôn ngữ lập trình Java hoặc Kotlin, bao gồm tất cả các thư viện hoặc SDK, thì ứng dụng của bạn đã 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ó hồi quy không mong muốn nào trong hành vi của ứng dụng.
Những thay đổi bắt buộc đối với một số ứng dụng để hỗ trợ không gian riêng tư
私密空间是 Android 15 中推出的一项新功能,可让用户在设备上创建一个单独的空间,在额外的身份验证层保护下,防止敏感应用遭到窥探。由于私密空间中的应用具有受限的公开范围,因此某些类型的应用需要执行额外的步骤,才能查看和与用户私密空间中的应用互动。
所有应用
由于私密空间中的应用会保存在单独的用户资料中(类似于工作资料),因此应用不应假定其任何未位于主资料中的已安装副本都位于工作资料中。如果您的应用包含与工作资料应用相关的逻辑,并且做出了上述假设,则需要调整此逻辑。
医疗应用
当用户锁定私密空间时,私密空间中的所有应用都会停止运行,并且这些应用无法执行前台或后台活动,包括显示通知。此行为可能会严重影响安装在私密空间中的医疗应用的使用和功能。
私密空间设置体验会向用户发出警告,告知私密空间不适合需要执行关键前台或后台活动的应用,例如显示医疗应用发送的通知。不过,应用无法确定自己是否在私密空间中使用,因此无法在这种情况下向用户显示警告。
因此,如果您开发的是医疗应用,请检查此功能可能会对您的应用产生哪些影响,并采取适当的措施(例如告知用户不要在私密空间中安装您的应用),以免中断关键的应用功能。
启动器应用
如果您开发的是启动器应用,则必须执行以下操作,才能看到私密空间中的应用:
- 您的应用必须被指定为设备的默认启动器应用,即具有
ROLE_HOME
角色。 - 您的应用必须在应用的清单文件中声明
ACCESS_HIDDEN_PROFILES
普通权限。
声明 ACCESS_HIDDEN_PROFILES
权限的启动器应用必须处理以下私密空间用例:
- 您的应用必须为安装在私密空间中的应用提供单独的启动器容器。使用
getLauncherUserInfo()
方法确定要处理的用户个人资料类型。 - 用户必须能够隐藏和显示私密空间容器。
- 用户必须能够锁定和解锁私密空间容器。使用
requestQuietModeEnabled()
方法锁定(通过传递true
)或解锁(通过传递false
)私密空间。 在锁定状态下,私密空间容器中的任何应用都应不可见,也无法通过搜索等机制被发现。您的应用应为
ACTION_PROFILE_AVAILABLE
和ACTION_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
,并在必要时使用该Canvas
获取原始图片。 - 为您的应用添加 COLRv1 字体支持。FreeType 开源库在 2.13.0 版及更高版本中支持 COLRv1。
- 作为最后的手段,您可以将旧版表情符号字体文件 (
NotoColorEmoji.ttf
) 捆绑到 APK 中,但在这种情况下,您的应用将缺少最新的表情符号更新。如需了解详情,请参阅 Noto Emoji 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
Bảo mật và quyền riêng tư
Android 15 ra mắt các biện pháp mạnh mẽ để chống gian lận bằng mật mã một lần (OTP) và bảo vệ nội dung nhạy cảm của người dùng, tập trung vào việc tăng cường bảo vệ Dịch vụ trình nghe thông báo và tính năng chia sẻ màn hình. Các tính năng nâng cao chính bao gồm việc loại bỏ mã OTP khỏi thông báo mà các ứng dụng không đáng tin cậy có thể truy cập, ẩn thông báo trong khi chia sẻ màn hình và bảo mật các hoạt động trong ứng dụng khi mã OTP được đăng. Những thay đổi này nhằm bảo vệ nội dung nhạy cảm của người dùng khỏi các bên không được uỷ quyền.
Nhà phát triển cần lưu ý những điều sau để đảm bảo ứng dụng của họ tương thích với các thay đổi trong Android 15:
Xoá OTP
Android sẽ ngăn các ứng dụng không đáng tin cậy triển khai NotificationListenerService
đọc nội dung chưa bị loại bỏ khỏi thông báo khi phát hiện thấy mã xác thực một lần (OTP). Các ứng dụng đáng tin cậy như hiệp hội trình quản lý thiết bị đồng hành được miễn các quy định hạn chế này.
Bảo vệ tính năng chia sẻ màn hình
- Nội dung thông báo sẽ bị ẩn trong các phiên chia sẻ màn hình để bảo vệ quyền riêng tư của người dùng. Nếu ứng dụng triển khai
setPublicVersion()
, Android sẽ hiển thị phiên bản công khai của thông báo đóng vai trò là thông báo thay thế trong các ngữ cảnh không an toàn. Nếu không, nội dung thông báo sẽ bị loại bỏ mà không có thêm ngữ cảnh nào. - Nội dung nhạy cảm như nhập mật khẩu sẽ bị ẩn khỏi người xem từ xa để ngăn việc tiết lộ thông tin nhạy cảm của người dùng.
- Hoạt động của các ứng dụng đăng thông báo trong khi chia sẻ màn hình và phát hiện thấy mã xác thực một lần sẽ bị ẩn. Nội dung ứng dụng bị ẩn khỏi trình xem từ xa khi khởi chạy.
- Ngoài tính năng tự động xác định các trường nhạy cảm của Android, nhà phát triển có thể đánh dấu thủ công các phần của ứng dụng là nhạy cảm bằng cách sử dụng
setContentSensitivity
. Phần này sẽ bị ẩn khỏi người xem từ xa trong khi chia sẻ màn hình. - Nhà phát triển có thể chọn bật/tắt tuỳ chọn Tắt tính năng bảo vệ khi chia sẻ màn hình trong phần Tuỳ chọn dành cho nhà phát triển để được miễn trừ khỏi các biện pháp bảo vệ khi chia sẻ màn hình cho mục đích minh hoạ hoặc thử nghiệm. Trình ghi màn hình hệ thống mặc định sẽ được miễn trừ khỏi những thay đổi này vì bản ghi vẫn nằm trên thiết bị.
Camera và nội dung nghe nhìn
Android 15 thực hiện những thay đổi sau đối với hành vi của camera và nội dung nghe nhìn cho tất cả các ứng dụng.
Việc phát trực tiếp và phát âm thanh gián tiếp sẽ làm mất hiệu lực các bản âm thanh trực tiếp hoặc gián tiếp đã mở trước đó khi đạt đến giới hạn tài nguyên
Before Android 15, if an app requested direct or offload audio playback while
another app was playing audio and the resource limits were reached, the app
would fail to open a new AudioTrack
.
Beginning with Android 15, when an app requests direct or offload
playback and the resource
limits are reached, the system invalidates any currently open
AudioTrack
objects which prevent fulfilling the new track request.
(Direct and offload audio tracks are typically opened for playback of compressed audio formats. Common use-cases for playing direct audio include streaming encoded audio over HDMI to a TV. Offload tracks are typically used to play compressed audio on a mobile device with hardware DSP acceleration.)
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 mang đến trải nghiệm người dùng nhất quán và trực quan hơn.
Ảnh động xem trước thao tác quay lại được bật cho những ứng dụng đã chọn sử dụng
Kể từ Android 15, tuỳ chọn dành cho nhà phát triển về ảnh động xem trước thao tác quay lại đã bị xoá. Giờ đây, ảnh động hệ thống như quay lại trang chủ, giữa các tác vụ và giữa các 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ư 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ỉ vuốt ngược để dự đoán.
- Đảm bảo rằng các hiệu ứng chuyển đổi mảnh của bạn 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 hiệu ứng chuyển động và hiệu ứng chuyển đổi khung, thay vào đó, hãy sử dụng hiệu ứng chuyển đổi ảnh động và androidx.
- Di chuyển khỏi ngăn xếp lui mà
FragmentManager
không biết. Thay vào đó, hãy sử dụng ngăn xếp lui doFragmentManager
hoặc thành phần Điều hướng quản lý.
Tiện ích bị vô hiệu hoá khi người dùng buộc dừng một ứng dụng
Nếu người dùng buộc dừng một ứng dụng trên thiết bị chạy Android 15, thì hệ thống sẽ tạm thời tắt tất cả tiện ích của ứng dụng đó. Các tiện ích có 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ỷ tất cả ý định đang chờ xử lý của ứng dụng khi ứng dụng bị buộc dừng.
Hệ thống sẽ bật lại các 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 phần Thay đổi đối với trạng thái gói đã dừng.
Chế độ cảnh báo bằng chip trên thanh trạng thái truyền nội dung nghe nhìn sẽ thông báo cho người dùng về việc chia sẻ màn hình, truyền và ghi hình
屏幕投影漏洞会泄露用户的私密数据(例如财务信息),因为用户不知道自己的设备屏幕正在共享。
对于搭载 Android 15 QPR1 或更高版本的设备上运行的应用,系统会在状态栏中显示一个醒目的大条状标签,以提醒用户正在进行的任何屏幕投影。用户可以点按该条状标签,停止共享、投放或录制其屏幕。此外,当设备屏幕锁定时,屏幕投影会自动停止。

Check if your app is impacted
By default, your app includes the status bar chip and automatically suspends screen projection when the lock screen activates.
To learn more about how to test your app for these use cases, see Status bar chip and auto stop.
Hạn chế quyền truy cập mạng khi ở nền sau
在 Android 15 中,如果应用在有效的进程生命周期之外启动网络请求,则会收到异常。通常是 UnknownHostException
或其他与套接字相关的 IOException
。在有效生命周期之外发生的网络请求通常是因为应用在不再活跃后,不知不觉地继续发出网络请求。
为缓解此异常,请使用生命周期感知型组件,确保您的网络请求具有生命周期感知功能,并在离开有效的进程生命周期时取消。如果您非常重视即使用户离开应用也要发出网络请求,请考虑使用 WorkManager 调度网络请求,或使用前台服务继续执行对用户可见的任务。
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 được tái cấu trúc để mang lại trải nghiệm tốt hơn cho nhà phát triển hoặc hỗ trợ các chức năng mới của nền tảng. Trong những trường hợp này, chúng tôi chính thức ngừng cung cấp các API lỗi thời và hướng dẫn nhà phát triển sử dụng các API thay thế.
Ngừng cung cấp có nghĩa là chúng tôi đã ngừng hỗ trợ chính thức cho các API này, nhưng các API này sẽ vẫn được cung cấp cho nhà phát triển. Để tìm hiểu thêm về những điểm ngừng sử dụng đáng chú ý trong bản phát hành Android này, hãy xem trang ngừng sử dụng.