Kata kunci HARUS, TIDAK BOLEH, SEBAIKNYA, dan SANGAT DISARANKAN di halaman ini harus ditafsirkan seperti yang dijelaskan dalam RFC 2119.
Sistem tamu (image VM)
Persyaratan di bagian ini berlaku untuk sistem tamu.
Memori
Sistem HARUS menyediakan memori minimal 2 GB per VM.
Antarmuka biner aplikasi
Implementasi perangkat:
- HARUS kompatibel dengan satu atau beberapa ABI Android NDK yang ditentukan.
- HARUS menggunakan ABI NDK Android yang sama untuk semua image VM di perangkat yang sama.
- HARUS kompatibel dengan sumber (misalnya, kompatibel dengan header) dan kompatibel dengan biner (untuk ABI) dengan setiap library yang diperlukan dalam daftar berikut.
HARUS menyediakan semua library berikut, yang menyediakan API native, untuk aplikasi Software Defined Vehicle (SDV):
libc(C library)libdl(linker dinamis)libdrm.so(Library ruang pengguna Direct Rendering Manager)libgbm.so(pengelolaan buffer umum)libEGL.so(pengelolaan platform OpenGL native)libGLESv1_CM.so(OpenGL ES 1.x)libGLESv2.so(OpenGL ES 2.0)libGLESv3.so(OpenGL ES 3.x)liblog(Logging Android)libtinyalsav2.so(perekaman dan pemutaran audio)libvulkan.so(Vulkan)
TIDAK BOLEH menambahkan atau menghapus fungsi publik untuk pustaka native sebelumnya.
HARUS mengekspor semua simbol fungsi OpenGL ES 3.1 dan Android Extension Pack, seperti yang ditentukan dalam NDK, melalui library libGLESv3.so. Perhatikan bahwa meskipun semua simbol HARUS ada, OpenGL ES menjelaskan secara lebih mendetail persyaratan kapan implementasi penuh setiap fungsi yang sesuai diharapkan.
HARUS mengekspor simbol fungsi Vulkan 1.1 inti, serta ekstensi
VK_KHR_surface,VK_KHR_swapchain,VK_KHR_maintenance1, danVK_KHR_get_physical_device_properties2melalui librarylibvulkan.so. Perhatikan bahwa meskipun semua simbol HARUS ada, Vulkan menjelaskan secara lebih mendetail persyaratan kapan implementasi lengkap setiap fungsi yang sesuai diharapkan.HARUS dibangun menggunakan kode sumber dan file header yang tersedia di Project Open Source Android upstream.
Grafik
Sistem HARUS menggunakan virtio-gpu untuk grafis dengan akselerasi hardware. Driver sisi tamu HARUS menggunakan gfxstream untuk rendering.
Input
Sistem tamu HARUS menyertakan dukungan untuk peristiwa input yang diteruskan dari sistem host menggunakan virtio-input.
OpenGL ES
Implementasi perangkat:
- HARUS mengidentifikasi versi OpenGL ES yang didukung dengan benar (1.1, 2.0, 3.0, 3.1, 3.2) melalui API native.
- HARUS menyertakan dukungan untuk semua API native yang sesuai untuk setiap versi OpenGL ES yang didukungnya.
- HARUS mendukung OpenGL ES 1.1 dan 2.0.
- SANGAT DIREKOMENDASIKAN untuk mendukung OpenGL ES 3.1.
- HARUS mendukung OpenGL ES 3.2.
- HARUS melaporkan menggunakan API native dan API terkelola OpenGL ES ekstensi OpenGL ES lainnya yang telah mereka terapkan, dan sebaliknya TIDAK BOLEH melaporkan string ekstensi yang tidak mereka dukung.
- HARUS mendukung ekstensi berikut:
EGL_EXT_image_dma_buf_importEGL_EXT_image_dma_buf_import_modifiersEGL_KHR_fence_syncEGL_KHR_image_baseEGL_KHR_wait_syncGL_OES_EGL_image
Implementasi perangkat SANGAT DISARANKAN untuk menerapkan OpenGL ES menggunakan library ANGLE dengan backend Vulkan.
Vulkan
Implementasi perangkat:
- SANGAT DISARANKAN untuk menyertakan dukungan untuk Vulkan 1.3.
- TIDAK BOLEH mendukung versi varian Vulkan (yaitu, bagian varian dari versi inti Vulkan HARUS nol).
- HARUS mendukung ekstensi berikut:
VK_ANDROID_external_memory_android_hardware_bufferVK_EXT_external_memory_dma_bufVK_EXT_queue_family_foreignVK_KHR_external_memory_fdVK_KHR_external_semaphore_fd
Kompatibilitas multimedia
Implementasi perangkat HARUS mengizinkan pemutaran konten audio mentah dengan karakteristik berikut:
- Format sumber: PCM Linear, 16-bit, 8-bit, float
- Saluran: Mono, stereo, konfigurasi multisaluran yang valid dengan hingga delapan saluran
- Frekuensi pengambilan sampel (dalam Hz):
- 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 dalam konfigurasi saluran yang tercantum sebelumnya
- 96000 dalam mono dan stereo
Implementasi perangkat HARUS mengizinkan perekaman konten audio mentah. Minimal, implementasi perangkat HARUS mendukung karakteristik berikut:
- Format: PCM Linear, 16-bit
- Frekuensi sampling: 8000, 11025, 16000, 44100, 48000 Hz
- Channel: Mono
Penerapan perangkat HARUS mengizinkan perekaman konten audio mentah dengan karakteristik berikut:
- Format: PCM Linear, 16-bit dan 24-bit
- Frekuensi sampling: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
- Saluran: Sebanyak jumlah mikrofon di perangkat
Implementasi perangkat HARUS menyediakan dukungan untuk pemutaran dan pengambilan audio melalui
libtinyalsav2.soAPI, menggunakan perangkatvirtio-sounduntuk akses hardware, dan HARUS mendukung ALSA API.Encoder dan dekoder video HARUS mendukung setidaknya salah satu format warna YUV420 8:8:8 planar atau semiplanar.
Decoder dan encoder video HARUS mendukung codec AVC H.264.
Implementasi perangkat HARUS mendukung H.264 Main Profile Level 3.1 dan Profil Dasar. Dukungan untuk pengurutan slice arbitrer (ASO), pengurutan makroblok (FMO) yang fleksibel, dan slice redundan (RS) bersifat opsional.
Encoder video:
- HARUS mendukung profil encoding video definisi standar (SD) dalam tabel berikut.
HARUS mendukung profil encoding video definisi tinggi (HD) seperti yang ditunjukkan dalam tabel berikut.
SD (kualitas rendah) SD (kualitas tinggi) HD 720p HD 1080p Resolusi video 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 px Kecepatan frame video 20 fps 30 fps 30 fps 30 fps Kecepatan bit video 384 Kbps 2 Mbps 4 Mbps 10 Mbps
Decoder video:
- HARUS mendukung profil decoding video HD 720p dalam tabel berikut.
HARUS mendukung profil decoding video HD 1080p dalam tabel berikut.
SD (kualitas rendah) SD (kualitas tinggi) HD 720p HD 1080p Resolusi video 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 px Kecepatan frame video 30 fps 30 fps 60 fps 30 fps Kecepatan bit video 800 Kbps 2 Mbps 8 Mbps 20 Mbps
Implementasi perangkat HARUS memberikan dukungan untuk codec media menggunakan Video4Linux API.
Penerapan perangkat HARUS menyediakan akses ke dekoder video hardware menggunakan Video4Linux API.
Semua encoder video dan gambar yang diakselerasi hardware HARUS mendukung encoding frame dari kamera hardware. Penerapan perangkat HARUS menyediakan akses hardware untuk encoding dan decoding video melalui
virtio-media.Implementasi perangkat HARUS menyediakan akses ke kamera video menggunakan Video4Linux API.
Sistem host (hypervisor dan hardware)
Persyaratan di bagian ini berlaku untuk sistem host dan lingkungan hypervisor.
Virtualisasi
- Selain perangkat
virtioyang diperlukan oleh profil inti, sistem host HARUS menyediakan hal berikut:virtio-gpu: Untuk GPU virtual dan layarvirtio-input: Untuk meneruskan peristiwa input (misalnya, sentuhan, keyboard)virtio-sound: Untuk perangkat audio virtualvirtio-videoatauvirtio-media: Untuk perangkat codec video virtual
Input
- Perangkat HARUS mendukung perangkat input dan meneruskan peristiwa ke sistem tamu
menggunakan
virtio-input. Perangkat HARUS mendukung input pointer, tombol, dan rotary controller.