《移动App性能评测与优化—腾讯TMQ专项测试团队实战案例精选》读书笔记

    安卓移动App已经从首先关心产品的需求是否能更好地满足用户需要,而容忍偶尔的崩溃和卡顿等质量因素,逐渐转变为质量和功能并重,不让用户因产品性能和体验方面的不佳,而选择类似的竞争产品。

    很多产品顺应这种趋势,更为关心产品的质量。测试和技术认清这种趋势,从最初的功能测试是否达标,界面自动化测试、接口自动化测试是否通过,发展到当前的也重视各种专项测试。越大的公司,这种发展趋势越是明显,从一个或几个人从事某类测试,到由专门的团队并行完成不同类型测试;但对于小的公司,由于人员时间和能力限制,很多事情都要一件件的来,做好一项再做一项;甚至大部分小公司,还未能真正开始任何一项自动化方面的测试。

    专项测试早已进入我们的视野,并且偶尔也会做些小功能的专项,随着我们软件越来越成熟和稳定,目前有必要,也有时间和精力来开展更为专业的专项测试。

    最近了解腾讯的开源工具GT时,恰好发现腾讯的TMQ专项测试团队编写了一本专项测试的书。读完发现,该书无论对于专项性能的测试,还是问题定位,都提出了自己清晰的思路,感觉无论对测试,还是对开发,读一下该书都会有所收获。尤其对测试,读一遍应该是不够的,需要在读的时候,也进行测试和定位方面的尝试,才能把里面的经验用好。

    GT软件可以从github中下载,使用该软件可以测试App的内存、CPU、时间片、流畅度、耗电量、网络流量等,并可以输出单项的趋势图及原始数据。GT工具的界面如下:


    使用GT工具测试的某App的两次自动化用例运行的内存数据如下,从图中看,可能存在内存泄漏:


    该书对于内存泄漏的分析,主要是在第一章进行的。该章从内存的主要组成索引,到主要的内存工具方法,如使用Android Studio/Memory Monitor观察Dalvik内存、dumpsys meminfo观察整体内存、smaps观察整体内存的详细组成、Eclipse Memory Analyzer详细分析Dalvik内存。然后介绍主要的内存测试经验,如MAT是探索Java堆并发现问题的好帮手,能发现常见的图片和大数组问题,不过测试内存碎片则不好用;要测试非Dalvik部分,需要了解Linux的进程和内容原理、内存共享机制、熟悉常用命令行命令;内存的最小单位通常是4KB,这个限制往往引起各种碎片问题;碎片不仅仅是Dalvik问题,也包含文件的mmap也可能产生碎片。有了这些测试及分析经验,该测试团队也提供了内存性能优化的方法和建议。

    除内存外,其针对手机耗电进行的电量测试、针对流畅度而进行的FPS及改进的SM测试、针对上网流量进行的网络优化、针对减小安装包而进行的安装包瘦身实验都有自己的丰富经验。

    该书的编写思路基本都是问题提出->测试->问题分析和定位->优化和监控的思路,并给出了实际的案例。最后的GT工具,可以提供大部分的测试,并且已经开源,测试和开发可以使用该工具进行测试,以及在此基础上进行自己需要的定制及进行手工性能测试和自动化测试性能。

    所以,推荐购买并阅读该书。阅读仅仅是开始,根据自己公司的需要,在腾讯专项团队测试经验的基础上,使用并提高某些专项方面的测试及App性能改进才是根本。

附本书目录

前言

第1章 越用越卡为哪般—降低待机内存1

1.1新手入门1

1.2规范测试流程及常见等问题6

1.2.1测试流程7

1.2.2Dalvik Heap的常见问题8

1.2.3示例9

1.2.4新的问题10

1.3新问题的进一步挖掘12

1.3.1Dalvik Heap内部机制13

1.3.2问题所在15

1.3.3优化Dalvik内存碎片17

1.4进阶:内存原理19

1.4.1从物理内存到应用20

1.4.2smaps 22

1.4.3zygote共享内存机制25

1.4.4多进程应用25

1.5案例:优化dex相关内存26

1.5.1从class对象说起27

1.5.2一个类的内存消耗28

1.5.3dex mmap 29

1.5.4dex文件优化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.3Lint扫描,发现代码中的流畅度性能问题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.1CPU 186

7.2.2Jiffies 188

7.2.3电量189

7.2.4流畅度和FPS 191

7.2.5内存191

7.2.6流量192

7.3工具的获取193

7.4GT使用193

7.4.1GT在场测中194

7.4.2GT在自动化测试中203

7.5本章小结205

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,073评论 25 707
  • 本文是《移动App性能评测与优化》的读书笔记。PS:说是读书笔记,其实就是摘录。 移动App的性能测试主要包括:内...
    stringwu阅读 1,641评论 0 10
  • 前言 本文将整理腾讯GT各个性能测试项的测试方法,目的是为了帮助移动性能专项测试同学快速过一遍腾讯GT各个性能数据...
    测试帮日记阅读 1,283评论 0 6
  • HTML是一种标记语言(Markup Language),标记语言的真正威力在于其收集能力,也就是说,它可以将收集...
    绪雨成澜阅读 748评论 0 0
  • 去年在豆瓣上参加过一个活动,叫“未来搜索器”。宣传语上写着 未来的你,或许是个作家,豆瓣读书将发布你的新书公告;也...
    cornsweet阅读 749评论 0 1