1.2 开发计划与进展

1.2.1 开发计划

(1) 开发计划表

表1.3 开发计划表
时间节点内容
5月1日-5月31日完成安卓11运行在Docker上的核心Demo
6月1日-6月15日移植Anbox各个组件到安卓11,初步先移植Anbox的OpenGL和输入部分
6月16日-6月30日完成Anbox的通信组件移植
7月1日-7月31日完成剩余Anbox组件移植并测试
8月1日-8月15日完成最终项目提交、整理项目、准备答辩内容

1.2.2 比赛过程中的重要进展

(1) 比赛进展表

表1.4 比赛进展表
时间节点负责人完成工作里程碑
3月7日-3月22日田梓汎Android 11内核在docker上运行的实现
3月23日-4月5日张阳彬Android 11组件的改造和规范
4月6日-5月4日邹明燊完成Android工程文件编写和ASOP编译
5月5日-5月14日田梓汎、张阳彬完成Android基础核心功能测试
5月15日-5月20日邹明燊完成Android基础核心功能的运行演示核心对Docker适配成功完成于5月20日
5月21日-6月5日全体队员完成项目文档编写和整理
6月20日-7月10日邹明燊、张阳彬完成Anbox中间层的通信组件移植通信组件成功完成于7月10日并通过基础测试
7月1日-7月15日张阳彬、田梓汎完成对Anbox的图形及渲染部分的分析文档
7月10日-7月25日邹明燊完成Anbox中上层各组件移植
7月25日-8月2日邹明燊完成OpenGL部分渲染的初步RPC调用测试渲染组件成功完成于8月2日
8月2月-8月15日全体成员完成项目文档编写和整理

1.2.3 项目测试

        测试思路主要分为三步:第一步检测Bitcomet能否成功启动容器内的Android系统,主要检测其Android系统开启是否正常,是否成功进入系统界面。如果第一步成功,则基础系统运行测试正常,可以保证Bitcomet内Android系统的基本运作,遂进入第二步测试。第二步测试主要针对Bitcomet容器内的Android系统主要功能是否正常,这一步的检测将包括三个部分分别针对Android系统的三大主要功能进行测试,其中包括有系统信息测试,基础功能测试以及基础应用测试。通过第二部测试的目的是检测Bitcomet内启动成功后Android系统的整体功能完善性。最后是第三步的测试。上两部分的测试主要是检测系统的基本运行以及功能,这一部分测试主要检测在Bitcomet中运行Android的效率,会通过统一变量同时对比Bitcomet与市面上成熟的Android模拟器的性能差距,从而展现Bitcomet方案不可忽视的优势。

测试环境

        本次测试环境硬件参数将统一为下表状态

表1.5 测试环境
部件参数
系统Ubuntu20.04
CPU英特尔 i5-8300H@2.3Ghz
内存DDR4 16GB (2400MHz)
硬盘主硬盘 128G SSD 从硬盘 2TB HDD
显卡英伟达 GTX1050&英特尔UHD Graphics 630

(1) 基础系统运行测试简介以及结果

        这一步主要通过安装环境→加载内核和挂载文件系统→启动Bitcomet并连接容器内的Android来查看其运行情况。
        在根据测试步骤,下载测试镜像,安装环境并加载启动Bitcomet所需模块后,Bitcomet可成功启动,通过相关命令可以进入Android shell模式,QtScrcpy投屏软件可以连接Bitcomet并显示Android界面。系统成功启动,运行正常。

(2) 系统功能测试简介以及结果

这一步测试分为三个部分进行,以下为各个部分的测试简介:
        ① 系统信息测试,主要测试系统设备名。
        ② 基础功能测试,主要测试各基础主要功能例如默认语言,WIFI等。
        ③ 基础应用测试,主要测试系统默认应用运行情况以及第三方应用运行情况。

        测试结果主要如下:

表1.6 系统功能测试结果
成功失败
系统信息和基础功能输入(远程)
通讯录、闹铃、浏览器等基础应用以及第三方应用音频
图形渲染(GPU软件渲染)蓝牙WIFI

(3) 性能对比测试简介以及结果

        性能对比测试环节:采用Genymotion模拟器来作为对比对象,同时会进行CPU性能对比测试以及内存开销对比测试。CPU性能测试主要使用Android平台主流的基础测试应用Geekbench以及安兔兔AI。Geekbench主要针对于CPU的浮点运算和整数运算部分给出性能量化指标,而安兔兔AI则主要针对CPU中的AI运算部分给出性能量化指标。内存开销测试我们选择各方案仅运行一个Android系统,查看整体内存占用,测出内存开销。

        CPU测试部分:在Geekbench测试中,Bitcomet成绩为单核4437分,多核14398分,Genymotion模拟器对照组单核4251分,多核12626分。相比于Genymotion模拟器,Bitcomet单核领先约4.3%,多核领先约14%。性能提升相当于当今移动端旗舰级芯片高通骁龙865和高通骁龙888的性能差距(性能对比数据来自www.socpk.com) ,也就是芯片厂商用一年时间更迭优化出的性能。而在安兔兔AI测试中,Genymotion模拟器得分为48231,Bitcomet得分为58840,Bitcomet更是取得了约22%的显著优势。

        内存测试部分:分别测试仅打开Genymotion启动Android系统和仅打开Bitcomet启动Android系统,不运行任何其他应用程序,记录其内存的开销情况,Genymotion模拟器占用整个系统约3.8GiB的内存空间,而Bitcomet占用仅为2.8GiB。占用内存大小仅为Genymotion模拟器的3/4。

(4) 总结

        在系统运行测试,系统功能测试部分,Bitcomet已成功在Ubuntu20.04下运行。除部分功能未完善外,通讯录,闹铃,浏览器等基础应用及系统基础信息均可正常使用与显示,也可根据需求安装第三方软件。

        通过Bitcomet与Genymotion在CPU性能测试与内存开销测试的情况对比可知,Bitcomet无论是在CPU利用效率还是内存开销上都优于Genymotion。在虚拟化技术成熟的今天,14%性能提升意味着每一百台计算机平台可以少买12台计算机。每百万可以省下12万,又或是在能耗方面做出改进,我们可以限制机器的运行功耗,降至模拟器同样的性能,但是省下更多的电。与此同时,Bitcomet还只是一个“半成品”,其潜力之大可想而知。

        演示视频链接: https://pan.baidu.com/s/1FLokWbiU3WNq_i5bhbj7sA?pwd=ew23 提取码: ew23