二十八 我在软件园的那些日子里

编译起代码,牛二切到外网,看到有封邮件,是个bug系统自动发送的,张文才给转过来的,打开网页,看到标题为:蓝牙耳机在切换免提状态下,断开耳机,再次切换后出错。乍一看标题,牛二一头迷茫,像是喝醉了酒一般,头脑嗡嗡炸开,没有头绪。张文才这厮只有转bug才会想起牛二,平时对牛二总是不冷不热,有时擦肩而过,牛二兴致勃勃的给打招呼,却换来人家的不理不睬,想起就有些气愤,牛二心里暗想:嚣张个毛线,不信离开你地球就没有了自转的动力。
当前的M平台,代码设计框架,继承了状态机的概念,于是乎上层应用都是在状态中切换,对于熟悉状态机的人来说,理解起来倒是没啥障碍,但是要在原有状态去修改,添加,则难于登天,究其原因在于,状态机修改,牵一发而动全身,稍微的考虑不周,便会导致状态错乱,使得整个状态迁移受到影响,于是修改代码,便成了考验程序员的完备思想,在对代码真会流程熟稔于心,才可描龙画风,对其进行修饰。对于牛二这个初入职场的平庸技术,无疑是一个巨大挑战,牛二为此不禁心里一纠,感觉无从下手。正在他无所适从,百爪挠心之时,张文才却意外的来到跟前。
"看到那个bug没?"
牛二微微转头,说道:"看到了,可不知该怎么解?"说着一脸茫然。
说着话张文才示意牛二起来,自己坐下来,切到内网,点开打开的项目,进入到mmi/app/ccapp里面,找到mmi_ccapp.c文件,牛二眼睛紧盯着屏幕,密切关注着张文才的举动。
"来,你看这里,"说着话张文才指着一段注释,继续说着,"这里是工具生成出来的状态迁移表,从这里我们可以看到完整的状态迁移过程,条件,这个就是我们学习的一个索引,通过这个表格,我们可以快速定位触发某个条件,状态会变成哪个,从而可以知道代码会是哪个。"牛二一副受益匪浅的样子,大脑在快速的理清脉络,将之前的有些错误快速剔除,跟随文才的讲解,正试图融会贯通,将零散的细节贯穿起来。
接着文才便给牛二讲解通话时的耳机切换结构,牛二听的有时感觉豁然开朗,有时又迷雾重重,一会又感觉云开见日,一会又乌云蔽天,霄壤之别,顷刻之间,看着文才游刃有余的游走在浩瀚的代码中,挥刀自如,所向披靡,牛二心中敬意之情油然而生,不禁鼓掌叫好,当然只是在心里鼓掌而已了。
半个来小时过去了,文才意犹未尽,牛二却早已东倒西歪,站的疲惫了,直到再三确定牛二听懂了耳机,免提和手机听筒之间切换的流程,文才才一脸欣喜的倦容,起身长舒了一口气,伸长胳膊做了一个飞翔的姿势,拍了拍牛二的肩膀,略有深意的说:"好了,现在你可以去解那个问题了,往后不懂可以来找我。"说着话扬长而去,只有牛二还杵在原地,百思不解这突如其来的幸福,狂轰乱炸般的口吐莲花,扫除了牛二沉积许久的诸多疑惑,牛二赶紧坐在座位,思绪再重新温故一遍,省的顿悟的知识稍纵即逝。
整理了一个多小时,又加深了一次理解,牛二感觉收获颇丰,这次的讲解使得自己茅塞顿开,几周来的一些疑虑都一扫烟云,神清气爽,难得的自信,少有的对代码架构如此清晰的片刻。每每这种时刻,牛二都会兴奋不已,或许对别人来说算是神经质吧,每当自己掌握了某个知识,便会急切的想找人分享,切磋切磋。
这不只见他跑到大可桌前,猛不丁的朝大可腰间一抓,大可被这猝不及防的攻势毫无防备,只是靠着应激反应进行躲闪。"我擦,你这是要搞什么?"大可正在忙着跟踪一段代码,正被一堆callback搞得云山缭绕,正好牛二过来,赶紧抓个壮丁。"来来来,帮瞅下这段代码,按着文档添加的没啥问题,怎么断点不走呢?"
大可被问题搞得晕头转向,不知其所以然。牛二看着大可添加的那段代码,只见大可在一个窗口的new里面加了一个textview,设置了一个回调处理,来监听click事件,可是一直没有进来。其实对于回调,在设计里面,是一个重头戏,如果要让接口适配,则必须去做回调响应,回调种类千差万别,也更好的诠释了平台的接口完备,如果动不动就去扩展了平台接口,那只能说明平台做的太逊。牛二看着大可写的这段代码,完全没啥问题,基本都是按照文档来的,应该不会出问题才对,看了半天自己也理不出思绪来,脑子飞速的去搜索,在自己仅有的微薄的知识库里,突然间牛二想起了一个当时文档中不经意提过一个概念,于是牛二忙抢过鼠标,快速的翻看着代码,来验证自己的判断。只见牛二脸上露出得意的笑容,鼠标在一行代码处停留。
"嘿嘿,果然是这样子,这里有一个hook函数注册,这个会截获所有分派到viewroot的所有消息,如果忽略消息的话,才会继续分派下去的。"牛二双击函数,走到实现处,果然看到,此处对触发条件以及消息类别做了过滤,说着牛二将默认返回的true先改为flase,编译运行,终于出现了效果,断点跑进去了。
"最近又有长进了啊,这个困扰我一天了都,被你轻松几分钟搞定了。"
"也是凑巧了,文档上当时在说view消息时提过这个,所以就恶补了下hook机制,没想到很快就派上用场了。"牛二有些意料之外的窃喜。
"没想到还挺好学的,孺子前途无量啊。"
"马屁精啊你?想让我得意忘形,好快马加鞭赶上我?"牛二沾沾自喜。
"何必要追你?如果跑场是圆的,对于刚入场的观众来说,哪能判断出谁前谁后呢?"大可做了个隐喻,牛二没能参透禅机。
"不跟你闲聊了,回去忙正事了。"说着话牛二便回自己座位了,留下大可一个人晾在原处。
屁股没坐热,牛二的电话便震动起来了,拿起电话,便走出工作区,在外面走廊接了起来。
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页