Lớp hiệu suất là tiêu chuẩn được triển khai lần đầu trên Android 12. Lớp hiệu suất xác định một tập hợp các khả năng của thiết bị vượt ngoài các yêu cầu cơ sở của Android.
Mỗi phiên bản Android đều có lớp hiệu suất tương ứng riêng, được định nghĩa trong Tài liệu định nghĩa về khả năng tương thích (CDD) với Android của phiên bản đó. Bộ kiểm tra tính tương thích (CTS) với Android sẽ xác minh các yêu cầu của CDD.
Mỗi thiết bị chạy Android đều khai báo lớp hiệu suất mà thiết bị hỗ trợ. Các nhà phát triển có thể biết được lớp hiệu suất của thiết bị trong thời gian chạy, đồng thời mang đến trải nghiệm nâng cấp để khai thác tối đa các tính năng của thiết bị.
Để biết được cấp lớp hiệu suất của thiết bị, hãy sử dụng thư viện Jetpack Core Performance. Thư viện này báo cáo cấp độ lớp hiệu suất nội dung nghe nhìn (MPC) của thiết bị như đã khai báo trong phần thông tin phiên bản bản dựng hoặc dựa trên dữ liệu từ Dịch vụ Google Play.
Bắt đầu bằng cách thêm phần phụ thuộc cho các mô-đun có liên quan trong tệp gradle của bạn:
Kotlin
// Implementation of Jetpack Core library. implementation("androidx.core:core-ktx:1.12.0") // Enable APIs to query for device-reported performance class. implementation("androidx.core:core-performance:1.0.0") // Enable APIs to query Google Play services for performance class. implementation("androidx.core:core-performance-play-services:1.0.0")
Groovy
// Implementation of Jetpack Core library. implementation 'androidx.core:core-ktx:1.12.0' // Enable APIs to query for device-reported performance class. implementation 'androidx.core:core-performance:1.0.0' // Enable APIs to query Google Play services for performance class. implementation 'androidx.core:core-performance-play-services:1.0.0'
Sau đó, hãy tạo một bản sao của quá trình triển khai DevicePerformance
, chẳng hạn như PlayServicesDevicePerformance
, trong sự kiện vòng đời onCreate()
của Application
. Bạn chỉ nên thực hiện việc này một lần trong ứng dụng.
Kotlin
import androidx.core.performance.play.services.PlayServicesDevicePerformance class MyApplication : Application() { lateinit var devicePerformance: DevicePerformance override fun onCreate() { // Use a class derived from the DevicePerformance interface devicePerformance = PlayServicesDevicePerformance(applicationContext) } }
Java
import androidx.core.performance.play.services.PlayServicesDevicePerformance; class MyApplication extends Application { DevicePerformance devicePerformance; @Override public void onCreate() { // Use a class derived from the DevicePerformance interface devicePerformance = new PlayServicesDevicePerformance(applicationContext); } }
Sau đó, bạn có thể truy xuất thuộc tính mediaPerformanceClass
để điều chỉnh trải nghiệm trong ứng dụng của mình dựa trên các chức năng của thiết bị:
Kotlin
class MyActivity : Activity() { private lateinit var devicePerformance: DevicePerformance override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Note: Good app architecture is to use a dependency framework. See // https://developer.android.com/training/dependency-injection for more // information. devicePerformance = (application as MyApplication).devicePerformance } override fun onResume() { super.onResume() when { devicePerformance.mediaPerformanceClass >= Build.VERSION_CODES.VANILLA_ICE_CREAM -> { // MPC level 35 and later. // Provide the most premium experience for the highest performing devices. } devicePerformance.mediaPerformanceClass == Build.VERSION_CODES.UPSIDE_DOWN_CAKE -> { // MPC level 34. // Provide a high quality experience. } else -> { // MPC level 33, 31, 30, or undefined. // Remove extras to keep experience functional. } } } }
Java
class MyActivity extends Activity { private DevicePerformance devicePerformance; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Note: Good app architecture is to use a dependency framework. See // https://developer.android.com/training/dependency-injection for more // information. devicePerformance = ((MyApplication) getApplication()).devicePerformance; } @Override public void onResume() { super.onResume(); if (devicePerformance.getMediaPerformanceClass() >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { // MPC level 35 and later. // Provide the most premium experience for the highest performing devices. } else if (devicePerformance.getMediaPerformanceClass() == Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { // MPC level 34. // Provide a high quality experience. } else { // MPC level 33, 31, 30, or undefined. // Remove extras to keep experience functional. } } }
Các cấp lớp hiệu suất đều mang tính tương thích chuyển tiếp. Một thiết bị có thể nâng cấp lên phiên bản nền tảng mới hơn mà không cần cập nhật lớp hiệu suất của thiết bị. Ví dụ: một thiết bị ban đầu hỗ trợ lớp hiệu suất 33 có thể nâng cấp lên Android 14 và tiếp tục báo cáo về việc thiết bị đó sẽ hỗ trợ lớp hiệu suất 33 nếu không đáp ứng được các yêu cầu đối với lớp hiệu suất 34. Điều này cho phép nhóm các thiết bị với nhau mà không cần dựa vào một phiên bản Android cụ thể.
Lớp 35 về hiệu suất của nội dung nghe nhìn
MPC 35 được giới thiệu trong Android 15 và dựa trên các yêu cầu được giới thiệu trong MPC 34. Các yêu cầu cụ thể về MPC 35 được phát hành trong Android 15 CDD. Ngoài các yêu cầu cao hơn đối với các hạng mục trong MPC 34, CDD còn chỉ rõ các yêu cầu trong những khía cạnh sau:
Nội dung nghe nhìn
- Loại bỏ khung hình bị lỗi giải mã
- Chỉnh sửa ảnh HDR
- Các khía cạnh của màu động
- Tỷ lệ khung hình dọc
Camera
- JPEG_R
- Chống rung khi xem trước
Đồ hoạ
- Tiện ích EGL
- Cấu trúc Vulkan
Lớp hiệu suất nội dung nghe nhìn 34
MPC 34 được ra mắt trong Android 14 và dựa trên các yêu cầu được giới thiệu trong MPC 33. Các yêu cầu cụ thể về MPC 34 được phát hành trong Android 14 CDD. Ngoài các yêu cầu cao hơn đối với các hạng mục trong MPC 33, CDD còn chỉ rõ các yêu cầu trong những khía cạnh sau:
Nội dung nghe nhìn
- Hỗ trợ hiệu ứng hạt mỏng trong bộ giải mã phần cứng AV1
- Hồ sơ cơ sở của AVIF
- Hiệu suất bộ mã hoá AV1
- Bộ mã hoá và giải mã video HDR
- Định dạng màu RGBA_1010102
- Lấy mẫu kết cấu YUV
- Chất lượng mã hoá video
- Phối âm thanh đa kênh
Camera
- Tiện ích chế độ ban đêm
- Máy ảnh chính có hỗ trợ HDR
- Chế độ cảnh phát hiện khuôn mặt
Giải pháp chung
- Lớp phủ phần cứng
- Màn hình HDR
Lớp hiệu suất của nội dung nghe nhìn 33
MPC 33 được ra mắt trong Android 13 và dựa trên các yêu cầu được giới thiệu trong MPC 31. Các yêu cầu cụ thể về MPC 33 được phát hành trong Android 13 CDD. Ngoài các yêu cầu cao hơn đối với các hạng mục trong MPC 31, CDD còn chỉ rõ các yêu cầu trong những khía cạnh sau:
Nội dung nghe nhìn
- Bộ giải mã phần cứng AV1
- Bộ giải mã phần cứng bảo mật
- Độ trễ khởi động bộ giải mã
- Độ trễ âm thanh trọn vòng
- Tai nghe có dây và thiết bị âm thanh USB
- Thiết bị MIDI
- Môi trường thực thi đáng tin cậy dựa trên phần cứng
Camera
- Chống rung khi xem trước
- Ghi chuyển động chậm
- Tỷ lệ thu phóng tối thiểu cho máy ảnh góc siêu rộng
- Máy ảnh đồng thời
- Nhiều máy ảnh logic
- Trường hợp sử dụng phát trực tuyến
Lớp hiệu suất nội dung nghe nhìn 31
MPC 31 được giới thiệu trong Android 12. Các yêu cầu cụ thể về MPC 31 được phát hành trong Android 12 CDD. CDD chỉ rõ các yêu cầu trong những lĩnh vực sau:
Nội dung nghe nhìn
- Các phiên đồng thời của bộ mã hoá và giải mã video
- Độ trễ khởi động bộ mã hoá
- Loại bỏ khung bộ giải mã
- Chất lượng mã hoá
Camera
- Độ phân giải và tốc độ khung hình
- Độ trễ khởi động và độ trễ chụp
FULL
hoặc cấp độ phần cứng cao hơn- Nguồn dấu thời gian theo thời gian thực
- Chức năng RAW
Giải pháp chung
- Bộ nhớ
- Hiệu suất đọc và ghi
- Độ phân giải màn hình
- Mật độ màn hình
Lớp hiệu suất nội dung nghe nhìn 30
MPC 30 bao gồm một số yêu cầu đối với MPC 31, cho phép các nhà phát triển cung cấp trải nghiệm phù hợp trên các thiết bị cũ hơn nhưng vẫn đảm bảo các chức năng. Các yêu cầu cụ thể về lớp hiệu suất được phát hành trong Android 11 CDD.
Đề xuất cho bạn
- Lưu ý: văn bản có đường liên kết sẽ hiện khi JavaScript tắt
- Thời gian khởi động ứng dụng