Feature List
Feature |
Sub-feature |
Description |
Constraints |
Supported on VMs |
Remarks |
|---|---|---|---|---|---|
Android Kbox cloud phone container solution |
Kbox cloud phone container reference solution based on openEuler (host OS) and Android (guest OS). The |
|
No |
The Kbox solution is implemented based on Docker containers. Therefore, it cannot be used on general-purpose VMs. |
|
Direct GPU rendering and mainstream graphics APIs |
Direct GPU rendering in containers, supporting OpenGL ES 2.0/3.0/3.1/3.2 and Vulkan 1.1 graphics APIs. The dEQP compatibility rate is greater than 98%. |
|
|||
Hardware acceleration for video playback on cloud phones |
Hardware acceleration for video playback on cloud phones, implementing H.264 and H.265 decoding hardware acceleration for video playback, reducing CPU load, and improving performance in media scenarios. |
|
|||
Adaptive texture compression |
Adaptive texture compression based on open-source Mesa, supporting conversions of Vulkan RGB and RGBA textures to DXT textures. |
|
|||
Dynamic Kbox kernel switch |
Dynamic switch, enabling the host OS image used by the cloud phone to be shared by other services. |
|
|||
Adaptive frame synchronization |
Adaptive vertical synchronization (vsync), enabling SurfaceFlinger to compose one frame immediately after it is rendered and send it to the screen. |
|
|||
Android application compilation optimization |
ART DEX compilation optimization for Android applications to accelerate application startup. |
|
|||
YCbCr_420_888 format |
YCbCr_420_888 supported by the Gralloc module, resolving the black screen issue. |
|
|||
Kbox dynamic frame rate adjustment |
Dynamic frame rate reduction when the client is disconnected from the cloud phone in the away from keyboard (AFK) scenario to cut rendering overhead. |
|
|||
Resource monitoring |
Monitoring GPU memory and other memory resources so that customers can perform operations based on resource usage. |
|
|||
Lightweight Android tailoring |
Removing unnecessary system services and built-in applications to reduce cloud phone resource usage, thereby improving system performance and optimizing user experience. |
|
|||
Android composer optimization |
When a game app is displayed in full screen and only the game app layer is present, the composition step can be skipped and image rotation from landscape to portrait can be omitted, reducing GPU overhead. |
|
|||
Thread-level shader cache |
Pre-built binaries cut shader compilation and linking time, improving rendering efficiency of large-scale applications. |
|
|||
Codec 2.0 framework |
Kbox supports the Codec 2.0 framework, ensuring that applications using Codec 2.0 for software decoding run properly. |
|
|||
Hardware emulation |
This feature injects predefined data (fixed GPS information, which cannot be dynamically changed) through the predefined interface of GPS mock, to ensure that upper-layer services can properly obtain the GPS information preset on the cloud phone. |
|
No |
Hardware emulation runs only in the Kbox cloud phone solution based on Docker containers. Therefore, it cannot be used on general-purpose VMs. |
|
Telephony mock |
This feature enables Telephony basic information for cloud phones through Telephony mock. It injects information such as IMEI provided by the user in advance into the cloud phone to ensure that upper-layer services can properly obtain the Telephony basic information preset in the cloud phone. |
|
|||
Wi-Fi mock (status mock) enables the Wi-Fi function on cloud phones by forwarding Wi-Fi traffic. Then upper-layer services can sense the Wi-Fi status. |
|
||||
Acceleration sensor mock (status mock) enables the acceleration sensor function on cloud phones. Then upper-layer services can sense the acceleration status. |
|
||||
Gyroscope mock (status mock) enables the gyroscope function on cloud phones. Then upper-layer services can sense the gyroscope status. |
|
||||
Emulation of multiple vinput devices |
The vinput device emulation function is provided to support the access of multiple peripherals on the Android set-top box (STB) and smart TV, such as the mouse, handle, and touch. |
|
|||
Audio emulation |
Audio device emulation ensures that upper-layer services can properly invoke audio APIs. |
|
|||
Video stream engine |
720p@30 fps/720p@60 fps/1080p@30 fps/1080p@60 fps resolution and frame rate |
This module enables GPUs to implement basic rendering capabilities and supports 720p@30 fps, 720p@60 fps, 1080p@30 fps, and 1080p@60 fps. For details about the supported GPU brands and models, consult the project contact person. |
|
No |
The video stream engine runs only in the Kbox cloud phone solution based on Docker containers. Therefore, it cannot be used on general-purpose VMs. |
H.264 and H.265 video encoding on the video stream engine server |
This module provides video encoding and screenshotting functions of the video stream engine server. |
|
|||
H.264 and H.265 video decoding on the video stream engine client |
This module provides the adaptive decoding function of the video stream engine client. |
|
|||
Optimized GPU stream output to reduce the latency |
GPU instructions are called in the image capture interface of the server to optimize the stream output and reduce the latency. |
|
|||
Reduced load via rendering optimization on the primary and secondary screens |
The load of cloud phones is reduced and the density is improved by shielding invalid images, removing extended screens, and creating a streaming system. |
|
|||
Frame interpolation |
When the image refresh rate is low (that is, no image is updated within 1/4 second), the frame interpolation function can be enabled to ensure that the average frame rate of output streams is higher than 28 fps. |
|
|||
Dynamic encoding resolution adjustment |
Dynamic resolution reduction, cutting bandwidth consumption and alleviating frame freezing. |
|
|||
360p/480p resolution |
360p and 480p resolutions are supported to promote the expansion of cloud phone ToC services. |
|
|||
Instruction stream engine |
System-wide instruction separation |
The instruction stream engine compresses and redirects OpenGL ES 2.0/3.0/3.1/3.2 and EGL 1.4 graphics rendering instructions/data of cloud phones (Android 9/11-based) from the server to the client. The graphics rendering instructions/data are asynchronously executed on the client. |
|
No |
The instruction stream engine runs only in the Kbox cloud phone solution based on Docker containers. Therefore, it cannot be used on general-purpose VMs. |
Local rendering state machine |
The state machine is integrated on the server, allowing applications to run without GPUs (empty rendering). |
|
|||
Rendering state machine rebuild |
This module enables rendering state machine rebuild and display on the client, and supports reconnection upon an interrupted connection. Users can access it at any time. |
|
|||
Video streaming of texture data |
This module caches repeatedly used texture data and compresses and transmits OpenGL ES instructions, textures, and vertex data to reduce network traffic. |
|
|||
Resolution awareness and adaptation |
A cloud phone can automatically adjust the screen resolution based on the screen resolution of the corresponding mobile phone to ensure that the screen resolution of the server is the same as that of the client. |
|
|||
HD 1080p@30 fps display |
The instruction stream engine allows cloud phones to run in 1080p@30 fps by default. |
|
|||
Media playback optimization |
The optimization supports hardware decoding of media cards and asynchronous encoding/streaming to improve the frame rate and user experience in video playback scenarios. |
|
|||
Base engines |
Server-side audio capture engine |
The server-side audio engine is provided for capturing engine data. |
|
No |
The base engines run only in the Kbox cloud phone solution based on Docker containers. Therefore, they cannot be used on general-purpose VMs. |
Client-side audio playback engine |
The client-side audio engine is provided for audio playback. |
|
|||
Server-side touch engine |
The server-side touch engine is provided for injecting control commands obtained from the client. |
|
|||
Client-side touch engine |
The client-side touch engine is provided for capturing operations. |
|
|||
ExaGear AArch32 instruction translation |
AArch32-AArch64 instruction translation |
The 32-bit Arm instruction translation is available to the new kernel and Android versions. |
|
No |
Currently, ExaGear can run only on Docker-based cloud phones, and cannot be used on general-purpose VMs. |
Compatibility enhancement |
It enhances the compatibility of 32-bit instruction translation and completes compatibility tests of top apps. |