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 sẽ áp dụng cho tất cả ứng dụng khi chúng 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 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 tính năng cốt lõi của hệ thống Android.

Thay đổi trạng thái đã dừng của gói

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ợ kích thước trang 16 KB

一直以来,Android 仅支持 4 KB 的内存页面大小,针对 Android 设备通常拥有的平均总内存量,系统内存性能进行了优化。从 Android 15 开始,Android 支持配置为使用 16 KB 页面大小的设备(即 16 KB 设备)。

随着设备制造商不断打造具有更大物理内存 (RAM) 的设备,这些设备中的许多可能会配置 16 KB(最终更大)的页面大小,以优化设备的性能。添加对 16 KB 设备的支持可让您的应用在这些设备上运行,并帮助您的应用从相关性能改进中受益。为了帮助您解决此问题,我们提供了一些指南,帮助您了解如何检查您的应用是否受到影响、如何重新构建应用(如果适用),以及如何同时使用模拟器和实体设备在 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.

Các 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 中的一项新功能,可让用户在设备上创建一个单独的空间,通过一个额外的身份验证层来防止敏感应用被窥探。由于私密空间中的应用的可见性存在限制,因此某些类型的应用需要执行额外的步骤才能查看用户的私密空间中的应用并与之互动。

所有应用

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

启动器应用

如果您要开发启动器应用,必须执行以下操作,私密空间中的应用才会显示出来:

  1. 您必须将应用指定为设备的默认启动器应用,即具有 ROLE_HOME 角色。
  2. 应用必须在应用的清单文件中声明 ACCESS_HIDDEN_PROFILES 一般权限。

声明 ACCESS_HIDDEN_PROFILES 权限的启动器应用必须处理以下私密空间用例:

  1. 您的应用必须为安装在私密空间中的应用提供单独的启动器容器。
  2. 用户必须能够隐藏和显示私密空间容器。
  3. 用户必须能够锁定和解锁私密空间容器。
  4. 处于锁定状态时,私密空间容器中的任何应用都不应通过搜索等机制可见或发现。

应用商店应用

私密空间包含一个“安装应用”按钮,该按钮可启动隐式 intent,以将应用安装到用户的私密空间中。为了让应用接收此隐式 intent,请在应用的清单文件中声明 <intent-filter>,并将 <category> 设为 CATEGORY_APP_MARKET

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 中,targetSdkVersion 低于 24 的应用将无法安装。要求应用满足现代 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 低于 24 的所有应用都将保持安装状态。

如果您需要测试以旧版 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 đây đối với hành vi của máy ảnh và nội dung nghe nhìn cho tất cả ứng dụng.

Giờ đây, tính năng phát âm thanh trực tiếp và giảm tải sẽ vô hiệu hoá các bản âm thanh đang mở trực tiếp hoặc giảm tải trước đó khi đạt đến giới hạn 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 mang lại trải nghiệm nhất quán và trực quan hơn cho người dùng.

Đã 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.

Các tiện ích sẽ bị tắt 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 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, các 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 tính năng mới của nền tảng. Trong những trường hợp như vậy, chúng tôi chính thức không dùng các API lỗi thời và trực tiếp cho nhà phát triển để chuyển sang sử dụng các API thay thế.

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