iOS性能优化基础篇(0)
来源:互联网 发布:软件会员卡积分下载 编辑:程序博客网 时间:2024/05/16 11:28
iOS性能优化分析
首先要熟悉几个概念
- PNG 和 JPG 的区别是什么?
png格式的图片有alpha通道,jpeg则没有。png无损压缩,jpeg允许你选择0-100%的压缩质量。如果需要alpha通道(透明),就只能用png格式. - CPU 和 GPU
- 如果想看看两者的区别,先得了解iOS视图背后的层级结构原理 上图中的最底下一行是硬件层,由GPU和CPU组成。 我们经常说到的硬件加速其实是指OpenGL,Core Animation/UIKit基于GPU之上对计算机图形合成以及绘制的实现,直到目前为止,iOS上的硬件加速能力还是大大领先与android,后者由于依赖CPU的绘制,绝大多数的动画实现都会让人感觉明显的卡顿。
iOS视图渲染架构和原理
- UIView类的许多基础行为严重依赖于另外一个2. 对象。 UIKit每个视图对象的背后都有一个CoreAnimation层对象,它是一个CALayer类的实例,该类为视图内容的渲染,布局,合成以及动画提供基础性的支持
- 和Mac OS不同的是, ios将CoreAnimation集成到视图渲染实现的核心。 由于SDK中UIKit提供了透明的接口,开发者大部分情况下,不必去关心和直接访问CoreAnimation。 但是如果要实现特别复杂的渲染和动画,就需要使用到CoreAnimation的接口支持了
- CoreAnimation的基础 CoreAnimation利用了硬件加速和架构上的优化来实现了快速渲染和实时动画。当视图的drawRect方法首次被调用时,层会将描画的结果捕捉到一个位图中,并在随后的重绘时,尽可能使用这个位图,以避免开销太大。CoreAnimation把和视图对象相关联的层存储在层树的层次结构中。 可以在层树中添加特殊层,实现不同的效果。层对象是IOS渲染和布局系统的推动力,大多数视图属性实际上是其层对象属性的一个很薄的封装。表示树: 层在展示给用户时当前的状态。渲染树:运行在单独的线程上,不影响app主线程, 实现动画渲染效果。
如何优化视图加载速度
离屏绘制(Offscreen drawing)
离屏绘制(Offscreen drawing)的话就是指GPU一边在当前屏幕上进行绘制,而另一边在屏幕还没有处理图像信息之前通过CPU来生成图像信息的处理过程 在iOS当中,离屏绘制在以下的情况下会自动触发:
0 0
- iOS性能优化基础篇(0)
- iOS 基础性能优化技巧(二)
- iOS程序性能优化(0)
- Spark性能优化基础篇
- 优化图形性能(iOS)
- IOS性能优化(转)
- UI基础-iOS黑马-UITableView5-Cell的性能优化
- JEE 应用服务器性能优化指南(基础篇)
- (转)Spark性能优化指南——基础篇
- java性能优化总结(1):基础篇
- Spark性能优化指南 基础篇
- PHP性能优化--基础入门篇
- Spark性能优化指南:基础篇
- spark性能优化指南基础篇
- Spark性能优化指南:基础篇
- Spark性能优化指南-基础篇
- ORACLE 性能优化基础
- MySQL性能优化基础
- iBatis的分页
- NSCache
- 聊聊创业早期的人才招聘
- certain foods to create brand-new delicious
- Activity过渡动画详解
- iOS性能优化基础篇(0)
- Nginx+passenger部署ruby on rails应用
- PG学习异常总结篇:遇到并处理过的异常-持续更新
- PHPcms微信支付
- 数据库(三)关系数据库标准语言SQL(1)
- bug
- DAY28:leetcode #41 First Missing Positive
- Android开发V4包和V7包版本不一遇到的问题填过的坑
- iOS多线程到底不安全在哪里?