年终总结_baojunzheng - mehome/openthos GitHub Wiki
包钧圳 20160115 总结
从“十一”假期到现在,我已经在清华学习工作3个多月,在知识学习、工作方式、团队合作和沟通交流等方面都有一些收获,下面将按照时间顺序进行简要总结。
十月份
刚到清华,我被分配在陈一璋、罗浩小组。我们小组的初期任务是结合Android-x86社区提供的Android-x86源代码,编译安装在具有window操作系统的PC机上,这个操作系统的主要功能就是提供windows恢复功能。我的主要工作是开发设计这个提供windows恢复功能的Android APP。研二的时候,自己出于兴趣看过一些Android应用开发视频,但是并没有深入了解这一部分内容。刚听到任务的时候,压力比较大担心不能按时完成,跟陈老师交流之后,采取边尝试开发边学习的方式。
从一个简单的tab界面到完整的Recovery for window应用的雏形,这期间一个一个功能的添加,最开始是一个简单的文本输入框作为cmd命令输入来实现window系统文件的压缩和释放接口,到后来提供简单的用户交互界面。这个过程,我有几点感受比较重要。第一,做工程的时候,抱着目的性去学习,效果更快,但是从严谨的科研角度来说,知识较为杂乱不系统。第二,由于APP需要调用陈一璋同学的wimlib,与其沟通交流较多,这个过程学到很多Linux知识和懂得了沟通交流对项目的重要性,不仅能促进个人知识的增加还能及时发现问题,拓展思路。第三,陈老师的高工作强度和科研精神让我十分敬佩。每次开会的时候,陈老师都会强调为什么和是否亲自尝试过,这个对我影响较大。
十一月份和十二月份
在做完Android APP之后,我们小组的项目得到了清华同方的肯定,并且项目的发展方向被确定为开源的Android-x86操作系统。这两个月,关于我的毕业课题,陈老师进行了多次指导。刚开始,我尝试学习了Android GPU相关内容的开发(自上而下主要涉及framework、HAL、硬件)。为了调试和测试的方便,我参照现有的Intel vt-d虚拟化技术,在Ubuntu 15.04系统配置实现了qemu启动的Android虚拟机直接调用Intel集成显卡,实现了GPU passthrough。在这个配置的过程中,为了Android 底层开发,我还向罗浩同学请教了Android源代码获取、编译、安装等技术,熟悉了git、repo等常用命令。期间阅读了framework层surfaceflinger的部分代码,初步了解了surfaceflinger的工作机制。另外,为了测试还学习了Android CTS技术。
这两个月,工程任务相对较少,主要是结合openthos开源项目,兼顾我的毕业课题,学习尝试课题方向。通过与Android-x86论坛创始人黄志伟先生的交流和参观技德公司,了解到Android-x86操作系统活跃的研究情况和市场预期。研究期间由于个人的私人事务,虽然出现工作上的一定波动,在陈老师的及时谈心和帮助下进展相对顺利。
一月份
1月15日是项目的阶段性总结deadline,这个月我的工作主要分为两部分:Recovery for window功能完善和界面修改;multiwindows课题前期学习研究。Recovery for window在实现功能的基础上,增加了边界条件判断和用户提示,例如判断镜像文件和磁盘分区的大小等。另外,关于APP的界面设计,我还需要多向美院的吴老师请教。十二月底,结合我的时间和实现难度,最终毕业课题定为Android-x86 multiwindows的研究与实现。结合tieto公司公开的Android 4.4多窗口源码以及Android 窗口管理机制,我把工程实现重点放在了framework层的wms、ams和view重点模块。另外,在完善文档和项目管理中,我认识到优秀的开源项目需要完整的文档体系和合理的分布式开发环境,这也是陈老师当前强调文档和充分依靠github开发项目的出发点。
最后,感谢陈老师在这个期间的督促、指导和帮助,感谢小组各个成员的帮助和协助以及所有的项目成员。