首次原创,勿喷...
至android4.4 发布以来,各个手机厂家也相继跟上潮流,推出了时尚的android4.4手机系统,如魅族、小米三星。每次新的android新的sdk入市,总能让我 们这些个苦逼程序员头疼好一阵,无奈,既然选择了远方就只顾风雨兼程。首先给大家讲讲android4.4 新特性在满足用户体验、需求、隐私保护的同时,给开发者带来的问题。
在android4.4之前,我们频繁的使用sdk为我们提供的WebView做一些数据展示和表单提交的工作,来为一些短保质期的活动类或复杂的界面减 少开发成本和版本迭代。这样的做法让我们在android4.4悄悄来临之际狠狠的撞在了枪口上,由于android4.4更改了WebView的内 核,app内嵌浏览器赖以生存的openfileChooser和onReceivedError等方法早android4.4上打死都调不到了。项目着 急上线之际,寻寻觅觅各大知名网站、论坛后无果,屋漏偏逢连夜雨,谷歌官网也因更新api而屏蔽。最后决定在webView入口做一下判 断,android4.4用户只能跳到第三方浏览器进行访问。在公司唯一的已升级成4.4的测试机——mx3上测试通过。
以为事情就这样结束了,终于上线了,好兴奋,来,版本升个级,再点点,再测测。不测不知道,一测吓一跳,后台的小伙儿捧着他自个儿的手机跑过来说:“你这 apk怎么老闪退啊?" 坏了,闪退可不是小事,赶紧拿过来瞅瞅,左一捣腾,右一捣腾,这家伙就是连不上电脑,电池都没反应,一个小时下来,心里直犯嘀咕:“这手机该不是被刷成了 砖头吧,嗯,一定是这样,闪退纯属巧合。”正打算就此作罢,经理找来各种数据线,一根根试,皇天不负有心人,终于用最后一根线连上了。那么,调试吧,报 can‘t find com.android.BrowerActivity ,怎么会调不到呢?手机上明明有俩浏览器啊?这可咋整?接着,继续问度娘...找到答案后,愧疚之意油然而生,当初写代码时直接copy过来就用的,我在 跳转的地方多做了一层限制“intent.setClass("com.android.BrowerActivity")”,正好Android 4.4不再内置浏览器:要么授权用Chrome要么自己研发,所以找不到。那么为什么mx3就可以呢?原因是魅族和小米的系统都是在android系统的基础上做相应改动,魅族系统的浏览器一直是自己研发的...
项目完成,那么最后总结下这次项目中学到的三点:
1,不要纯复制代码,不同代码不同需求,复制也行,一定要弄透每句代码的作用,否则,出bug的时候有你忙的,技术就得深究执着,想浅尝则止?那你赶紧转行吧;
2,对bug的宽容就是对自己的残忍,试想这次没有经理的坚持,我下周就乖乖的躺在家里;
3,活到老,学到老,走在技术的前沿才不至于遇到那么多绊脚石,android4.4出来已经很久了,挨了打才知道疼,那你永远只有受伤的命。
最后感谢经理和舍小家为大家把自己机子刷成4.4的小哥给我上的这一刻,废话不多说了,接着为追求更短,更快,更精的代码而奋斗。
本文出自 “信诺集团技术中心” 博客,谢绝转载!