首页>参考读物>计算机科学与技术>软件工程及软件方法学

移动App性能评测与优化
作者 : TMQ 专项测试团队 编著
丛书名 : 实战
出版日期 : 2016-09-14
ISBN : 978-7-111-54826-3
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 223
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

移动应用的使用量和重要性与日俱增,通过移动应用性能的评测与优化可以捕捉到移动应用所有的功能或者性能方面的问题。本书通过六个专题方向介绍腾讯公司在移动应用方面的实战经验,涉及内存、电量、流畅度、导航、网络优化和应用安装包瘦身。每个专题都有案例说明,重点在讲述问题解决的思路,以及过程中碰到的问题。读者可以通过本书快速了解提升应用的思路与方法,打造更加优秀的移动应用。主要内容有:第1章是内存篇,介绍了各种内存使用情况分析的方法和一些优化技巧。第2章是电量篇,从app层面到rom层面,从硬件测试方法到软件测试方法,结合多个案例多方面介绍电量测试的切入点和测试方法以及测试原理。第3章是流畅度篇,介绍了Android流畅度的测试和优化方法。第4章是导航篇,介绍了路线规划、语音播报这两个导航中最重要的模块的测试方法和经验。第5章是网络篇,重点介绍提升上传速度和成功率、产品流量优化。第6章是应用安装包瘦身篇,结合一个瘦身实际案例介绍了当前常用的瘦身方法、瘦身工具以及瘦身过程中的技巧。第7章是工具篇,介绍腾讯公司开发并开源的工具,专门针对移动应用的性能评测与优化,可帮助读者真正应用到实际工作中。

图书特色

腾讯公司TMQ专项测试团队倾情奉献的研究成果,打造卓越移动应用的最佳实践。
体系化地介绍了移动应用性能评测与优化的方方面面,涉及内存、电量、流畅度、
导航、网络优化和安装包瘦身等。

通过本书能窥见一个优秀质量团队的良好工作方式和习惯。例如,不仅满足于发现问题,而是进一步构建“定位问题 → 优化产品 → 持续监控”的质量闭环;再例如,在充分调研、利用官方工具的基础上,有针对性地设计开发自研工具来提升效率,并通过开源回馈社区。相信关心工程质量体系和质量保证团队建设的leader们也会从本书获得启发。
—— 胡星,百度公司主任测试架构师
这本书除了较为体系化地介绍了移动应用性能评测与优化的方方面面,在一些单点上也有很多原创性的突破,如电量的硬件测试方案、GT评测插件等。 无论是刚入移动测试领域的新手,还是浸淫于此领域多年的老兵,本书都能给你带来不同的收获。
—— 李俊,蚂蚁金服技术风险部负责人
这本书初看并没有惊艳的感觉,中规中矩地覆盖了领域常见的一些技术。真正细读,会发现其中的闪光点和良苦用心:不仅仅浮于表面给出方法论或工具使用细节,而是大量解读深入的技术原理与机制,并期望给业务带去质量体验的变化。在日益浮躁的行业中,这是一个能坚持耕耘、钻研技术、抱有更高理想的团队,应当给予掌声!
—— 钱承君,百度测试架构师


在移动应用开发中,应用上线了只是一个开始,噩梦在后面:手机越用越卡为哪般?手机发烫是为何?应用的流畅度怎样才能如丝般的润滑?谁偷走了用户的钱包?如何瘦成一道闪电?这些问题解决起来都是非常麻烦的,腾讯移动品质中心(TMQ)成立了专项测试团队来解决这些问题。这些工程师们长期奋战在移动应用优化的第一线,深入钻研影响App性能的核心问题,积累了相当丰富的评测优化经验。本书来自他们的专项研究成果,其中一个专项研究代号为“大白鲨”,针对图片上传经常失败的问题展开深入研究,最后提出了数项创新型策略,极大地提升了Android版手Q的图片上传能力。他们在书中分享了大量实例,披露了原始草图,描述了研究思路,是打造卓越移动应用、提高产品质量的重要参考资料。


