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

二十八 我在软件园的那些日子里相关推荐

  1. 二十九 我在软件园的那些日子里

    "妈,你打电话怎么了?"   "没事,不是说这周回来?"牛二嗯的予以肯定,母亲接着说,"我跟你爸说你这周回来,你爸老不信,觉得你不是每学期才会回来,这 ...

  2. 三十六 我在软件园的那些日子里

    来人正是九爷.九爷在村里很有威望,时不时来当和事老,调节矛盾,牛二笑脸相迎,直冲着九爷傻笑.   "回来脚刚着地,就拿毛娃寻乐子啊?"看来九爷有些微怒,牛二心里有些打鼓.看来学好三 ...

  3. 三十四 我在软件园的那些日子里

    首先映入眼帘的是几张效果示意图,对此型号手机尺寸以及硬件效果,做一个直观感受,随后便是基本配置信息,是单卡还是双卡,有无蓝牙,FM等,后面便是项目定义,主要的特色,7038项目主打的为320✘480的 ...

  4. 三十五 我在软件园的那些日子里

    代码已经抓去下来,牛二按照老郑指导,开始编译项目,编译代码之中,牛二跑去陈乔那边,给她说下发布版本事宜. "哎,陈乔,不知组长给你说了往后你来帮他发版本的事情?"牛二腼腆羞涩的说着 ...

  5. 2008R2Win7管理二十八Mail之基本使用

    2008R2Win7管理二十八Mail之基本使用 上篇我们已经安装好了exchange2010,呵呵本片简单介绍和看下ex2010的基本界面和使用 安装完成打开exchange控制台如图所示 汗,有试 ...

  6. 微信小程序把玩(二十八)image组件

    原文:微信小程序把玩(二十八)image组件 image组件也是一个程序不可缺少的,可以这样说一个app中image组件随处可以看到,一般 image有两种加载方式第一种是网络图片第二种是本地图片资源 ...

  7. Citrix 服务器虚拟化之二十八 XenApp6.5发布文档内容

    Citrix 服务器虚拟化之二十八  XenApp 6.5发布文档内容 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务器的整个 ...

  8. OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope

    OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...

  9. (转载)Android项目实战(二十八):使用Zxing实现二维码及优化实例

    Android项目实战(二十八):使用Zxing实现二维码及优化实例 作者:听着music睡 字体:[增加 减小] 类型:转载 时间:2016-11-21 我要评论 这篇文章主要介绍了Android项 ...

最新文章

  1. 2022-2028年中国汽车工业行业研究及前瞻分析报告
  2. 直播|深大周池:跨数据中心的高效大图处理问题研究
  3. Beaglebone Black教程使用SSH通过USB和因特网连接Beaglebone Black
  4. 中职计算机专业论文,中职教学中计算机专业论文
  5. 网格合并之后物体的位置改变了_基于网格映射对自动驾驶环境信息表示方法
  6. zcmu4959: ly的新闹钟(有个点容易忽略)
  7. php 时间函数参考
  8. 算法题目——质量(POJ-1862)
  9. 大学教授撰写诗歌引人思考:美好人生怎能终止在17岁?
  10. 在git的Bash下进行复制粘贴
  11. 计算机学院学生会宣传稿,计算机与信息工程学院学生会
  12. 【SQL Server备份恢复】维护计划实现备份:每周数据库完整备份、每天差异备份、每小时日志备份...
  13. 如何使用代码给菜单增加图标
  14. 游戏开发之C++多继承及虚继承(C++基础)
  15. Debug时,出现Unable to evaluate the expression Cannot find xxx
  16. matlab egarch,EGARCH模型参数的拟蒙特卡洛估计方法及其在股票指数上的应用
  17. Rme娃娃脸声卡驱动安装设置方法
  18. html屏幕3分,使用CSS3的background-size优化苹果的Retina屏幕的图像显示
  19. 慕课网C#开发轻松入门 6-1练习题目
  20. MuJoCo的机器人建模

热门文章

  1. iPod Mini 和 iRiver H10
  2. 《越狱》第一季 第19集
  3. 《大数据产业发展规划》(2016-2020年)安全相关内容摘录
  4. 译文 | A poor man‘s API
  5. mysql数据(1)
  6. Spring Boot +Vue + Flowable 工作流引擎
  7. MySQL行列转换及多选字典
  8. 应用统计学与计算机论文2000字,应用统计学专业论文范文
  9. J.This Ain‘t Your Grandpa‘s Checkerboard (简单遍历)(2021年度训练联盟热身训练赛第一场)
  10. 传言不假,Rackspace再次申请IPO