基于Docker实现并支持VMI服务的Android云平台

基于Docker实现并支持VMI服务的Android云平台

背景介绍

近年ARM处理器不仅在移动端高速发展,更是凭借其优秀的能耗比在服务器领域上异军突起,越来越多的数据中心正在从X86架构的服务器迁移到ARM架构服务器上,并在此基础之上构建ARM云平台。Android系统随着多年发展,早已占据了移动操作系统的半壁江山, ARM处理器优秀的能耗比,使得Android系统从一开始就选择了ARM作为目标硬件平台。

当我们将ARM服务器和Android系统两者相互结合在一起时,就诞生了“云手机”的概念,它描述的是这样一个应用场景:我们在ARM服务器上运行Android系统并在其中运行一个我们定制开发的VMI(Virtual Mobile Infrastructure)服务,然后用户可以通过任何手机终端上访问ARM服务器上运行的Android系统和已经安装在Android系统中的APP,最后用户就可以像在本地使用Android手机一样,操作运行在ARM服务器上的Android系统了,并且性能更好,数据更安全。

为了能够充分有效地利用ARM服务器上的资源,我们使用了kubernetes管理工具对ARM服务器集群资源进行统一的管理,并使用轻量级的Docker容器虚拟化技术来运行Android系统,使得同一台ARM服务器上可以运行多个Android系统,提高了单机服务器的利用率。

Android系统中VMI重定向服务实现框架

Android系统中VMI重定向服务实现框架

Android系统中VMI服务主要包括:桌面图像重定向、键盘输入重定向、触摸屏输入重定向、音频重定向(包括音频播放和录音)、摄像头重定向和蓝牙、GPS、距离传感器、陀螺仪传感器、重力加速度计传感器、SD卡存储等设备的重定向功能。Android 系统中 VMI 服务的系统框架如图1所示,它主要由下面三个模块组成:

  • VMI服务端

  • VMI客户端

  • VMI服务端和客户端之间的传输协议

图1:Android VMI 服务系统框架图

3.Android Docker 容器集群搭建和管理

Kubernetes是为生产环境而设计的容器调度管理系统,支持负载均衡、服务发现、高可用、滚动升级、自动伸缩等容器云平台基本功能,所以本项目中基于Kubernetes项目进行修改定制,通过Kubernetes在ARM服务器集群上搭建好了Docker容器云平台,将运行Android系统的Docker容器实例部署到该平台上,并且实现对集群中每个Pod的CPU、内存、网络带宽资源进行管理限制,控制资源保证,针对不同的Pod实现三个等级的 QoS 服务质量保证。整个Android Docker容器云平台架构如图2所示。

图2

Members

  •      

Copyright Statement

This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.


<<< 返回