Kata-kata seperti HARUS, TIDAK HARUS, SEBAIKNYA, dan SANGAT DISARANKAN dalam dokumen 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 Android NDK 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 SDV:
libc(library C)libdl(linker dinamis)libdrm.so(library ruang pengguna Direct Rendering Manager)libgbm.so(Pengelolaan Buffer Generik)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 HARUS menambahkan atau menghapus fungsi publik untuk library 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 untuk kapan implementasi lengkap 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 untuk kapan implementasi lengkap setiap fungsi yang sesuai diharapkan. - SEBAIKNYA dibuat menggunakan kode sumber dan file header yang tersedia di Project Open Source Android upstream.
Grafik
- Sistem HARUS menggunakan
virtio-gpuuntuk grafis yang dipercepat hardware. Driver sisi tamu SEBAIKNYA menggunakangfxstreamuntuk 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 (1.1, 2.0, 3.0, 3.1, 3.2) dengan benar melalui API native.
- HARUS menyertakan dukungan untuk semua API native yang sesuai untuk setiap versi OpenGL ES yang didukung.
- HARUS mendukung OpenGL ES 1.1 dan 2.0.
- SANGAT DISARANKAN untuk mendukung OpenGL ES 3.1.
- SEBAIKNYA mendukung OpenGL ES 3.2.
- HARUS melaporkan menggunakan API terkelola OpenGL ES dan API native ekstensi OpenGL ES lainnya yang telah diimplementasikan, dan sebaliknya TIDAK HARUS melaporkan string ekstensi yang tidak didukung.
- 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 mengimplementasikan OpenGL ES menggunakan library ANGLE dengan backend Vulkan.
Vulkan
Implementasi perangkat:
- SANGAT DISARANKAN untuk menyertakan dukungan untuk Vulkan 1.3.
- TIDAK HARUS 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 multi-saluran yang valid dengan maksimal delapan saluran
- Frekuensi sampling (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
- Saluran: Mono
Implementasi perangkat SEBAIKNYA 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 memberikan dukungan untuk pemutaran dan perekaman audio melalui
libtinyalsav2.soAPI, menggunakan perangkatvirtio-sounduntuk akses hardware, dan HARUS mendukung ALSA API.Encoder dan decoder video HARUS mendukung setidaknya satu format warna YUV420 8:8:8 planar atau semiplanar.
Decoder dan encoder video HARUS mendukung codec H.264 AVC.
Implementasi perangkat HARUS mendukung H.264 Main Profile Level 3.1 dan Profil Dasar. Dukungan untuk pengurutan slice arbitrer (ASO), pengurutan makroblok fleksibel (FMO), dan slice berlebihan (RS) bersifat opsional.
Encoder video:
- HARUS mendukung profil encoding video definisi standar (SD) dalam tabel berikut.
SEBAIKNYA 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 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel Kecepatan frame video 20 fps 30 fps 30 fps 30 fps Bitrate 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 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel Kecepatan frame video 30 fps 30 fps 60 fps 30 fps Bitrate video 800 Kbps 2 Mbps 8 Mbps 20 Mbps
Implementasi perangkat HARUS memberikan dukungan untuk codec media menggunakan Video4Linux API.
Implementasi perangkat HARUS memberikan akses ke decoder video hardware menggunakan Video4Linux API.
Semua encoder video dan gambar yang dipercepat hardware HARUS mendukung frame encoding dari kamera hardware. Implementasi perangkat HARUS menyediakan akses hardware untuk encoding dan decoding video melalui
virtio-media.Implementasi perangkat HARUS memberikan 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 dan layar virtualvirtio-input: Untuk meneruskan peristiwa input (misalnya, sentuh, 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 SEBAIKNYA mendukung input pointer, tombol, dan rotary controller.