Bu belgedeki ZORUNLU (MUST), ZORUNLU DEĞİL (MUST NOT), GEREKLİ (SHOULD) ve ŞİDDETLE TAVSİYE EDİLİR (STRONGLY RECOMMENDED) anahtar kelimeleri, RFC 2119'da açıklandığı şekilde yorumlanmalıdır.
Konuk sistemi (sanal makine görüntüsü)
Bu bölümdeki şartlar misafir sistemi için geçerlidir.
Bellek
Sistem, VM başına en az 2 GB bellek sağlamalıdır.
Uygulama ikili arabirimleri
Cihaz uygulamaları:
- Tanımlanmış bir veya daha fazla Android NDK ABI'si ile uyumlu OLMALIDIR.
- Aynı cihazdaki tüm VM görüntüleri için aynı Android NDK ABI'yi kullanmalıdır.
- Aşağıdaki listede yer alan her bir gerekli kitaplıkla kaynak uyumlu (ör. başlık uyumlu) ve ikili uyumlu (ABI için) OLMALIDIR.
- Yerel API'ler sağlayan aşağıdaki tüm kitaplıkları SDV uygulamalarına sunmalıdır:
libc(C kitaplığı)libdl(dinamik bağlayıcı)libdrm.so(Direct Rendering Manager kullanıcı alanı kitaplığı)libgbm.so(Genel Tampon Yönetimi)libEGL.so(yerel OpenGL yüzey yönetimi)libGLESv1_CM.so(OpenGL ES 1.x)libGLESv2.so(OpenGL ES 2.0)libGLESv3.so(OpenGL ES 3.x)liblog(Android günlük kaydı)libtinyalsav2.so(ses kaydı ve oynatma)libvulkan.so(Vulkan)
- Önceki yerel kitaplıklar için herkese açık işlevler eklenmemeli veya kaldırılmamalıdır.
- NDK'da tanımlandığı şekilde, libGLESv3.so kitaplığı aracılığıyla tüm OpenGL ES 3.1 ve Android Extension Pack işlev sembollerini dışa aktarmalıdır. Tüm sembollerin bulunması GEREKTİĞİNİ ancak OpenGL ES'nin her bir ilgili işlevin tam olarak uygulanmasının beklendiği durumlarla ilgili gereksinimleri daha ayrıntılı olarak açıkladığını unutmayın.
VK_KHR_surface,VK_KHR_swapchain,VK_KHR_maintenance1veVK_KHR_get_physical_device_properties2uzantılarının yanı sıra temel Vulkan 1.1 işlev sembollerinilibvulkan.sokitaplığı aracılığıyla dışa aktarmalıdır. Tüm sembollerin bulunması GEREKTİĞİNİ unutmayın. Vulkan, her bir karşılık gelen işlevin tam olarak uygulanmasının beklendiği zamanlarla ilgili şartları daha ayrıntılı bir şekilde açıklar.- Yukarı akış Android Açık Kaynak Projesi'nde bulunan kaynak kodu ve başlık dosyaları kullanılarak oluşturulmalıdır.
Grafik
- Sistem, donanım hızlandırmalı grafikler için
virtio-gpukullanmalıdır. Konuk tarafı sürücüsü, oluşturma içingfxstreamkullanmalıdır.
Giriş
Konuk sistemi, virtio-input kullanılarak ana makine sisteminden iletilen giriş etkinlikleri için destek içermelidir.
OpenGL ES
Cihaz uygulamaları:
- Yerel API'ler aracılığıyla desteklenen OpenGL ES sürümlerini (1.1, 2.0, 3.0, 3.1, 3.2) doğru şekilde tanımlamalıdır.
- Destekledikleri her OpenGL ES sürümü için ilgili tüm yerel API'lerin desteğini İÇERMELİDİR.
- Hem OpenGL ES 1.1 hem de 2.0 desteklenmelidir.
- OpenGL ES 3.1'i desteklemesi ÖNEMLE TAVSİYE EDİLİR.
- OpenGL ES 3.2'yi DESTEKLEMELİDİR.
- OpenGL ES'in yönetilen API'lerini ve yerel API'lerini kullanarak, uyguladıkları diğer OpenGL ES uzantılarını bildirmelidir. Desteklemedikleri uzantı dizelerini bildirmemelidir.
- Aşağıdaki uzantıları DESTEKLEMELİDİR:
EGL_EXT_image_dma_buf_importEGL_EXT_image_dma_buf_import_modifiersEGL_KHR_fence_syncEGL_KHR_image_baseEGL_KHR_wait_syncGL_OES_EGL_image
Cihaz uygulamalarında, Vulkan arka ucuyla ANGLE kitaplığı kullanılarak OpenGL ES'nin uygulanması ŞİDDETLE TAVSİYE EDİLİR.
Vulkan
Cihaz uygulamaları:
- Vulkan 1.3 desteği eklemeleri KESİNLİKLE ÖNERİLİR.
- Vulkan varyant sürümünü desteklememelidir (yani Vulkan çekirdek sürümünün varyant kısmı sıfır olmalıdır).
- Aşağıdaki uzantıları DESTEKLEMELİDİR:
VK_ANDROID_external_memory_android_hardware_bufferVK_EXT_external_memory_dma_bufVK_EXT_queue_family_foreignVK_KHR_external_memory_fdVK_KHR_external_semaphore_fd
Multimedya uyumluluğu
Cihaz uygulamaları, aşağıdaki özelliklere sahip ham ses içeriklerinin oynatılmasına İZİN VERMELİDİR:
- Kaynak biçimleri: Doğrusal PCM, 16 bit, 8 bit, kayan nokta
- Kanallar: Mono, stereo, sekiz kanala kadar geçerli çok kanallı yapılandırmalar
- Örnekleme hızları (Hz cinsinden):
- Daha önce listelenen kanal yapılandırmalarında 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
- Mono ve stereo olarak 96000
Cihaz uygulamaları, ham ses içeriğinin yakalanmasına İZİN VERMELİDİR. Cihaz uygulamaları en azından aşağıdaki özellikleri desteklemelidir:
- Biçim: Doğrusal PCM, 16 bit
- Örnekleme hızları: 8000, 11025, 16000, 44100, 48000 Hz
- Kanallar: Mono
Cihaz uygulamaları, aşağıdaki özelliklere sahip ham ses içeriğinin yakalanmasına İZİN VERMELİDİR:
- Biçim: Doğrusal PCM, 16 bit ve 24 bit
- Örnekleme hızları: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
- Kanallar: Cihazdaki mikrofon sayısı kadar kanal
Cihaz uygulamaları, donanım erişimi için
virtio-soundcihazını kullanaraklibtinyalsav2.soAPI'si aracılığıyla ses çalma ve kaydetme desteği sağlamalı ve ALSA API'yi desteklemelidir.Video kodlayıcılar ve kod çözücüler, düzlemsel veya yarı düzlemsel YUV420 8:8:8 renk biçimlerinden en az birini desteklemelidir.
Video kod çözücüleri ve kodlayıcıları H.264 AVC codec'ini DESTEKLEMELİDİR.
Cihaz uygulamaları, H.264 Main Profile Level 3.1 ve Baseline Profile'ı DESTEKLEMELİDİR. Rastgele dilim sıralaması (ASO), esnek makroblok sıralaması (FMO) ve yedekli dilimler (RS) için destek isteğe bağlıdır.
Video kodlayıcılar:
- Aşağıdaki tabloda yer alan standart çözünürlüklü (SD) video kodlama profillerini DESTEKLEMELİDİR.
Aşağıdaki tabloda belirtildiği gibi yüksek çözünürlüklü (HD) video kodlama profillerini DESTEKLEMELİDİR.
SD (düşük kalite) SD (yüksek kalite) HD 720p HD 1080p Video çözünürlüğü 320 x 240 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel Video kare hızı 20 fps 30 fps 30 fps 30 fps Video bit hızı 384 Kb/sn 2 Mb/sn 4 Mb/sn 10 Mb/sn
Video kod çözücüler:
- Aşağıdaki tabloda yer alan HD 720p video kod çözme profillerini DESTEKLEMELİDİR.
Aşağıdaki tabloda yer alan HD 1080p video kod çözme profillerini DESTEKLEMELİDİR.
SD (düşük kalite) SD (yüksek kalite) HD 720p HD 1080p Video çözünürlüğü 320 x 240 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel Video kare hızı 30 fps 30 fps 60 fps 30 fps Video bit hızı 800 Kb/sn 2 Mb/sn 8 Mb/sn 20 Mb/sn
Cihaz uygulamaları, Video4Linux API'yi kullanarak medya codec'leri için destek sağlamalıdır.
Cihaz uygulamaları, Video4Linux API'sini kullanarak donanım video kod çözücüsüne erişim sağlamalıdır.
Donanımla hızlandırılmış tüm video ve görüntü kodlayıcılar, donanım kameralarından gelen karelerin kodlanmasını DESTEKLEMELİDİR. Cihaz uygulamaları,
virtio-mediaaracılığıyla video kodlama ve kod çözme için donanım erişimi SAĞLAMALIDIR.Cihaz uygulamaları, Video4Linux API'sini kullanarak video kameraya erişim sağlamalıdır.
Ana makine sistemi (hipervizör ve donanım)
Bu bölümdeki şartlar, ana sistem ve hiper yönetici ortamı için geçerlidir.
Sanallaştırma
- Temel profil için gerekli olan
virtiocihazlara ek olarak, ana sistem AŞAĞIDAKİLERİ sağlamalıdır:virtio-gpu: Sanal GPU ve ekran içinvirtio-input: Giriş etkinliklerini (ör. dokunma, klavye) yönlendirmek içinvirtio-sound: Sanal ses cihazları içinvirtio-videoveyavirtio-media: Sanal video codec cihazları için
Giriş
- Cihaz, giriş cihazlarını desteklemeli ve
virtio-inputkullanarak etkinlikleri misafir sistemlere yönlendirmelidir. Cihaz; işaretçi, düğme ve döner kontrol cihazı girişlerini desteklemelidir.