本书作者来自腾讯移动品质中心(TMQ)专项测试团队,他们长期负责腾讯公司部分重要的手机应用(手机浏览器、手机管家、应用宝、腾讯地图等)的性能评测与优化工作。在App的内存、电量、流量、流畅度、网络、安装包瘦身等核心性能维度,积累了相当丰富的评测优化经验。

主要编著成员有:蒋翠翠、李金涛、廖志、廖海珍、罗家润、马蕾、秦守强、文娟、阳文彬、叶方正、翟翌华、张媛、张志伟(按拼音顺序排列)。

图书前言

写作背景
当前移动设备越来越多地涌现在我们日常生活中,像网络购物、充值缴费、新闻资讯、理财、团购、车辆保养等都可以通过移动设备来搞定。通过移动设备可以帮助人们更便捷高效地完成很多事,同时越来越多的需求也希望能通过移动设备来完成,这样也催生了很多工作机会,让IT技术人员能开发更多的App来满足不同用户的不同需求。相对于传统PC,移动设备有其自身的特点,如屏幕小、移动网络复杂且需要收费、电量有限等。因此,在完成用户一系列需求的背后,我们也面临一系列的问题。比如说,如何能保证开发的App内存开销低?如何保证App在功能不变的情况下足够省电?如何做到页面滑动流畅顺滑?如何保证网络开销尽可能的低?等等。
上面一系列的问题,我们都曾经遇到过,写这本书的目的也是希望能将我们团队在“如何开发高性能质量App”上探索的经验和成果分享给读者,将我们在团队中碰到的真实案例总结出来,给做移动互联网应用的研发团队,包括测试团队,提供参考。
在我们团队的工作过程中,经常会碰到上面的问题,刚开始是和有研究探索过的前辈交流,再自己不断地实践、升华、提炼。后面也出现其他团队的人来咨询交流,再者,团队内部人员也会不断地流动,新人的加入,也需要资深的同事将积累的经验提供给新人不断学习。这样,出于以上各种原因,越来越觉得很有必要将团队近几年在移动互联网应用开发中,如何进行评测调优的实践经验总结出来。先是内部收集大家手上案例并沉淀,发现大家负责的专题都不一样,虽然零散但都很有价值,因此萌生了写书的念头。正好可以借写书将我们做过的优秀案例梳理总结出来,包括其中走过的弯路,踩过的坑都展现给大家。
本书内容
我们将日常工作中优化的案例按不同的纬度划分总结,总计有六个专题方向和最后一个自研的随身调测工具GT。六个专题研究方向分别是:内存、电量、流畅度、导航、网络优化和应用安装包瘦身。每个专题对应一章的内容,通篇都有案例说明,重点在讲述问题解决的思路,以及过程中碰到的问题,同时也介绍了移动应用测试的方法等。下面针对每个章节做一下基本的介绍,读者可以通过介绍了解该章讲述的基本内容。
第1章是内存篇,介绍了各种内存使用情况分析的方法和一些优化技巧。使读者能够准确地了解应用内存的消耗情况,找出存在的内存问题,并在开发过程中尽量节约使用内存。
第2章是电量篇,本章从app层面到rom层面,从硬件测试方法到软件测试方法,结合多个案例从多方面介绍电量测试的切入点和测试方法以及测试原理。介绍了基本的硬件测试方法;介绍了GT、PowerStat、Battery Historian等软件测试方法;以及一种通过大数据去分析用户异常耗电场进而景制定优化策略的测试思路;总结了一些在功耗测试中的优化经验。
第3章是流畅度篇,介绍了android流畅度的测试和优化方法。一开始先介绍评测APP流畅度的方法,结合我们实际的测试经验,阐述FPS在流畅度测试中的不足之处,然后针对FPS的不足,讨论我们如何对测试方法进行改进,从而使得我们的测试方法能够准确地反映出当前APP的流畅度情况。接着结合具体的案例,阐述我们如何对Android APP的流畅度进行测试以及优化。最后总结我们在实践中的流畅度优化方法,这些方法针对Android大部分的APP都具有通用性。
第4章是导航篇,介绍了路线规划,语音播报这两个导航中最重要模块的测试方法和经验。导航类评测的难点在于,case无穷尽;单看自家产品的结果很难给出优劣的评价;人工评测费时费力,达不到足够的量。我们通过后台日志筛选了用户访问量大的case,作为评测的case,以有限的量尽可能覆盖更多的用户。利用多个产品进行对比,更容易发现产品的好坏。我们还提出了几种自动化评测的方案,提高了评测效率,也提升了评测的量。
第5章是网络篇,重点介绍了我们团队网络优化的两个案例。一个是提升上传速度和成功率的“鱼翅项目”,重点讲解了在移动网络环境下如何根据一次次的实验结果,来一步步改进优化算法,最终提炼出了能应对网络质量瞬息万变的鱼翅算法;另一个是某产品流量优化项目,重点讲解了流量测试方法、自动化测试的经验以及提炼出的流量优化的通用方法。在两个案例中都详细分享了我们解决问题的思路,相信这些思考问题的方法能给大家在网络优化以及其他方面深入开展工作带来一些启发。
第6章是应用安装包瘦身篇,结合一个瘦身实际案例介绍了当前常用的瘦身方法、瘦身工具以及瘦身过程中的技巧。
第7章是工具篇,通过前面章节介绍的测试探索与实践,我们已经积累了比较丰富的测试经验,但在实践时经常发现,市面上很难找到能够满足特点测试需求或提高测试效率的工具来辅助测试活动,所以我们就需要自己动手来实现这样的工具。像我们团队开发的可以公开的工具目前有APT、GT、PowerStats,不同的工具适用于不同的测试场景。各有不同的使用限制,其中以GT的适用性最广。本章将以GT为例,先讨论开发测试工具的初心:即“什么时候是开发一个工具的恰当时机?”“我们需要解决什么样的问题?”“我们如何决定工具的形态?”这三个问题,然后对GT的基础能力在实际调测活动中起到的作用进行简要的论证。
谁适合阅读本书
本书介绍了在移动应用体验中用户关心的几类痛点,如内存、流量、电量、流畅度等,从现象到本质,利用什么工具,发现什么问题,抽丝剥茧,直追代码,找出问题的根因。每章通过一系列的案例描述移动应用的测试及优化的方法,并提供相应问题的解决方案。本书最后一章讲解了测试利器GT,通过GT工具能够让测试更灵活,让开发更透明。
本书可能适合下面这些人:
希望通过代码从本质上解决性能问题的开发人员。通过本书规范开发设计工作,减少性能开销,保证开发高质量的App。
希望提高质量、发现性能问题的测试人员。利用本书提供的方法以及思路,查找负责测试App的性能问题,并提供开发人员相应问题如何解决的参考案例。
希望针对新领域进行专题研究的团队负责人。可以参考我们在成立专题研究时,如何进行问题的剖析、探索和实践。
希望从事测试相关行业的新手。通过本书了解目前在移动App上的专项测试维度有哪些,测试工作是如何开展的。
对腾讯移动品质中心(TMQ)专项测试团队感兴趣的同行。可以通过本书了解我们团队在测试方面的一些思考和尝试。
本书阅读建议
本书中第1章到第6章从移动App各个不同维度进行专题研究、深入分析,因此,没有很明显的顺序关系,读者可以根据需要参考的维度或感兴趣的维度,查找相应的章节,进行阅读。
书中最后一章介绍我们团队自研的一款脱机测试工具GT。对于GT使用的各种问题或内部原理感兴趣的,可以直接阅读第7章。
关于作者
本书的作者是来自腾讯移动品质中心(TMQ)专项测试团队的资深测试工程师们,他们长期负责腾讯公司部分重要的手机应用(手机浏览器、手机管家、应用宝、腾讯地图等)的性能评测与优化工作。在App的内存、电量、流量、流畅度、网络、安装包大小等核心性能维度,积累了相当丰富的评测、优化经验。
主要编著成员有:蒋翠翠、李金涛、廖志、廖海珍、罗家润、马蕾、秦守强、文娟、阳文彬、叶方正、翟翌华、张媛、张志伟(按拼音顺序排列)。
TMQ(腾讯移动品质中心)是腾讯最早专注在移动APP测试的团队。TMQ微信公众号专注于移动测试技术精华,饱含腾讯多款亿级APP的品质秘密,文章皆独家原创,我们不谈虚的,只谈干货!欢迎扫描二维码关注我们。

                               TMQ深圳
