每周总结 - 0428
本周工作方面的基本告一段落,但是随之而来的也是比较棘手的一个项目,需要用到蓝牙 ota 技术,由于对接公司人手的缺失,对方只提供了安卓的 SDK,iOS 这方面需要我们对照着安卓的代码转译成 OC,幸运的是之前也有学习安卓,大体的逻辑都能看的明白,但涉及到一行一行的翻译过来,就比较吃力。所以这个礼拜所做的努力简单来说,就是用水磨功夫反复看细节处的代码,等待灵机一动的时刻。好吧,我得承认这个方法,耗时费力又没有效率,但用 Stack Overflow 里提问者经常回应的一句话说:it’s worked!
不过在反复解读的过程中也稍微掌握了一些提高效率的方法,整理如下:
第一、遇到不懂的代码,直接谷歌。善用搜索这虽然是老生常谈的事,但是对我来说有必要强调一下,因为学习过安卓的缘故,所以让我有些思维盲区,平时解决问题的时候都会直接用搜索引擎,但这次在解读安卓源码的前期阶段我都一直没想到用搜索引擎来解读代码。所以强调善用搜索,另一方面也是提醒自己不要因为接触不擅长的事的压力而导致总是钻入某个牛角尖。
第二、不能举一反三,就举三推一。这个方法是我通过从某个牛角尖刚钻出时的经验教训总结出来的。但我得到 ota 升级前发送第一次握手校验命令返回的消息时,我试图弄明白这些这个消息代表了什么含义,而且这个消息,和之后每次 ota 包分段发送后的返回消息有什么区别,打印之后发现第一次的长度和之后的长度都不一致,这让我很迷惑。又有兄弟公司的安卓工程师帮忙解读的文档里提到另一个透传通道,前缀说明里写很重要,影响到 ota 是否成功,然后我就思考这个通道和返回的验证消息是否有联系,在源码中搜索发现也确实用到了这个通道——这个后来发现到虽然这个通道进行了赋值和调用一次,除此之外再没有用到。但当时这些信息有点把我搞糊涂了,所以就在重复打印和对比安卓和iOS ota 的返回消息,以及希望在源码中解读出透传通道究竟起了什么作用。因为长时间没取得较好的进展,就颇有些自暴自弃的想把其他简单但不是很重要的命令先转成 oc,然后发现他 ota 线程中循环判断里的条件参数,和回调读取的值是有一定联系的,只是像 oc 把数据处理写成了一个单例形式,又用一层东西封装了一下,导致写入和读取不太像一个来源,造成了视觉盲点,但点进去就比较一目了然,虽然还有底层的东西需要用谷歌解读,但是关于处理返回验证消息就可以按着这个方法来校验了。以上就是我整个问题的思考过程,其实很多时候真正的问题也不是知识量的积累不够,而是主观上受情绪影响,思考的不太全面,所以以后这方面的问题需要多多注意。
说点轻松的,本周《妇联4》上映,没赶首映,周日放假时去看的,看的过程中几度红眼,因为剧情本身,也因为剧情以外 22 部漫威电影所累积下的情感积淀。也是我第一次在电影院等到片尾所有字幕放完,影院的清洁人员拿着扫把畚斗进来打扫。片尾曲放在最后出现的是钢铁侠,首尾呼应,而且,又是一个情绪的爆发点。我想我平抒直叙的方式实难写出我心里所感受的十分之一,所以就此打住。
英语这个礼拜开始复习,每天五十个,目标不是很大,早上坐车的时候就可以轻松完成。抽了一天看了下书,《信息资源管理》,最进新开课因为有事还没来得及去上。另外还有一些琐碎的思绪因为发散琐碎没来得及去记,就像云一样飘走了。
以上。