Lớp hiệu suất

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 lớp hiệu suất nội dung đa phương tiện 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 của 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'

Then, create an instance of a DevicePerformance implementation, such as PlayServicesDevicePerformance, in the onCreate() lifecycle event of your Application. This should only be done once in your app.

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.TIRAMISU -> {
        // Performance class level 13 and later.
        // Provide the most premium experience for the highest performing devices.
      }
      devicePerformance.mediaPerformanceClass == Build.VERSION_CODES.S -> {
        // Performance class level 12.
        // Provide a high quality experience.
      }
      else -> {
        // Performance class level 11 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.TIRAMISU) {
      // Performance class level 13 and later.
      // Provide the most premium experience for the highest performing devices.
    } else if (devicePerformance.getMediaPerformanceClass() == Build.VERSION_CODES.S) {
      // Performance class level 12.
      // Provide a high quality experience.
    } else {
      // Performance class level 11 or undefined.
      // Remove extras to keep experience functional.
    }
  }
}

Các 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 12 có thể nâng cấp lên Android 13, đồng thời tiếp tục báo cáo về việc thiết bị đó sẽ hỗ trợ lớp 12 nếu không đáp ứng được các yêu cầu đối với lớp 13. Điều này có nghĩa là lớp hiệu suất sẽ đưa ra cách thức để 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ể.

Hình 1. Các thiết bị có thể nâng cấp phiên bản Android và tiếp tục báo cáo là hỗ trợ lớp mà ban đầu chúng hỗ trợ.

Lớp hiệu suất 14

Lớp hiệu suất 14 dựa trên các yêu cầu được đưa ra trong lớp hiệu suất 13. Yêu cầu cụ thể về lớp hiệu suất được xuất bản trong Tài liệu định nghĩa về khả năng tương thích (CDD) của Android. Ngoài yêu cầu cao hơn đối với các hạng mục trong lớp hiệu suất 13, 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

Thông tin chung

  • Lớp phủ phần cứng
  • Màn hình HDR

Lớp hiệu suất 13

Lớp hiệu suất 13 dựa trên các yêu cầu được đưa ra trong lớp hiệu suất 12. Yêu cầu cụ thể về lớp hiệu suất được xuất bản trong Tài liệu định nghĩa về khả năng tương thích (CDD) của Android. Ngoài các yêu cầu cao hơn đối với các hạng mục trong lớp hiệu suất 12, CDD 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

Hiệu suất lớp 12

Lớp hiệu suất 12 tập trung vào các trường hợp sử dụng nội dung đa phương tiện. Các yêu cầu cụ thể về lớp hiệu suất được xuất bản trong Tài liệu định nghĩa về khả năng tương thích (CDD) của Android. 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

Thông tin 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 11

Lớp hiệu suất 11 bao gồm một số yêu cầu đối với lớp hiệu suất 12, 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 xuất bản trong Tài liệu định nghĩa về khả năng tương thích (CDD) của Android.