特别感谢
李金涛致谢:
感谢腾讯MIG应用宝项目组的支持和帮助,让我们的想法得以在应用宝上落地和实现!感谢廖志和叶方正两位Leader的指导,在我们遇到难点时及时帮助和协调!感谢跟我一起做应用宝安装包瘦身的小伙伴王洋、曹荣丽、周茜以及开发和设计同学,大家一起通力合作才达成我们的目标!
廖志致谢:
这辈子最想感谢的人是我的外公陈光煜老先生,他不仅尽力给予了我童年最好的教育,而且用他的言传身教教会了我为人正直。
其次,我要感谢我的外婆赵碧君老太太,她不仅含辛茹苦地帮助我母亲把我抚养成人,也用她自身的言行教会了我善良。当然,我也要感谢生我养我无私奉献她近乎所有给我的母亲陈正伟,希望她能一直健康、快乐的安享晚年。
再次,我自然要感谢全力支持我工作的妻子王维,若不是她在家撑起半边天、用心教育我们的儿子廖紫安,我就没有足够的时间去思考、探索和沉淀我的各项测试技术经验。
最后,我想对五年来一路相伴、并肩战斗的专项测试团队的兄弟姐妹们真心说一句:我爱你们,你们是最棒的!
廖海珍致谢:
作为主编,首先感谢各位章节书写的负责人和领导麦克,廖叔。写书的工作历时很长,近半年了,大家都是靠工作之外的时间来做,而且期间经过几轮思考,又不断的要求调整修改文章布局和细节,感谢各位的支持。通过大家克服各种工作忙,时间不够,文笔如何表达优化思路等困难,才能将整本书完成。致以:写内存篇的张志伟、蒋翠翠,写电量篇的阳文彬、张媛,写流畅度篇的罗家润、叶方正,写导航篇的马蕾、文娟,写网络优化篇的廖志、翟翌华,写应用安装包瘦身篇的李金涛,写工具GT篇的秦守强,在此表示深深的感激。
其次,也要感谢当时周末非工作时间和我一起讨论书的脉络的罗小松,两个小时的碰撞,书的架构原型产生了。众人拾柴火焰高,就是和小松,还有后面麦克,廖叔,不断的讨论交流,才慢慢形成了这本书的主要架构。其实,早期设计中他也有一部分的写作工作,后面为了突出各案例技术点,内容做了调整,将他负责的章节砍掉了。还有张媛,因为我的时间安排不开,让她帮忙修改写了网络优化部分内容,后来因为有更适合的表达方式,将她修改的都作废了,一并感谢。
最后,感谢我的老公王士伟和孩子开开。刚开始启动写书的时候,作为主编,觉得需要这么多人一起协助,还有安排各种组织讨论工作,而且又不是擅长的领域,第一次做,个人表示亚历山大。最初自己也尝试写了网络优化部分的初稿,写了30页快写崩溃了,当时很迷茫,不确定是否能把书写完,感谢老公不断的鼓励和孩子给我带来的快乐,让我更有动力和自信完成写书大业。
罗家润致谢:
首先感谢专项组对我的培养和帮助。其次要感谢麦克,流畅度这块的测试一开始都是麦克带我着做的,教会了我很多东西。最后感谢耿大师和曹老师,流畅度里的案例大部分工作都是和他们一起完成的。
马蕾致谢:
感谢专项组和地图组所有小伙伴们一直以来对我工作的支持和帮助。感谢廖叔和超姐对专项测试方向的指导和建议。感谢家里的两只鹦鹉乖乖和萌萌一直以来的陪伴。
秦守强致谢:
感谢GT用户交流群里的各位业界朋友,正是他们旺盛的好奇心推动了GT这个工具产品的不断演进,这才有了本书中GT的相关内容。
文娟致谢:
首先,感谢专项组和地图组的小伙伴们给予的支持和鼓励,感谢廖叔提供诱导专项优化的机会以及对我的指导,感谢项目建立初期参与调研的小洪同学,还有在整个过程中给我提供各种意见和建议的allison,以及提供工具支持的金涛和明明。
再次,感谢家人的陪伴。
叶方正致谢:
感谢所有有目标、有理想的人。
翟翌华致谢:
首先感谢我的Leader廖叔,在工作中他开阔的思路,追求极致的工作方式,给了我不少帮助,得益于他的指导,我的网络流量优化项目开展得井井有条,做到了极致,得到了项目组的大力认可,个人也得到了快速的成长。
其次也要感谢项目参与者罗家润、王洋、朱明,我们都投入了很多精力在网络流量优化项目上,所有的成果都是属于大家的,也感谢组内所有给与我帮助的同事们,项目组氛围非常融洽,大家和睦得像一家人。
最后感谢我的老婆和孩子,家庭方面老婆付出了很多,才使得我能更专心的投入工作,感谢你们对我工作的理解,最后把这本书送给你们,我最爱的老婆周洋和儿子帅帅。
张媛致谢:
感谢我的同事袁建发。文中提到的PowerStat2.0工具,是在他之前开发的电量分析工具基础之上再次开发并优化完善的。工具对实际项目的电量测试分析起到了很大的作用。
张志伟致谢:
感谢我的家人,有他们的陪伴我才能完成书里的内容。献给乐乐!

