没什么技术性,只是个简单记录。
- 编辑历史
主体内容 2021-02-04
日常废话
好吧,其实我自己也不太会安卓的编程,只是自己在大一大二看了些,简单入了个门。
到了大三已经忘了个七七八八了。而且我一直不喜欢 Java,所以也很久没写过了。
不过,大三以来,特别是软件工程课程和自己在家写了 Node.js 的一些项目,让我对于开发一个应用类的项目已经有了足够最基础的经验;
再加上随着本科课程的跟进,基础丰富扎实了,依靠他人的博客代码、查看 API 文档来解决问题的能力也确确实实的提升了。
总而言之,老师给了我推荐了一个安卓项目,联系了一位学长。
未完待续。。。
以上是去年写的···
大体内容就是机械院的一个项目组开发了基于自定义蓝牙协议的手套类的控制器硬件,需要配合的安卓程序进行测试。
软件需求的主题分成两类:测试用的游戏与支持自定义的蓝牙协议。
沟通 & 分配,最后还是自己来
这是我第一次与非计算机专业的人员沟通,所以有关软件的需求是自己提取的。
客观来说,软件工程的作用还是有的,起码我在需求和设计上有了最起码的经验,也明白了沟通对于合作双方的重要性。
一开始的需求中没有提及蓝牙方面,所以整体难度是非常低的,我预估一周绰绰有余:
游戏就是极普通的别踩白块,实现逻辑大一新生学点C++就大概懂了,最麻烦的可能还得是配置安卓的运行环境。
这么想着,再加上老师的指示和轻微的历史原因,我就把自己定位为产品经理,另准备带个大一或大二的学生来做。
俱乐部规范分组之前,有个安卓组,计划是机会学长授课的,可惜太忙了,结果不了了之。
我作为组的群主&通常管理人员脸上实在有点挂不住,这次也颇有些“亡羊补牢”的感觉。
问了几天有个学弟报名了,但是主客观原因叠加,大约一个月都没有整完。
等我自己小学期的操作系统第一部分做完了还没结束,甲方有点等不及了,我和双方沟通了下,好家伙,我还是得自己动手。
要来现有的代码,简单看了下。Emmmm...怎么说呢,经验上还是有差距,我选择全部重来。
Android & Java,路转黑
以前还是挺喜欢Java的,Android 也曾在自我要求掌握的技术栈中,可惜···
虽然 Android Studio 已经够顶了,可惜这 SDK,各种包,版本适配,虚拟机···
我开发再简单的东西也得整上全套,每次版本配置就一个最烦人的问题,哪怕整了代理和镜像依然繁琐,还得占一堆的硬盘空间和运行资源。
另外安卓实现页面功能也是心累。
拖动空间的可视化的界面设计方式或者代码 new 各种类,好吧和 Qt 还是比较像的。
可是基于Activity类的页面对象配合各种生命周期之类的,我感觉不到一丝开发上的简便。仅仅添加两个页面,整上按钮跳转,这么简单的功能,得两个Activtiy类加对应的layout界面,还得修改AndroidManifest.xml。
用 Java 写界面属实痛苦,哪怕上了可视化我还是这么觉得。
再加上 Java 全部面向对象,写点啥都是废话一堆,看了就难受,后端还能接受吧,文件多了还行,算是规范,移动端还是受不了。
写惯了或许看法不同把,但是我是拒绝的。
总之,我对 Android 原生Java开发 的态度就是 繁琐 & 臃肿,我直接和 Java 移动端 Say Goodbye 👋。
不过这也只是吐槽,活还是得正经干完的。
Bluetooth & FastBle,普通地学习别人的项目
基础的游戏部分偷懒几天,一周内肯定还是做完了,没有用什么游戏库,普通原生。
被 Android Java 的移动动画整恶心了--我现在印象最深的就是这个--没办法,不弄什么固定帧率的普通游戏了,直接隔几秒往下掉,难度加大变快就是了。
我自己也觉得自己偷懒得过分,代码质量低到有点不要脸了😭。
后来被告知要添加蓝牙模块,学长推了个在职工程师,给了我份以前编写的测试代码,大概就是需要我提取中间需要的部分,加到现在我新写的游戏里。
得,我自己 Android 也只能说是会写,还得看别人整的代码,半天看不懂,几十个文件,文件结构和函数调用顺序都看了几天。
最后和我说用了 FastBle 的库,还给我发了点蓝牙协议的介绍。
有 FastBle 的介绍还是自己看作者写的 博客 或者 github 的 文档 吧。
有关蓝牙低功耗协议(Bluetooth Low Eneray,BLE)的内容还是百度看博客吧,我只能说自己简单看了下略懂。
最后看了文档、博客和代码差不多一周,勉勉强强看懂了我需要用到的部分,有了一些理解,又花了一周简单写完符合要求了,赶紧交差走人···
总结,自己不上不下
不太友好的编程体验,不太满意的代码,普普通通的学习经历,即使花了不少的时间,也不敢要什么报酬之类的,啊,幸好勉强完成了需求。
从这个项目以后,我大概是和 Java 开发移动端再见了,虽然我室友貌似写的挺多的。
BLE 和 FastBle 还是挺好的,简单高效的实现蓝牙功能,现在看了或许以后能用上,可以接受。
这次项目也认识了机械院的一些同学,大家人都不错,可能比代码收获更大吧😄。
很好,全是废话,麻了🤡。
主要还是技术上的东西过了半年我已经忘完了,现在去看别人博客学习回忆也太🐽了,只能这样fw了。