Các từ khoá PHẢI, KHÔNG ĐƯỢC, NÊN và RẤT NÊN trên trang này được diễn giải như mô tả trong RFC 2119.
Hệ thống khách (hình ảnh máy ảo)
Các yêu cầu trong phần này áp dụng cho hệ thống khách.
Bộ nhớ
Hệ thống PHẢI cung cấp tối thiểu 2 GB bộ nhớ cho mỗi VM.
Giao diện nhị phân của ứng dụng
Triển khai thiết bị:
- PHẢI tương thích với một hoặc nhiều ABI Android NDK đã xác định.
- PHẢI sử dụng cùng một ABI NDK Android cho tất cả các hình ảnh máy ảo trên cùng một thiết bị.
- PHẢI tương thích với nguồn (ví dụ: tương thích với tiêu đề) và tương thích với tệp nhị phân (đối với ABI) với từng thư viện bắt buộc trong danh sách sau.
PHẢI cung cấp tất cả các thư viện sau đây (cung cấp API gốc) cho các ứng dụng Xe được xác định bằng phần mềm (SDV):
libc(Thư viện C)libdl(trình liên kết động)libdrm.so(Thư viện không gian người dùng của Trình quản lý kết xuất trực tiếp)libgbm.so(quản lý vùng đệm chung)libEGL.so(quản lý nền tảng OpenGL gốc)libGLESv1_CM.so(OpenGL ES 1.x)libGLESv2.so(OpenGL ES 2.0)libGLESv3.so(OpenGL ES 3.x)liblog(Ghi nhật ký trên Android)libtinyalsav2.so(ghi âm và phát âm thanh)libvulkan.so(Vulkan)
KHÔNG ĐƯỢC thêm hoặc xoá các hàm công khai cho các thư viện gốc trước đó.
PHẢI xuất tất cả các biểu tượng hàm OpenGL ES 3.1 và Gói tiện ích Android (như được xác định trong NDK) thông qua thư viện libGLESv3.so. Lưu ý rằng mặc dù tất cả các biểu tượng ĐỀU PHẢI có mặt, OpenGL ES mô tả chi tiết hơn các yêu cầu về thời điểm dự kiến triển khai đầy đủ từng hàm tương ứng.
PHẢI xuất các biểu tượng hàm Vulkan 1.1 cốt lõi, cũng như các tiện ích
VK_KHR_surface,VK_KHR_swapchain,VK_KHR_maintenance1vàVK_KHR_get_physical_device_properties2thông qua thư việnlibvulkan.so. Xin lưu ý rằng mặc dù tất cả các biểu tượng ĐỀU PHẢI có mặt, Vulkan mô tả chi tiết hơn các yêu cầu về thời điểm dự kiến triển khai đầy đủ từng hàm tương ứng.NÊN được tạo bằng mã nguồn và tệp tiêu đề có trong Dự án nguồn mở Android ở nguồn trên.
Đồ hoạ
Hệ thống PHẢI sử dụng virtio-gpu cho đồ hoạ được tăng tốc phần cứng. Trình điều khiển phía khách PHẢI sử dụng gfxstream để kết xuất.
Đầu vào
Hệ thống khách PHẢI hỗ trợ các sự kiện đầu vào được chuyển tiếp từ hệ thống máy chủ lưu trữ bằng cách sử dụng virtio-input.
OpenGL ES
Triển khai thiết bị:
- PHẢI xác định chính xác các phiên bản OpenGL ES được hỗ trợ (1.1, 2.0, 3.0, 3.1, 3.2) thông qua các API gốc.
- PHẢI hỗ trợ tất cả các API gốc tương ứng cho mọi phiên bản OpenGL ES mà chúng hỗ trợ.
- PHẢI hỗ trợ cả OpenGL ES 1.1 và 2.0.
- NÊN HỖ TRỢ OpenGL ES 3.1.
- NÊN hỗ trợ OpenGL ES 3.2.
- PHẢI báo cáo bằng cách sử dụng các API được quản lý OpenGL ES và API gốc cho mọi tiện ích OpenGL ES khác mà họ đã triển khai, và ngược lại, KHÔNG ĐƯỢC báo cáo các chuỗi tiện ích mà họ không hỗ trợ.
- PHẢI hỗ trợ các phần mở rộng sau:
EGL_EXT_image_dma_buf_importEGL_EXT_image_dma_buf_import_modifiersEGL_KHR_fence_syncEGL_KHR_image_baseEGL_KHR_wait_syncGL_OES_EGL_image
CÁC PHƯƠNG THỨC TRIỂN KHAI THIẾT BỊ NÊN triển khai OpenGL ES bằng thư viện ANGLE với phần phụ trợ Vulkan.
Vulkan
Triển khai thiết bị:
- NÊN CÓ tính năng hỗ trợ Vulkan 1.3.
- KHÔNG ĐƯỢC hỗ trợ phiên bản biến thể Vulkan (tức là phần biến thể của phiên bản lõi Vulkan PHẢI bằng 0).
- PHẢI hỗ trợ các phần mở rộng sau:
VK_ANDROID_external_memory_android_hardware_bufferVK_EXT_external_memory_dma_bufVK_EXT_queue_family_foreignVK_KHR_external_memory_fdVK_KHR_external_semaphore_fd
Khả năng tương thích với nội dung đa phương tiện
Các hoạt động triển khai thiết bị PHẢI cho phép phát nội dung âm thanh thô có các đặc điểm sau:
- Định dạng nguồn: PCM tuyến tính, 16 bit, 8 bit, dấu phẩy động
- Kênh: Đơn âm, âm thanh nổi, cấu hình đa kênh hợp lệ với tối đa 8 kênh
- Tốc độ lấy mẫu (tính bằng Hz):
- 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 trong các cấu hình kênh được liệt kê trước đó
- 96000 ở chế độ đơn âm và âm thanh nổi
Các hoạt động triển khai thiết bị PHẢI cho phép ghi lại nội dung âm thanh thô. Tối thiểu, quá trình triển khai thiết bị PHẢI hỗ trợ các đặc điểm sau:
- Định dạng: PCM tuyến tính, 16 bit
- Tốc độ lấy mẫu: 8000, 11025, 16000, 44100, 48000 Hz
- Kênh: Đơn âm
Các hoạt động triển khai thiết bị PHẢI cho phép ghi lại nội dung âm thanh thô với các đặc điểm sau:
- Định dạng: PCM tuyến tính, 16 bit và 24 bit
- Tốc độ lấy mẫu: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
- Số kênh: Bằng số lượng micrô trên thiết bị
Các hoạt động triển khai thiết bị PHẢI hỗ trợ việc phát và ghi âm thanh thông qua API
libtinyalsav2.so, sử dụng thiết bịvirtio-soundđể truy cập vào phần cứng và PHẢI hỗ trợ API ALSA.Bộ mã hoá và giải mã video PHẢI hỗ trợ ít nhất một định dạng màu YUV420 8:8:8 phẳng hoặc bán phẳng.
Bộ giải mã và bộ mã hoá video PHẢI hỗ trợ bộ mã hoá và giải mã H.264 AVC.
Các chế độ triển khai thiết bị PHẢI hỗ trợ Cấp độ 3.1 của Cấu hình chính H.264 và Hồ sơ cơ sở. Bạn không bắt buộc phải hỗ trợ tính năng sắp xếp các lát tuỳ ý (ASO), sắp xếp linh hoạt các khối macro (FMO) và các lát dư thừa (RS).
Bộ mã hoá video:
- PHẢI hỗ trợ các hồ sơ mã hoá video ở độ phân giải chuẩn (SD) trong bảng sau.
NÊN hỗ trợ các hồ sơ mã hoá video có độ phân giải cao (HD) như được nêu trong bảng sau.
SD (chất lượng thấp) SD (chất lượng cao) HD 720p HD 1080p Độ phân giải video 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 pixel Tốc độ khung hình video 20 khung hình/giây 30 khung hình/giây 30 khung hình/giây 30 khung hình/giây Tốc độ bit của video 384 Kb/giây 2 Mb/giây 4 Mb/giây 10 Mb/giây
Trình giải mã video:
- PHẢI hỗ trợ các cấu hình giải mã video HD 720p trong bảng sau.
PHẢI hỗ trợ các cấu hình giải mã video HD 1080p trong bảng sau.
SD (chất lượng thấp) SD (chất lượng cao) HD 720p HD 1080p Độ phân giải video 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 pixel Tốc độ khung hình video 30 khung hình/giây 30 khung hình/giây 60 khung hình/giây 30 khung hình/giây Tốc độ bit của video 800 Kb/giây 2 Mb/giây 8 Mb/giây 20 Mb/giây
Các hoạt động triển khai thiết bị PHẢI hỗ trợ các bộ mã hoá và giải mã nội dung nghe nhìn bằng API Video4Linux.
Các hoạt động triển khai thiết bị PHẢI cung cấp quyền truy cập vào bộ giải mã video phần cứng bằng Video4Linux API.
Tất cả bộ mã hoá video và hình ảnh tăng tốc phần cứng ĐỀU PHẢI hỗ trợ mã hoá các khung hình từ camera phần cứng. Các chế độ triển khai thiết bị PHẢI cung cấp quyền truy cập phần cứng để mã hoá và giải mã video thông qua
virtio-media.Các phương thức triển khai thiết bị PHẢI cung cấp quyền truy cập vào camera quay video bằng Video4Linux API.
Hệ thống máy chủ (trình điều khiển ảo hoá và phần cứng)
Các yêu cầu trong phần này áp dụng cho hệ thống máy chủ và môi trường trình điều khiển ảo hoá.
Ảo hóa
- Ngoài các thiết bị
virtiomà hồ sơ cốt lõi yêu cầu, hệ thống máy chủ lưu trữ PHẢI cung cấp những thiết bị sau:virtio-gpu: Đối với GPU và màn hình ảovirtio-input: Để chuyển tiếp các sự kiện đầu vào (ví dụ: thao tác chạm, bàn phím)virtio-sound: Đối với thiết bị âm thanh ảovirtio-videohoặcvirtio-media: Đối với các thiết bị bộ mã hoá và giải mã video ảo
Đầu vào
- Thiết bị PHẢI hỗ trợ các thiết bị đầu vào và chuyển tiếp các sự kiện đến hệ thống khách bằng cách sử dụng
virtio-input. Thiết bị PHẢI hỗ trợ thao tác nhập bằng con trỏ, nút và bộ điều khiển xoay.