上架指导

计算机\软件测试

封底文字

通过本书能窥见一个优秀质量团队的良好工作方式和习惯。例如,不仅满足于发现问题,而是进一步构建"定位问题->优化产品->持续监控"的质量闭环;再例如,在充分调研利用官方工具的基础上,有针对性地设计开发自研工具来提升效率,并通过开源回馈社区。相信关心工程质量体系和质量保证团队建设的leader们也会从本书获得启发。

——胡星,百度公司主任测试架构师


这本书除了较为体系化地介绍了移动应用性能评测与优化的方方面面,在一些单点上也有很多原创性的突破,如电量的硬件测试方案、GT评测插件等。 无论是刚入移动测试领域的新手,还是浸淫于此领域多年的老兵,本书都能给你带来不同的收获。

——李俊,蚂蚁金服技术风险部负责人


这本书初看并没有惊艳的感觉,中规中矩地覆盖了领域常见的一些技术体系。真正细读,会发现其中的闪光点和良苦用心:不仅仅浮于表面给出方法论或工具使用细节,而是大量解读深入的技术原理与机制,并期望给业务带去质量体验的变化。在日益浮躁的行业中,这是一个能坚持耕耘、钻研技术、抱有更高理想的团队,应当给予掌声!

——钱承君,百度测试架构师

