ระดับประสิทธิภาพเป็นมาตรฐานที่เปิดตัวครั้งแรกใน Android 12 คลาสประสิทธิภาพจะกำหนดชุดความสามารถของอุปกรณ์ที่เหนือกว่าข้อกำหนดพื้นฐานของ Android
Android แต่ละเวอร์ชันจะมีคลาสประสิทธิภาพที่เกี่ยวข้องของตนเอง ซึ่งจะกำหนดไว้ในเอกสารคำจำกัดความความเข้ากันได้ของ Android (CDD) ของเวอร์ชันนั้น ชุดเครื่องมือทดสอบความเข้ากันได้ของ Android (CTS) จะยืนยันข้อกำหนด CDD
อุปกรณ์ Android แต่ละเครื่องจะประกาศคลาสประสิทธิภาพที่รองรับ นักพัฒนาแอปจะดูคลาสประสิทธิภาพของอุปกรณ์ได้ขณะรันไทม์ และมอบประสบการณ์การใช้งานที่อัปเกรดแล้วซึ่งใช้ประโยชน์จากความสามารถของอุปกรณ์อย่างเต็มที่
หากต้องการดูระดับคลาสประสิทธิภาพของอุปกรณ์ ให้ใช้ไลบรารี Core Performance ของ Jetpack ไลบรารีนี้จะรายงานระดับคลาสประสิทธิภาพสื่อ (MPC) ของอุปกรณ์ตามที่ประกาศไว้ในข้อมูลเวอร์ชันบิลด์ หรืออิงตามข้อมูลจากบริการ Google Play
เริ่มต้นด้วยการเพิ่มทรัพยากร Dependency สําหรับโมดูลที่เกี่ยวข้องในไฟล์ gradle
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'
จากนั้นสร้างอินสแตนซ์ของการติดตั้งใช้งาน DevicePerformance
เช่น PlayServicesDevicePerformance
ในเหตุการณ์วงจรชีวิตของ onCreate()
ของ Application
คุณควรดำเนินการนี้เพียงครั้งเดียวในแอป
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); } }
จากนั้นคุณสามารถดึงข้อมูลพร็อพเพอร์ตี้ mediaPerformanceClass
เพื่อปรับแต่งประสบการณ์การใช้งานของแอปตามความสามารถของอุปกรณ์ ดังนี้
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. } } }
ระดับชั้นประสิทธิภาพจะใช้งานร่วมกันได้ในอนาคต อุปกรณ์สามารถอัปเกรดเป็นแพลตฟอร์มเวอร์ชันใหม่ได้โดยไม่ต้องอัปเดตคลาสประสิทธิภาพ เช่น อุปกรณ์ที่รองรับประสิทธิภาพระดับ 33 ในตอนแรกจะอัปเกรดเป็น Android 14 และรายงานต่อไปว่ารองรับประสิทธิภาพระดับ 33 ได้หากไม่เป็นไปตามข้อกำหนดของประสิทธิภาพระดับ 34 วิธีนี้ช่วยให้คุณจัดกลุ่มอุปกรณ์เข้าด้วยกันได้โดยไม่ต้องอาศัย Android เวอร์ชันใดเวอร์ชันหนึ่ง
คลาสประสิทธิภาพสื่อ 35
MPC 35 เปิดตัวใน Android 15 และสร้างขึ้นจากข้อกำหนดที่เปิดตัวใน MPC 34 ข้อกําหนดเฉพาะของ MPC 35 เผยแพร่อยู่ใน CDD ของ Android 15 นอกจากข้อกำหนดที่เพิ่มขึ้นสำหรับรายการจาก MPC 34 แล้ว CDD ยังระบุข้อกำหนดในด้านต่อไปนี้ด้วย
สื่อ
- เฟรมที่ลดลงเมื่อถอดรหัส
- การแก้ไข HDR
- แง่มุมของสีแบบไดนามิก
- สัดส่วนภาพแนวตั้ง
กล้อง
- JPEG_R
- การป้องกันภาพสั่นของตัวอย่าง
กราฟิก
- ส่วนขยาย EGL
- โครงสร้าง Vulkan
คลาสประสิทธิภาพสื่อ 34
MPC 34 เปิดตัวใน Android 14 และสร้างขึ้นจากข้อกำหนดที่เปิดตัวใน MPC 33 ข้อกำหนดเฉพาะของ MPC 34 เผยแพร่อยู่ใน CDD ของ Android 14 นอกจากข้อกำหนดที่เพิ่มขึ้นสำหรับรายการจาก MPC 33 แล้ว CDD ยังระบุข้อกำหนดในด้านต่อไปนี้ด้วย
สื่อ
- การรองรับเอฟเฟกต์เม็ดเกรนในโปรแกรมถอดรหัสฮาร์ดแวร์ AV1
- โปรไฟล์พื้นฐานของ AVIF
- ประสิทธิภาพโปรแกรมเปลี่ยนไฟล์ AV1
- ตัวแปลงรหัสวิดีโอ HDR
- รูปแบบสี RGBA_1010102
- การสุ่มตัวอย่างพื้นผิว YUV
- คุณภาพการเข้ารหัสวิดีโอ
- การผสมเสียงหลายช่อง
กล้อง
- ส่วนขยายโหมดกลางคืน
- กล้องหลักที่รองรับ HDR
- โหมดตรวจจับใบหน้า
ทั่วไป
- การซ้อนทับฮาร์ดแวร์
- จอแสดงผล HDR
คลาสประสิทธิภาพสื่อ 33
MPC 33 เปิดตัวใน Android 13 และสร้างขึ้นจากข้อกำหนดที่เปิดตัวใน MPC 31 ข้อกําหนดเฉพาะของ MPC 33 เผยแพร่อยู่ใน CDD ของ Android 13 นอกจากข้อกำหนดที่เพิ่มขึ้นสำหรับรายการจาก MPC 31 แล้ว CDD ยังระบุข้อกำหนดในด้านต่อไปนี้ด้วย
สื่อ
- เครื่องมือถอดรหัสฮาร์ดแวร์ AV1
- เครื่องมือถอดรหัสฮาร์ดแวร์ที่ปลอดภัย
- เวลาในการตอบสนองของโปรแกรมถอดรหัส
- เวลาในการตอบสนองของเสียงแบบไปกลับ
- ชุดหูฟังแบบมีสายและอุปกรณ์เสียง USB
- อุปกรณ์ MIDI
- สภาพแวดล้อมการดำเนินการที่เชื่อถือได้ซึ่งทำงานด้วยฮาร์ดแวร์
กล้อง
- การป้องกันภาพสั่นของตัวอย่าง
- การบันทึกแบบสโลว์โมชัน
- อัตราส่วนการซูมขั้นต่ำสำหรับกล้องมุมกว้างพิเศษ
- กล้องที่ใช้พร้อมกัน
- กล้องหลายตัวแบบเชิงตรรกะ
- กรณีการใช้งานสตรีม
คลาสประสิทธิภาพสื่อ 31
MPC 31 เปิดตัวใน Android 12 ข้อกำหนดเฉพาะของ MPC 31 เผยแพร่อยู่ใน CDD ของ Android 12 CDD จะระบุข้อกำหนดในด้านต่อไปนี้
สื่อ
- เซสชันตัวแปลงรหัสวิดีโอที่ใช้พร้อมกัน
- เวลาในการตอบสนองของการเริ่มต้นโปรแกรมเปลี่ยนไฟล์
- เฟรมที่ลดน้อยลงของโปรแกรมถอดรหัส
- คุณภาพการเข้ารหัส
กล้อง
- ความละเอียดและอัตราเฟรม
- เวลาในการเริ่มต้นและเวลาในการตอบสนอง
FULL
หรือฮาร์ดแวร์ระดับที่ดีกว่า- แหล่งที่มาของการประทับเวลาเป็นแบบเรียลไทม์
- ความสามารถในการใช้ไฟล์ RAW
ทั่วไป
- หน่วยความจำ
- ประสิทธิภาพการอ่านและเขียน
- ความละเอียดของหน้าจอ
- ความหนาแน่นของหน้าจอ
คลาสประสิทธิภาพสื่อ 30
MPC 30 มีข้อกำหนดบางส่วนของ MPC 31 ซึ่งช่วยให้นักพัฒนาแอปมอบประสบการณ์การใช้งานที่ปรับแต่งในอุปกรณ์รุ่นเก่าแต่ยังคงมีประสิทธิภาพสูงได้ ข้อกำหนดระดับประสิทธิภาพที่เฉพาะเจาะจงจะเผยแพร่ใน CDD ของ Android 11
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- เวลาเริ่มต้นของแอป