Android移动性能实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

为什么会有这本书

记得笔者从微博和MAC QQ项目中解放出来后,就开始接手手机QQ,组建专项测试团队。那时有几个小伙伴,我们一起做手机QQ的专项测试,发现推动专项问题解决非常困难。产品的需求压力巨大,性能越来越差,我们开始用更严厉的标准像守护者一样守护手机QQ,例如安装包的大小。接手后的第一个手机QQ版本,涨了10MB,这使我们看到了风险,顶着各部门的KPI需求,我们制定了一系列严厉的指标,超过的需求都不允许通过,从此安装包大小刹住了车。但KPI的压力巨大,像是洪水,不排解,堤坝只能越建越高,我们的压力也越来越大。产品经理开始不断地问,为什么安装包不能变大呢?为什么不能占用更多的内存?我提供更多服务,为什么不能消耗更多的流量?Why? Why not?

在这些质疑中,我们经历了许多,除了工具、流程之外,更多带给我们的是真实的经验。例如,安装包不能再变大了。这里需要证据,运营同事找到了应用宝的数据,发现有不少用户是通过3G网络下载安装包的,另外安装包大小对下载失败率也有影响。在跟老板汇报过数据后,我们拍定了更严厉的标准:0增长。慢慢地随着我们团队人数的增加,类似这样的故事也越来越多。跟大家想象的一样,其中有跟开发人员的PK、有不服输自己去解决专项Bug的、有跟产品经理PK需求、与专项性能平衡的,等等。但是知道故事的人并不多,知道“为什么”的人就更少了。我们觉得这些故事应该被记录下来和分享出去,然后就有了本书。本书中会介绍工具、原理,但更重要的是提供了一个个真实的案例、Bug解决方案。

谁适合阅读本书

以下职位的小伙伴们适合阅读本书。

· 终端专项测试:这个职位的测试人员,负责产品的性能、安全、稳定性、兼容性等各个方面。我们希望你通过阅读本书,可以有效地归纳总结知识、拓展思路,也可以作为你在专项测试领域的一本“字典”,随时翻查。

· 终端系统测试:这个职位的测试人员,需要全面负责功能测试、专项测试等各个方面,利用合适的测试策略发现和预防风险。而专项测试是测试本身一个空间最广阔、蕴含知识最丰富的分支,学习和了解专项测试,对系统测试人员本身职业生涯的发展有着不可或缺的重要作用,也有利于制定出最合适的测试策略。

· 高级终端开发:终端开发人员必然需要面对许多性能上的难题,本书希望成为你的一部指南书。还有,必须要说,越是高级的终端开发人员,越是需要啃硬骨头,而专项恰巧就是这个硬骨头。

另外,产品经理不能看这本书吗?答案是能。因为不懂测试的开发不是好的产品经理。

如何利用本书

本书力求做到以下三点。

第一,通过结构化的知识体系,让读者在心中建立起性能专项的知识体系。希望做到“授之以渔”,所以我们会从资源类性能和交互类性能入手。

第二,案例均来自手机QQ、QQ空间、QQ音乐等的真实项目案例,结合工具集和原理,希望让读者对其中的技巧和知识使用更加得心应手。

第三,提炼专项标准。在测试行业中,很多测试人员都需要有标准在背后支撑,特别是对于性能这些不黑不白的事情。虽然制定让人信服的标准很难,但我们愿意踏出这一步。

因此大家阅读的时候会发现,为了上面的三点,本书的大部分章节会分为原理、工具集、案例、专项标准四部分来介绍。

原理 主要是为了说明一些不脱离实际的实用的基础知识。因为有好的基础知识,才能PK得过开发人员,说服得了产品经理,用“专业知识”武装自己。

工具集工欲善其事,必先利其器。但工具那么多,该选哪个呢?根据我们的经验,本书中对工具做了不同纬度的分类,助你消灭选择恐惧症。

案例 按照分析专项问题的思路来划分我们的案例,我们力求做到让读者可以举一反三。

专项标准 会从原则、标准、优先级、来源等来描述。原则像是宪法,在没有对应的具体标准的时候,可遵循原则。标准更多是直接从案例中提炼的规则,可直接操作落地。优先级和来源都是为了让大家推动标准的时候更有把握。

在开始性能专项之旅之前

为了坚定你把这本稍微晦涩难懂的书读完的信心,笔者必须让你弄清楚性能的重要性和这本书将会告诉你些什么。下面,先从几个不同的角度来谈谈性能的重要性。

首先,性能是基础功能。这句话不是我说的,是Pony Ma在一次大会上说的,即使不算终端性能,也都能印证这句话的正确性。其中最经典的例子就是PC的传文件功能。对于这个功能来说,在不同的网络环境下,尽可能地利用好带宽,保证成功率和提升传输速度就是这个功能的描述。而对性能的不断打磨,也让这个功能成为用户使用QQ的重要原因之一。所以产品经理要升级,要打怪通关,怎么能忽略性能呢?

其次,性能可以给予更多丰富用户体验的空间,也可以彻底破坏用户体验。这里举两个例子。第一个例子,过年时候,上了一个有强迫症的功能,口令红包。这个功能就相当于一次对于客户端的消息压测,会带来前所未有的性能压力,幸好聊天窗口的性能还不错,才能承载起来。第二个例子,内存中OOM会带来crash,卡顿到了极端会ANR,这些都会严重破坏用户体验。

最后,性能可以直接跟钱产生关系,可以省钱也可以费钱。关于省钱,例如手机QQ的部分业务功能切换为使用WebP来压缩图片,这不仅节省了用户流量,更重要的是从带宽费用上为公司节省了不少支出。关于费钱,例如http content length设置错误带来的重复下载,就会浪费用户流量,甚至可能导致一次让公司损失大量金钱的事故。

移动专项性能是一个完整的体系,如图1所示的Android性能专项地图,它涉及很多方面知识,作为移动专项的一个重要分支,包括资源类性能、交互类性能两个方面,所以本书将从这两个方面,依据图1中的脉络,讲述这些重要的案例、经验和工具,让你快速成长。

图1

致谢

本书的作者是来自腾讯SNG专项测试团队的工程师们,他们负责手机QQ、QQ空间、QQ音乐等的性能评测与优化工作,在App的资源类性能、交互类性能的分析与优化上挖掘很深,积累了不少案例和经验。

主要编著成员有:黄闻欣、杨阳、丁铎、谭力、付越、付云雷、黄天琳、欧阳霞、唐志彬、樊林。

感谢吴凯华、肖衡、邱俊、汪斐、石延龙、张金旭、闫石、潘在亮、刘海锋、周文乐、李昶博和其余专项测试团队成员的鼎力支持。

读者服务

轻松注册成为博文视点社区用户(www.broadview.com.cn),您即可享受以下服务。

· 提交勘误:您对书中内容的修改意见可在【提交勘误】处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。

· 与作者交流:在页面下方【读者评论】处留下您的疑问或观点,与作者和其他读者一同学习交流。

页面入口:http://www.broadview.com.cn/31064

二维码: