Level API vendor mengacu pada versi antarmuka yang didukung oleh partisi vendor. Antarmuka ini bersifat dua arah; antarmuka ini menjelaskan API yang disediakan partisi vendor ke partisi sistem (lapisan abstraksi hardware atau antarmuka HAL), dan juga API yang diperlukan partisi vendor dari partisi sistem (antarmuka LLNDK atau kit developer native tingkat rendah).
Tingkat API vendor juga digunakan untuk menentukan Persyaratan Software Vendor (VSR), yang merupakan kumpulan persyaratan fungsional dan non-fungsional yang harus dipenuhi software di partisi vendor.
Bagian lain dari halaman ini menjelaskan cara properti sistem digunakan, bergantung pada versi Android Anda, untuk menentukan level API vendor.
Pembekuan vendor
Android memungkinkan vendor membekukan partisi vendor pada versi VSR tertentu. Kumpulan fitur yang diharapkan Android dari partisi vendor ditentukan oleh level API vendor yang terkait dengan partisi vendor. Saat runtime, perilaku software yang berjalan di partisi sistem akan disesuaikan untuk mengakomodasi level API vendor dari partisi vendor. Misalnya, software di partisi sistem mungkin tidak menggunakan fitur baru jika tidak didukung oleh level API partisi vendor.
Pembekuan vendor hanya tersedia jika Anda membuat perangkat yang kompatibel dengan Android.
Menentukan API level vendor (Android 14-QPR3 dan yang lebih baru)
Untuk Android 14-QPR3 dan yang lebih baru, level API vendor dirilis secara terpisah, yang berarti level API SDK dan level API vendor tidak sinkron.
Karena jadwal rilis yang terpisah, untuk Android 14-QPR3 dan yang lebih baru, API level vendor sepenuhnya dipisahkan dari API level SDK. Untuk memastikan pemisahan ini jelas, format level API vendor adalah tanggal yang diformat sebagai YYYYMM (tahun dan bulan) sedangkan level SDK adalah bilangan bulat.
Android 14-QPR3 dan yang lebih baru berisi properti sistem
berikut yang terkait dengan level API vendor (ro.vendor.api_level
):
Properti sistem | Format | Deskripsi | Setelan awal |
---|---|---|---|
ro.board.api_level |
YYYYMM | API level vendor yang didukung software chipset. Properti ini ditetapkan untuk semua chipset. | Hal ini ditetapkan oleh sistem build secara otomatis. |
ro.board.first_api_level |
YYYYMM | Level API vendor yang digunakan untuk merilis software chipset pertama kali. Properti ini hanya merupakan fungsi chipset dan ditetapkan oleh vendor SoC jika chipset SoC memenuhi syarat untuk pembekuan vendor. Setelah setelan awal, setelan ini tidak boleh diubah. | Vendor SoC menetapkan setelan ini menggunakan BOARD_SHIPPING_API_LEVEL . |
ro.product.first_api_level |
Bilangan Bulat | API level SDK yang digunakan untuk meluncurkan perangkat pada awalnya. | Properti ini ditetapkan oleh OEM, lalu tidak pernah diperbarui, bahkan setelah upgrade OS. |
ro.vendor.api_level |
YYYYMM | API level vendor yang harus dipatuhi oleh perangkat secara keseluruhan. | Dijelaskan setelah tabel ini. |
ro.board.api_frozen |
boolean | Properti ini ditetapkan ke true jika API level vendor yang diwakili ro.board.api_level telah selesai. |
Jika tidak ditetapkan, properti ini akan ditetapkan secara default ke false . |
ro.llndk.api_level |
YYYYMM | API level vendor dalam format YYYYMM yang disediakan LLNDK saat ini di partisi sistem. LLNDK kompatibel dengan versi sebelumnya, sehingga image vendor apa pun yang kurang dari atau sama dengan level API ini dapat di-flash dengan image sistem ini. | Properti ini ditetapkan oleh partisi sistem. |
Properti ro.vendor.api_level
berasal dari salah satu dari dua cara berikut:
Jika chipset telah memenuhi syarat untuk pembekuan vendor:
ro.vendor.api_level = min( ro.board.api_level, AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
Jika chipset tidak berada dalam pembekuan vendor:
ro.vendor.api_level = AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
Metode AVendorSupport_getVendorApiLevelOf()
menentukan API level
vendor yang sesuai dari API level SDK. Misalnya
AVendorSupport_getVendorApiLevelOf(35)
, dengan 35
adalah level API SDK dari
rilis utama Android pada tahun 2024 yang menampilkan 202404
, yang merupakan tanggal perkiraan untuk
Android 14-QPR3 saat level API Vendor saat ini
ditetapkan.
Menentukan level API vendor (Android 13)
API level vendor mengikuti API level SDK, yang ditujukan untuk antarmuka OS aplikasi dan diperbarui setahun sekali saat platform Android baru dirilis ke AOSP.
Android 13 berisi properti sistem
berikut yang terkait dengan API level vendor (ro.vendor.api_level
):
Properti sistem | Format | Deskripsi | Setelan awal |
---|---|---|---|
ro.board.first_api_level |
Bilangan Bulat | API level vendor yang digunakan untuk merilis software chipset pertama kali. Ini adalah fungsi chipset saja, dan tidak dapat diubah oleh vendor SoC atau OEM. Properti ini hanya ditetapkan untuk chipset yang memenuhi syarat untuk pembekuan vendor | Nilai ditetapkan dengan menetapkan BOARD_SHIPPING_API_LEVEL dalam file device.mk . |
ro.board.api_level |
Bilangan Bulat | API level vendor yang didukung software chipset. Properti ini hanya ditetapkan untuk chipset yang memenuhi syarat untuk pembekuan vendor. | Awalnya, nilai properti ini ditetapkan oleh sistem build ke nilai yang sama dengan ro.board.first_api_level , tetapi dapat diperbarui jika partisi vendor diupgrade. |
ro.product.first_api_level |
Bilangan Bulat | API level SDK yang digunakan untuk meluncurkan perangkat pada awalnya. | Properti ini ditetapkan oleh OEM, lalu tidak pernah diperbarui, bahkan setelah upgrade OS. |
ro.vendor.api_level |
Bilangan Bulat | API level vendor yang harus dipatuhi oleh perangkat secara keseluruhan. | Dijelaskan setelah tabel ini. |
ro.vndk.version |
Bilangan Bulat | Versi VNDK yang digunakan untuk mem-build partisi vendor. | Properti ini ditetapkan oleh partisi sistem. |
ro.vendor.build.version.sdk |
Bilangan Bulat | API level SDK dari hierarki sumber tempat partisi vendor dibuat. | |
ro.vendor.build.version.release |
Bilangan Bulat | Versi platform hierarki sumber tempat partisi vendor dibuat. | |
ro.vendor.build.version.release_or_codename |
Bilangan Bulat | Nama kode hierarki sumber tempat partisi vendor dibuat. |
Properti ro.vendor.api_level
secara otomatis ditetapkan ke minimum ro.board.api_level
(atau ro.board.first_api_level
jika ro.board.api_level
tidak ditentukan) dan
ro.product.first_api_level
.