1.2 开发计划与进展
1.2.1 开发计划
(1) 开发计划表
时间节点 | 内容 |
---|---|
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) 比赛进展表
时间节点 | 负责人 | 完成工作 | 里程碑 |
---|---|---|---|
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方案不可忽视的优势。
测试环境
本次测试环境硬件参数将统一为下表状态
部件 | 参数 |
---|---|
系统 | 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等。
③ 基础应用测试,主要测试系统默认应用运行情况以及第三方应用运行情况。
测试结果主要如下:
成功 | 失败 |
---|---|
系统信息和基础功能 | 输入(远程) |
通讯录、闹铃、浏览器等基础应用以及第三方应用 | 音频 |
图形渲染(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