6月有幸参与到CSDN开源夏令营当中,加入了Ubuntu kylin的开源项目组,负责优麒麟手机助手的开发。初识Ubuntu是在两年前,那时候刚刚接触编程,总希望可以尽量多接触一些有逼格的东西。
后来花了一天时间在U盘里装了一个Ubuntu,还没开始骄傲就发现同学在电脑里装了13个操作系统,从那时候开始,我就学会了……只要折腾不死,就往死里折腾。
图 1 Ubuntu kylin
喜欢折腾是我能参与到优麒麟手机助手这个项目中的重要原因。大学三年我花了大部分的时间编程,只要接触到的东西有实战之处我都会去尝试,到后来码出的代码在我不知道原理的情况下就可以成功跑起来。这种开发习惯一直延续到今年6月,直到今年连续被阿里拒了两次我开始反思,编程重要并不是你有多强的实践能力。
我开始领会到思考的重要性,在CSDN开源夏令营中有幸结识到Jonas导师,Jonas导师对我的帮助可谓是空前的,我们花了大概三周的时间来讨论需求,分析技术的可行性。这让我更加坚定地去改变之前错误的开发习惯。我相信,有了正确的方向,哪怕退回原点也是进步。
优麒麟手机助手是Ubuntu kylin下的一款应用软件,致力为Linuxer创造一个可视化的手机管理工具。经过和导师的交流,我们最终决定首先实现优麒麟手机助手的无线连接,以Android作为服务器,实现所有的功能,Ubuntu kylin下的桌面软件作为客户端和Android端交互。这样一来优麒麟手机助手实际上也成了跨平台的手机管理软件,用户可以在任意一个浏览器中使用它的全部功能。
因为自己对Android很感兴趣,之前也开发了一些app,在Android端的开发上没有出现太大的障碍。底层直接使用Paw作为服务器,这样一来Android的本地代码只暴露出一个Activity和一个Service。再通过Paw加载HTML文件,前台布局开发的也很顺利,桌面式的布局可以提供很友好的用户接口,虽然现在还有很多小问题,但是已经不影响整个项目的使用,开源的魅力也在于大家可以一起改进,共同学习。
花了大概一个月的时间,一个独立的Android应用版优麒麟手机助手已经完成了。用户可以在任意浏览器中通过应用中显示的URL进行访问,效果如图2。URL包含手机IP和端口号,因为Linux的非Root用户是拿不到80端口的,所以端口号不能省去。端口号是固定死的,手机IP会根据网络动态分配。
图 2 优麒麟手机助手浏览器版界面-照片查看器
下一步的工作就是实现优麒麟手机助手在Ubuntu kylin下的桌面应用,虽然工作量已经剩下的不多,但对我来说,这一步工作的挑战难度并不低于在Android上实现全部功能。
在Ubuntu kylin桌面软件的开发中,现在流行的是Qt/QML混合编程和Qt+HTML5混合编程。实在不想承认我的C真的很渣,网上几乎找不到新版Qt/QML的中文教程,于是这一个月的时间里,很大一部分时间呆在StackOverflow上。一个在QML中注册C++类的问题让我痛苦了三个夜晚,工期其实挺紧的,任务量大到我没办法系统地地学习Qt/QML的混合编程,这让开发变的有些乱,我没有很好的处理自己。更痛苦的是没有人可以和我一起交流技术,有一天食堂大妈看着我心事从从,让我说出来她帮忙参考参考,我只能呵呵呵了,心想以后一定要去一家有技术交流氛围的公司,食堂大妈都得懂开发:)
万万没想到最终我还是完成了优麒麟手机助手桌面端的开发,桌面端换用Qt+HTML5的技术架构(如图3)。
图 3 优麒麟手机助手QML界面
CSDN开源夏令营的工作就这样结束了,但是优麒麟手机助手的开发才刚刚开始,我的程序员之路也刚刚开始。很庆幸当初没有和同学们一起去参加IOS培训,虽然他们很快就可以没毕业就拿行业高薪8K+,然后讽刺我看扁我:( 但我还是很高兴没有放弃自己,我相信人生总有些时候需要自我救赎。朋友说我和自己过不去,有高薪何必不拿,我只是觉得现在的培训太商业化,学生像是流水线上的商品,完全没有幸福感。我觉得如果我想搞IOS,我会自己去学,找一些前辈交流,我一定会学的很好。如果我想去幸福感很强的互联网公司,我就一直努力,我一定可以找到合适我的位置。
总(软)结(文)写完了,不知道能不能把自己推销出去。最后希望有兴趣的各位看客可以加入到优麒麟手机助手的开发之中,我们来者不拒。
- 论坛讨论/吐槽帖: http://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=9440&extra=
- GitHub项目地址:
- 优麒麟手机助手初体验:http://www.ubuntukylin.com/news/shownews.php?lang=cn&id=316
- 我的主页:http://www.98ki.com/(备案中)
- 我的联系方式:13673483977