技术特征:

1.一种运行于linux操作系统上的android虚拟化系统,其特征在于:包括dockdroid层以及各个docker容器;

docker容器用于构建安卓系统,并在安卓系统的hal层中安装有安卓应用所需要的opengles库;

dockdroid层用于提供hal层传输指令的高速通道以及opengles指令转换所需要的translator库;

在hal层和dockdroid层之间通过编号来标记指令,在hal层传输指令时,指令的参数也一并通过高速通道传输到dockdroid层中,dockdroid层从高速通道中读取指令的编号和参数;

在dockdroid层中设置有用于与mesa驱动交互的translator库,在translator库中设置有将opengles指令转换为mesa驱动可识别的opengl指令;

在dockdroid层读取指令的编号和参数后,对读取的编号和指令进行解析,并根据解析结果调用translator库转换指令;

hal层调用dockdroid层提供的opengles库时,由translator库将hal层发送的opengles指令转化为显卡驱动的opengl指令,实现使用gpu的加速。

2.根据权利要求1所述的运行于linux操作系统上的android虚拟化系统,其特征在于:在docker容器中启动进程利用linuxnamespace机制隔离出一部分系统资源,通过clone系统调用创建子进程并指定flags参数来标记共享/隔离的系统资源。

3.根据权利要求2所述的运行于linux操作系统上的android虚拟化系统,其特征在于:flags参数包括主机名与域名隔离参数、消息与共享内存隔离参数、进程编号隔离参数、网络隔离参数、挂载点隔离参数以及用户与用户组隔离参数。

4.根据权利要求1所述的运行于linux操作系统上的android虚拟化系统,其特征在于:docker容器通过linuxcgroups机制对进程资源限制、控制和统计,在启动docker容器时加上cpu核数、内存大小以及网络带宽来实现资源的限制。

5.根据权利要求1所述的运行于linux操作系统上的android虚拟化系统,其特征在于:各个docker容器均对应有一个binder设备设置于宿主机中,binder设备通过对binder驱动进行修改生成;binder驱动修改点包括:修改驱动注册到内核为字符设备、添加设备保护锁、添加num_devices参数控制生成的设备数目、修改init_binder_device函数以及修改设备号。

6.根据权利要求1所述的运行于linux操作系统上的android虚拟化系统,其特征在于:docker容器是通过设备挂载方式将ashmem驱动以及binder驱动与宿主机进行映射。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