MDSA线下公开课带你解密高性能APP开发

原创
移动开发
随着人们对移动互联网需求的碎片化与内容的个性化剧增,APP已经渗透到更多人的生活当中。如何快速快速开发出一款高性能是每个移动开发者不可回避的问题,也是一项必备的技能。如今云计算应用的落地凸显出了APP的安全性、依赖性、稳定性等重要问题,导致从底层的开发平台到各种工具、SDK、API、组件、平台层出不穷,开发者面临多种选择性困扰。

随着人们对移动互联网需求的碎片化与内容的个性化剧增,APP已经渗透到更多人的生活当中。如何快速开发出一款高性能是每个移动开发者不可回避的问题,也是一项必备的技能。如今云计算应用的落地凸显出了APP的安全性、依赖性、稳定性等重要问题,导致从底层的开发平台到各种工具、SDK、API、组件、平台层出不穷,开发者面临多种选择性困扰。51CTO通过自身的影响力以及线上线下资源优势,在2014年11月21日,在2014 WOT全球软件技术峰会•深圳站上宣布了移动开发者服务联盟(MDSA)成立,通过对成熟的第三方产品技术的聚合为移动开发者提供整个开发生命周期服务。而51CTO线下公开课则是在线下为广大的移动开发者提供了一个与行业内技术大牛面对面交流的机会,解决您在移动开发中遇到的难题。

在2014年1月17日举办的***期移动开发者联盟线下公开课上,51CTO有幸请到了听云移动研发总监秦杰,百度移动云质量部经理张涛以及云测技术副总裁尹春鹏,为大家带来一场移动开发的饕餮盛宴。 

[[126497]] 

***场由听云移动研发总监秦杰老师给大家带来《打造高性能移动应用的黄金法则》的演讲,秦杰老师首先指出了大部分技术人员在APP性能监控中遇到的与移动应用性能提升相关的代码问题,以此为铺垫,接下来对帮助开发者打造高性能的移动应用做了更深入的分析。

秦杰老师认为,在大多数的情况下,能够影响移动应用性能的罪魁祸首分别为,混合应用性能优化技术、Web应用性能优化技术、Native应用性能优化技术、移动应用性能监测技术与指标。因此,通过这五部分内容,秦杰再次分析了在各个阶段应该如何去操作才能更好的把性能做到***。

下面,从秦杰老师的PPT中,我们明显能够看到之前所指的影响移动应用性能罪魁祸首的10个问题:

接着还分析了目前三种APP的模式的APP优化技术:

混合应用性能的技术优化

Web APP的应用性能优化

秦杰老师还提到,国内接近百分之七十的APP没有在上线之前进行性能检测,甚至在上线以后也没有。他认为,这对于开发者来说是一种非常不好的情况。对于中小公司来说,花了很大的精力来开发一款APP,但是因为本身的性能问题而造成用户流失,是一件非常可惜的事情。***还详细分析了移动APP性能检测的方法—慢交互追踪,对其中的交互指标、网络指标、错误追踪、Crashlog追踪等内容。 

第二节课是由自百度云QA部经理张涛老师为大家带来《移动应用测试—标准先行,平台助力》的演讲。

[[126498]] 

张涛老师一开始就提出,现在许多APP的性能测试在各种因素的影响下下无法得到一个非常精确的精确的结果。在百度内部通过对上百款以及许多测试的结果,梳理出来一份通用的APP测试标准。他认为,一些小团队在开发测试阶段对稳定性、兼容性、或者线上监控的环节无法花太多精掌控。

张涛老师认为崩溃率不能超过百分之零点一,在兼容性方面因为Android的各个版本,以及不同机型、不同地域之间差异较大所以兼容性是Android性能的的重灾区。

紧接着为大家列举Android开源测试工具,图中蓝色的是测试相关工具,最常用的是MonkeyRunner、UIAutomator。绿色的是代码检查工具、橘色是覆盖率检查工具、灰色是CI相关工具、红色是发布相关的工具。这些工具都可以在网上找到相关资料去了解。张涛老师还为大家推荐了APPium这款跨平台的测试工具。

