6.1 遇到的主要问题和解决方法

        因构建Android需要一定的磁盘空间以及CPU资源,本次比赛项目构建编译主要在服务器上进行。

  1. 问题:在运行Android过程中发现服务器网络环境崩溃,无法连接,在联系机房管理员重启网络后,确认本次网络崩溃由本项目引起。在对本项目可能导致网络崩溃部分进行逐个排查时,发现编译后的Android网络组件在运行时会导致此情况发生,确定该故障为网络组件出现错误所引发。
            解决方法:经过网上搜索资料以及多次尝试后,发现取消Docker的特权模式,调整Docker为非特权模式下运行Android11容器则不会出现此问题,或将所编译后的镜像打包下载到本地系统,采用虚拟化方式运行也可正常运行。

  2. 问题:QtScrcpy投屏软件未能搜索到Android设备,排除Andorid系统自身问题后,确认问题在宿主机系统环境上。
            解决方法:经过查找资料,发现本虚拟机的网络组件配置有问题,如果宿主机需要用到端口进行操作,需要将虚拟化软件设置开启端口映射,映射adb默认端口5555才能解决,后面重置虚拟机网络组件彻底解决了该问题。

  3. 问题:在Android 11中,移植好Anbox的图形实现部分的各个HAL层,实际测试发现无法启动SystemUI Service。
            排查过程:经过Anbox通信层连通性测试,Anbox的通信层RPC调用测试,发现均连通并实现RPC调用获得返回值。排除通信层的问题,遂排查相关日志和流程,发现是Android 11中没有调用Anbox的HWC实现,而走了Gralloc的发送到Framebuffer的实现。计划从模块和安卓工程进行调试并排查问题进行解决。