Anbox源码分析(一)

Anbox源码分析(一)

由于项目需要,近期在研究Anbox相关的内容。发现网上对anbox的源码和机制介绍并不是太多。同时由于在CSND观摩到许多大牛的文章,让自己的学习和工作都有很大的收获,所以,本人也想回馈社区,把自己的一些收获分享给社区。
这也是本人的第一篇博客。

什么是Anbox

相信读到这篇文章的兄弟们应该对anbox有一个大概的了解了,anbox其实就是Android in a box,翻译成中文是 容器中的Android。其实就是在Linux系统中通过lxc等技术虚拟化Android。使Android可以在linux系统中运行。

Android基本架构

Android一共包含四层架构,从下往上以此是Linux内核、系统库和android运行环境、应用程序员框架、应用程序。具体可以看这篇文章,很详细。这也是Android能够以容器的形式运行在Linux上的基础。

Anbox源码下载及安装

源码可以直接去github下载。里面的readme文件也有详尽的编译和安装步骤,就不再多说了,中文翻译的也有。按照步骤下载安装即可。

Anbox基本架构

Anbox源码分析(一)_第1张图片上图是anbox官方给出的架构图,从图中可以看到,anbox主要有两个部分,Session Manager和Container Manager。

其中Session Manager主要做了三部分工作,虚拟一个Android的sufaceflinger,即Android的图像系统,可以将Android里的不同APP渲染的结构进行图层的合成,使所有APP的渲染结果最终合成在一个窗口上;虚拟一个windowmanager,它的功能是给Android里的APP提供对应的窗口,即给每个APP提供自己的渲染surface;虚拟一个activitymanager,就是管理Android内部的进程的,包括APP的启动、关闭等等。。。而Container Manager类似与docker,使Andorid的镜像在容器中运行,没有做过多研究,这部分可以用docker替代。

总结

本文对anbox架构做了一个简要的分析,以此为基础,下篇文章将会介绍anbox中视频渲染的原理。

你可能感兴趣的:(anbox,android,docker,linux)