App性能优化概览与平台化实践理论

本文首发于公众号「Android开发之旅」, 欢迎关注java

如今你们都在谈性能优化或者在面试的时候被问到性能优化相关问题,那么咱们为何要作性能优化呢?以及性能优化的难点是什么?在整个项目周期中不一样的阶段该作什么?优化效果如何长期保持?带着这些问题咱们来一块儿看看如何作性能优化。程序员

当一款App在被用户使用的时候,若是出现各类异常、奔溃、卡顿等问题,那么在有耐心的用户也会坚决果断的卸载App的(心里OS:什么S13玩意),那么这对公司、对运营同事来讲都是莫大的打击,你们花钱辛辛苦苦拉来的用户最后却由于App的各类不稳定而流失,脑补一下运营同事看你的表情(技(yi)术(lian)真(xian)棒(qi))。做为程序员的咱们只能说:这个锅咱们不背,由于咱们有解决问题的利器:性能优化。面试

既然要作性能优化,那么就要综合考虑性能在哪些方面表现差?以及咱们如何排查线上问题?还有就是作了性能优化后做为开发的咱们如何长期保持?安全

性能表现差的因素有不少,好比用户直观感觉的App启动慢,用户点击App图标到彻底能操做使用等了过久时间,那么这种就要咱们作启动优化,等了过久后终于能使用了可又出现各类卡顿、丢帧现象,若是你是用户,你会咋想。因此这种咱们要作卡顿等优化。还有一些用户感觉不那么直观的就是内存占用高、抖动频繁,这些用户无感知可是积累到必定程度也会引发奔溃的,影响用户使用。其余方面还有耗电、网络请求慢,奔溃率异常率高等等,这些都是须要咱们着手进行优化的。性能优化

那么在用户使用出现问题的时候,咱们如何第一时间感知到异常,如何第一时间收集到用户的使用日志和使用路径,快速复原“案发”现场,快速的止血呢,这就要接入APM平台了或者咱们自建的APM平台。网络

如何避免性能优化打来的长期开销大的问题呢? 这就要将问题在上线以前解决掉,将问题扼杀在萌芽阶段,还有就是制定一些开发规范,互相review,避免将有问题的代码发上线。布局

因此对整个性能优化的要求就是:性能表现好,线上问题易排查,长期投入较小。post

App性能优化解决方案演进分为不一样的阶段,如项目初期、项目壮大期、项目成熟期,在每一个阶段咱们所作的事情是不尽相同的。性能

项目初期: 在项目初期咱们须要快速的占领市场,应用在不断的作加法,咱们可能只关心奔溃率,没有太多的时间去采集其余各个方面的性能数据,也没有性能检测优化的方案,在早期咱们可能只接入了腾讯的bugly平台,它能够很好的帮助咱们上报异常而且对java和native层的奔溃采集较准确且全面。优化

项目壮大期 : 项目发展到这个阶段,性能优化获得必定程度重视,开始逐步完善性能优化解决方案。开始采集各种指标,但可能还不够全面和深刻,接入成熟的APM平台好比听云,可是排查手段仍是比较单一的,如今检测、优化方案还不成型,尚未造成一套完整的系统。

项目成熟期 项目到这个阶段,App的各类功能已经比较稳定了,文员也比较充足,那么就该考虑精细化运营和重点关注性能相关的问题了。在这个阶段咱们采集的数据比较丰富,手段也多样化,同时也具有了线上线下一整套的性能检测完善的解决方案。甚至会自建APM平台,为何要自建呢?主要是由于第三方APM平台成熟通用,不知足个性化需求,且和内部系统难打通,带来时间成本。App的日活、人均使用时长、运营数据容易留存在三方平台也是很不安全,咱们要数据必须掌握在本身手上。这样能保证APM贴合自身业务特色,知足定制化要求同时也保证了数据的安全。

以上就是对性能优化的各个难点以及不一样阶段所作的事项的一些阐述,主要是一些理论相关的东西,俗话说:“ 磨刀不误砍柴工”,只有理论基础扎实了,才能更好的应用到项目中。后面会继续给你们带来启动优化,内存优化、布局优化、卡顿检测优化、线程网络等各个方面的性能优化系列文章。

推荐阅读:

Android性能优化之启动优化实战

Android性能优化之布局优化实战

如何监测Android应用卡顿?这篇就够了

扫描下方二维码关注公众号,及时获取文章推送。

扫一扫 关注公众号
相关文章
相关标签/搜索