7. Bitcomet未来展望与参考文献

7.1 未来更加值得选择并研究的方案

        这里讲述一种未来更有潜力的方案,该方案仍然是使用容器来提供Android运行的环境,这样继承了容器方案的优势,但是在3D渲染和图形输出的部分和输入输出的部分选择了截然不同的方式,把Mesa3D驱动直接移植到Android内,同时在HWC和Gralloc模块上进行处理,直接对接外部Linux实现控制和图形输入输出。此种方法有目前众多新的项目使用,甚至是其Anbox的衍生项目Waydroid以及Redroid、KMRE等方案也是使用了该种方法。直接使用Mesa3D驱动GPU硬件,图形渲染和输入输出能够直接对接GPU硬件,显然可见这种实现方法性能损失是最低的

        但是该种方案仍然有缺点:Mesa3D驱动即使支持了众多x86和ARM平台下的GPU,包括Intel、AMD、NVIDIA、Qualcomm、ARM等,但仍然有不支持的GPU;Mesa3D是Linux下的库,需要经过许多移植工作才能在Android下工作;针对不同GPU的平台,如果需要实现Mesa3D的方案,但GPU又未被Mesa3D支持,则相关驱动也需要移植;Mesa3D在Android中部分仅仅只是图形库,在外部Linux内核也需要相应GPU驱动,从而使外部Linux也需要使用Mesa3D库来调用GPU。

Docker运行Android+Mesa3D架构图
图7.1 Docker运行Android+Mesa3D架构图

        本项目Bitcomet是这类移植方式中其中一种兼容性较好的方案,技术仍然在不断发展,目前已有各类新型的,性能损耗更低的技术出现。例如Anbox的衍生项目Waydroid以及KMRE,直接利用GPU库调用底层GPU硬件的方法,实现真机的调用方法,损耗极低。未来本项目发展必然是朝着这些新技术进行研究,并实现对这些新技术的掌握及发展。例如Waydroid方案的支持有局限性,只对接了Wayland实现窗口创建管理及图形输出。而KMRE等是属于商业项目,但从其论文来看,与Waydroid都是同一种实现技术与方案,唯一不同是实现了在Xorg下的输出显示。因此本项目未来需要追赶新技术,实现Wayland、KMRE这类新技术,并且在其之上完善更多图形环境下的适配以及其他各类优化。

        同时在这种移植技术的发展上,本项目希望探索与总结这类跨系统平台适配的各类技术的实现与优点,能总结出这种成熟的技术并制定方案,建立成熟的技术体系,提供给更多同类型项目进行参考,助力信息产业国产化,建设更好的国产生态。

7.2 参考文献

  1. 面向桌面Linux的Android运行环境构建. 张超,国防科技大学,[2012年10月]. CNKI:CDMD:2.1014.048616
  2. Android 架构,Android Open Source Project (google.cn) 链接:https://source.android.google.cn/devices/architecture?hl=zh-cn
  3. KMRE: An Efficient and Compatible Runtime to Execute Android Application on Linux System, [Date of Conference: 10-13 December 2021]. 10.1109/ICCC54389.2021.9674681