作者简介

TMQ 专项测试团队 编著:暂无简介

图书目录


前言
第1章 越用越卡为哪般—降低待机内存 1
1.1 新手入门 1
1.2 规范测试流程及常见等问题 6
1.2.1 测试流程 7
1.2.2 Dalvik Heap的常见问题 8
1.2.3 示例 9
1.2.4 新的问题 10
1.3 新问题的进一步挖掘 12
1.3.1 Dalvik Heap内部机制 13
1.3.2 问题所在 15
1.3.3 优化Dalvik内存碎片 17
1.4 进阶:内存原理 19
1.4.1 从物理内存到应用 20
1.4.2 smaps 22
1.4.3 zygote共享内存机制 25
1.4.4 多进程应用 25
1.5 案例:优化dex相关内存 26
1.5.1 从class对象说起 27
1.5.2 一个类的内存消耗 28
1.5.3 dex mmap 29
1.5.4 dex文件优化 30
1.6 本章小结 33
第2章 手机发烫是为何—降低耗电量 35
2.1 电量测试方法 36
2.1.1 硬件测试 37
2.1.2 软件测试 42
2.2 电量优化方法 55
2.2.1 优化方法一:CPU时间片 55
2.2.2 优化方法二:wake lock 55
2.2.3 优化方法三:传感器 56
2.2.4 优化方法四:云省电策略 56
2.3 本章小结 56
第3章 怎样才能如丝般顺滑—流畅度评测 57
3.1 流畅度评测方法介绍 57
3.2 流畅度 59
3.3 真的?用SM就够了吗 65
3.4 流畅度优化案例 69
3.4.1 通过SM评估App的流畅度 70
3.4.2 从最简单的UI层优化入手 71
3.4.3 Lint扫描,发现代码中的流畅度性能问题 79
3.4.4 优化App的逻辑层 84
3.4.5 优化App的IO层 88
3.4.6 流畅度优化经验 89
3.5 本章小结 91
第4章 坑爹的路线如何破—导航评测 93
4.1 路线规划评测 93
4.1.1 路测,人工评测,还是自动化 94
4.1.2 选择测试用例 95
4.1.3 寻找bad case的判断准则 96
4.1.4 判断路线是否相似 97
4.1.5 自动化评测方案—无路况版 97
4.1.6 自动化评测方案—路况版 101
4.1.7 特殊情况 104
4.1.8 展望 106
4.2 播报诱导评测 106
4.2.1 播报诱导常用测试方法:路测 106
4.2.2 室内评测是否能代替路测 107
4.2.3 耳听为虚,眼见为实 109
4.2.4 找到更多不好的用例 110
4.2.5 评测平台的建成 113
4.2.6 评测用例的优化 113
4.2.7 让评测更快,更好,更准 116
4.3 本章小结 117
第5章 修一条时刻畅通的高速路—网络优化 119
5.1 上传速度和成功率的优化 119
5.1.1 任务背景及方案雏形 120
5.1.2 鱼翅的要点 124
5.1.3 探索过程中的经验与思考 131
5.2 流量优化 135
5.2.1 摸清现状 136
5.2.2 优化精简 148
5.2.3 持续监控 153
5.2.4 优化过程中的经验与思考 153
5.3 本章小结 154
第6章 苗条才是美—应用安装包瘦身 155
6.1 瘦身的方向选择 155
6.2 案例:瘦成一道闪电 156
6.2.1 代码部分 157
6.2.2 资源部分 168
6.2.3 极限压缩zip 175
6.3 本章小结 181
第7章 工欲善其事必先利其器—打造趁手的测试工具GT 183
7.1 初心 184
7.1.1 选择恰当的时机 184
7.1.2 需要解决的问题 185
7.1.3 决定工具的形态 186
7.2 在实践中发挥作用 186
7.2.1 CPU 186
7.2.2 Jiffies 188
7.2.3 电量 189
7.2.4 流畅度和FPS 191
7.2.5 内存 191
7.2.6 流量 192
7.3 工具的获取 193
7.4 GT使用 193
7.4.1 GT在场测中 194
7.4.2 GT在自动化测试中 203
7.5 本章小结 205

教学资源推荐
作者: 沈备军 万成城 陈昊鹏 陈雨亭 编著
作者: 窦万峰
作者: (英)Bob Hughes, Mike Cotterell
参考读物推荐
作者: Ahmad K.Shuja; Jochen Krebs
作者: Ralph R.Young