Android性能优化篇 [ 谷歌官方 ].pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
目 录 性能优化典范 第一季 第二季 第三季 Android性能优化之渲染篇 Android性能优化之运算篇 Android性能优化之内存篇 Android性能优化之电量篇 本文档使用 看云 构建 - 2 - 性能优化典范 性能优化典范 第一季 第二季 第三季 本文档使用 看云 构建 - 3 - 第一季 第一季 原文出处 http//hukai.me/android-performance-patterns/ 2015新年伊始 ,Google发布了关于Android性能优化典范的专题 ,一共16个短视频 ,每个3-5分钟 ,帮 助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工 作原理 ,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开 , Android的渲染机制 ,内存与GC ,电量优化。下面是对这些问题和建议的总结梳理。 0)Render Performance 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度 ,他们希望App能 够有更多的动画 ,图片等时尚元素来实现流畅的用户体验。但是Android系统很有可能无法及时完成那些 复杂的界面渲染操作。Android系统每隔16ms发出VSYNC信号 ,触发对UI进行渲染 ,如果每次渲染都成 功 ,这样就能够达到流畅的画面所需要的60fps ,为了能够实现60fps ,这意味着程序的大多数操作都必须 在16ms内完成。 如果你的某个操作花费时间是24ms ,系统在得到VSYNC信号的时候就无法进行正常渲染 ,这样就发生了 丢帧现象。那么用户在32ms内看到的会是同一帧画面。 本文档使用 看云 构建 - 4 - 第一季 用户容易在UI执行动画或者滑动ListView的时候感知到卡顿不流畅 ,是因为这里的操作相对复杂 ,容易发 生丢帧的现象 ,从而感觉卡顿。有很多原因可以导致丢帧 ,也许是因为你的layout太过复杂 ,无法在 16ms内完成渲染 ,有可能是因为你的UI上有层叠太多的绘制单元 ,还有可能是因为动画执行的次数过 多。这些都会导致CPU或者GPU负载过重。 我们可以通过一些工具来定位问题 ,比如可以使用HierarchyViewer来查找Activity中的布局是否过于复 杂 ,也可以使用手机设置里面的开发者选项 ,打开Show GPU Overdraw等选项进行观察。你还可以使用 TraceView来观察CPU的执行情况 ,更加快捷的找到性能瓶颈。 1)Understanding Overdraw Overdraw(过度绘制)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次的UI结构里 面 ,如果不可见的UI也在做绘制的操作 ,这就会导致某些像素区域被绘制了多次。这就浪费大量的CPU以 及GPU资源。 本文档使用 看云 构建 - 5 - 第一季 当设计上追求更华丽的视觉效果的时候 ,我们就容易陷入采用越来越多的层叠组件来实现这种视觉效果的 怪圈。这很容易导致大量的性能问题 ,为了获得最佳的性能 ,我们必须尽量减少Overdraw的情况发生。 幸运的是 ,我们可以通过手机设置里面的开发者选项 ,打开Show GPU Overdraw的选项 ,可以观察UI上 的Overdraw情况。 本文档使用 看云 构建 - 6 - 第一季 蓝色 ,淡绿 ,淡红 ,深红代表了4种不同程度的Overdraw情况 ,我们的目标就是尽量减少红色 Overdraw ,看到更多的蓝色区域。 Overdraw有时候是因为你的UI布局存在大量重叠的部分 ,还有的时候是因为非必

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档