资讯专栏INFORMATION COLUMN

Android的性能优化

dackel / 3358人阅读

摘要:无线可在手机端直接实现的功能,查看任意界面的布局。可对进行快速的内存流量电量帧率流畅度性能测试开发日志的查看日志查看网络数据包的抓取内部参数的调试真机代码耗时统计等。

性能指标

布局复杂度:布局复杂会导致布局需要更长的时间,从而导致进入应用慢、页面切换慢

耗电量:耗电量大会导致机器发热、缩短机器的有效使用时长

内存:内存消耗大会导致频繁GC,GC时会暂停其它工作,导致页面卡顿;内存泄露会导致剩余可用内存越来越小;内存不足会导致应用异常

网络:频繁的网络访问会导致耗电和影响应用的性能;网络交互数据大小会影响网络传输的效率

程序执行效率:糟糕的代码会严重影响程序的运行效率,UI线程过多的任务会阻塞应用的正常运行,长时间持有某个对象会导致潜在的内存泄露,频繁的IO操作、网络操作而不用缓存会严重影响程序的运行效率

布局复杂度的优化

在Android中多带带的布局性能:FrameLayout>LinearLayout>RelativeLayout

三个标签减少布局的层级结构:

include: 用于一些复用性很高的布局文件,比如一个App的标题栏

merge:减少View树的层级(注意:merge标签只能作为XML布局的根标签使用)

ViewStub:懒加载那些只有在特定情况下才会出现的界面(比如没有网络的时候),性能要高于给View设置visiblity="gone"

GPU Overdraw(过度绘制)

GPU过度绘制就指的是在屏幕一个像素上绘制多次(超过一次),过度绘制其实是一个性能和设计的交叉点。我们在设计上追求很华丽的视觉效果,但一般来说这种视觉效果会采用非常多的层叠组件来实现,这时候就会带来过度绘制的问题,下面这张图展示了过度绘制的颜色与次数

检测的工具:

HierarchyViewer 可查看布局层次结构,View绘制时耗时。

无线UIViewer可在手机端直接实现HierarchyViewer的功能,查看任意界面的UI布局。
无线UIViewer下载

有关于overdraw的更多信息,请参阅:overdraw优化

Android中耗电量

虽然大多数应用都不会过多的消耗电量,不过现在很多APP都集成了IM、地图定位等功能,还是简单介绍一下

后台Service应该尽可能减少唤醒CPU的次数,比如IM类业务的长连接心跳、QQ提醒待机闹钟类业务的alarm硬时钟唤醒

Wi-Fi比蜂窝数据,包括2G(GPRS)、3G更省电,尽量在Wi-Fi下传输离线资源

Wake locks(一种锁机制,有些文献翻译成唤醒锁。)持有时间过长会导致耗电增加

CPU灭屏休眠需要做一个判断,就是看还有没有应用持有wake locks,如果有,CPU将不会休眠。有些应用不合理地申请wake locks,或者申请了忘记释放,都会导致手机无法休眠,耗电增加。

第三方检测内存泄漏的工具 LeakCanary

LeakCanary是一个检测内存泄露的开源类库:
Github LeakCanary
中文使用说明

GT-官方网站

GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment)。可对APP进行快速的CPU、内存、流量、电量、帧率/流畅度性能测试、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12745.html

相关文章

  • 优化 - 收藏集 - 掘金

    摘要:使用的快捷键这里是一性能优化典范掘金摘要新年伊始,发布了包含个短视频的性能优化典范专题,详解系统中有关性能问题的底层工作原理,并介绍了如何通过工具找出性能问题以及提升性能的建议。 渐进式加载 - 提高用户体验度 - Android - 掘金前言: 我们在PC端用浏览器看图片的时候,经常是先看到一张模糊图,然后再渐渐的变得清晰,这种情况在看漫画的时候尤其常见(模糊图如下),这种效果就叫做...

    Gu_Yan 评论0 收藏0
  • Android性能优化问题总结

    摘要:性能优化第七篇严苛模式检测耗时与内存问题意思为严格模式,是用来检测程序中违例情况的开发者工具。但是用来评测一个应用是否真的卡顿存在两个问题,我们可以使用帧率检测。  性能优化这块,分为UI性能优化、内存优化、数据库优化、网络优化、耗电优化等等。可以从1.如何发现问题,2.怎么解决问题,3.解决效果对比,这几个方面去描述。举个简单例子——UI优化,可以从 UI出现什么问题(卡顿不流畅),怎么查...

    yibinnn 评论0 收藏0
  • 性能优化全新思路!实践腾讯、字节、阿里、百度、网易等互联网公司项目实战+案例分析(附PDF源码)

    摘要:不努力不奋斗,可能就会在基层一辈子止步不前。不过,只一句,如果你还在做这一行,还是一名程序猿媛,想走上坡路的你,也许我这到手的十几家一线互联网公司性能优化项目实战可能会对你有所帮助。 ...

    ytwman 评论0 收藏0
  • Android面试 - 收藏集 - 掘金

    摘要:写给小白的基础面试笔试题二掘金序言找工作绝逼是一件非常痛苦的事,尤其是年底找工作,当然了,这其中大部分原因肯定是因为只是个没有经验的,还没毕业的大学生。 Android 性能优化典范 - Android - 掘金摘要:新年伊始,Google发布了包含16个短视频的Android性能优化典范专题,详解Android系统中有关性能问题的底层工作原理,并介绍了如何通过工具找出性能问题以及提升...

    pakolagij 评论0 收藏0
  • Android App 性能优化实践

    摘要:性能优化实践原文链接本文记录了优化需要用到的工具和以及在实践中的。关于优化,推荐一篇博客,给我很大帮助,性能优化系列。 Android App 性能优化实践 原文链接: http://stackvoid.com/performance-tuning-on-android/ 本文记录了Android App优化需要用到的工具和以及在实践中的Tips。也算对我这半年来部分工作的...

    sPeng 评论0 收藏0
  • Android程序员完全没时间提升自己怎么办?

    摘要:昨天有个小学弟给我发来微信,说他现在有点后悔选择开发了,月月光不说,还加班特别严重,平时也没有属于自己的时间去学习,问我刚毕业的时候是不是这样。每天回到出租屋都是倒头就睡,非常累,也没有其他时间提升自己的技术。 昨天有个小学弟给我发来微信,说他现在有点后悔选择Android开发了,月月光不说...

    kohoh_ 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<