百度内部主要用MTC平台来进行测试,其中分析了MTC所提供的云测试、云众测服务,包括深度性能测试、全面兼容测试、深度遍历测试这些方法,从AndroidAPP和WEBapp的性能和云调试的能力去如何做好相应的测试阶段。他认为,每次团队发布APP除了进行云测之外,还要有一个内测、灰度发布、之后再邀请注册用户做一个测试***才会发布一个版本。在每一个环节都会发现问题,及时修正保证一个高品质的应用上线。

张涛老师还举了一个FaceBook的工程师的例子、他们的APP在非洲加载慢而且经常崩溃。他们针对各种机型设计不同的功能和版本,高端机型的功能会比较全,低端机就比较简单。而且可以检验到功能点的使用情况,看用户更喜欢哪些功能。而图片方面我们通常使用JPG但是这种格式在非洲就显得比较大所以他们用了一种叫webP格式的图片。这种图片的效果与JPG差不多,但是尺寸却要小百分之三十到百分之五十。在不同的机型上加载的图片大小也是不一样的。对于启动慢的问题,在APP启动的时候只启动一些重要的服务,这样减少了加载时间。

 

[[126499]] 

***出场的是来自云测的技术副总裁尹春鹏老师,演讲题目是《移动互联网时代的测试那点事》,在演讲的一开始尹春鹏老师就提出了一个测试人员比较关注的问题:测试时间短、人员少、内容多怎么办?

 

尹春鹏老师认为,在产品上线后,质量改进工作这时候才刚刚开始。为什么这么说呢?尹老师从三个方面给APP测试人员分析:

1,代码再***,测试再充分,真实用户依然会碰到各种崩溃。

2,1%的用户发现问题会联系到开发者。

3,用户反馈的问题,只有5%能够精确定位。 

Testin在2014年推出崩溃大师服务,通过SDK加入到程序后,他们会把里面的堆栈信息,系统日志、以及一些有问题的信息收集起来、然后分析排查,包括崩溃的趋势都会分析出来。通过收集和分析用户手机上发生的闪退和异常,及时的发现问题,代码级的错误定位,详尽的信息分析。

崩溃大师支持的SDK覆盖面非常广,其中包含了Android Java、Android NDK、iOS Ojbc、iOS Objc/C++混编、Cocos2d-x Lua/JS、Unity3d C#等平台。

除了手机APP以外Test in在游戏引擎上也做了一些工作。例如在Cocos2d-x引擎上或者使用lua或者JS来写遇到的更多的问题是脚本报错,虽然引擎没报错,但是已经玩不下去了,因此Testin做了一个插件来应对这种现象。

尹春鹏老师说:在游戏崩溃的时候代码堆栈是最有用的东西。我们将代码堆栈实现了一个符号化的功能。可能代码的可读性非常差的,因为所有的应用在发布之初会对java代码做一个混淆。但是收到的堆栈也是这种混淆过的代码,我们可以将这个混淆化的代码还原回去。这样可以方便开发者更好的解决遇到的问题。

 

移动开发者服务联盟(MDSA)线下公开课是51CTO在2014年开始定期组织的移动开发技术人员线下交流活动,目前仅限北京地区,2015年开始周期为每月1次,每期关注一个话题,范围涉及运维、开发、安全、数据库等多个移动相关领域。

 

责任编辑:chenqingxiang 来源: 51CTO
相关推荐

2015-06-05 20:31:19

MDSA线下公开课

2015-03-05 17:42:34

MDSA线下公开课

2015-06-27 18:48:52

2015-01-20 15:48:34

MDSA线下公开课app质量

2014-12-30 11:26:28

MDSA线下公开课app质量

2015-08-29 19:17:35

移动业务运维

2015-05-31 19:51:39

APPMDSA

2015-01-05 12:44:36

MDSA线下沙龙线下公开课

2012-09-05 11:06:19

2016-04-24 11:40:41

51CTO网+APP产品设计

2010-08-23 14:01:25

互联网

2015-08-17 09:58:34

51CTOMDSA运维技术沙龙

2015-04-01 14:46:47

MDSA跨平台开发

2016-02-01 14:54:33

51CTO 网+公开课UI设计

2014-08-05 16:14:51

腾讯创业吴晓波

2018-12-13 15:30:42

百度智能小程序

2012-07-18 10:30:40

Hadoop培训

2016-12-05 20:20:15

CTO训练营公开课

2015-01-12 17:57:53

可信云服务认证
点赞
收藏

51CTO技术栈公众号