课程简介
出iOS App开发时的若干性能优化经验,基本覆盖了iOS App性能优化的方方面面
目标收益
帮助学员快速掌握App性能优化的各个方面。
培训对象
本课程对于千万级用户的App产品和小量的App产品都适用,尤其是目前存在性能问题对iOS App。
课程大纲
抽丝剥茧看性能——iOS性能问题概述 |
1. iOS性能问题分类 2. iOS性能问题定位方法 |
想说爱你不容易——TableView性能问题 |
1. UITableView的简单认识 2. 重用的艺术 3. 按需加载 |
高性能的循环 | 介绍高效编写循环语句的方法,显著提高App性能 |
一些常见性能问题 |
1. 透明度问题 2. 圆角优化 3. XIB和Storyboard 4. 避免日期格式转换 |
见微知著——iOS渲染原理 |
1. Core Animation Pipeline 2. UIBlurEffectView 3. 光栅化技术 4. Offscreen Rending |
好借好还,再借不难——iOS内存泄漏 |
1. MRC和ARC 2. MLeakFinder 3. 场景1:Block循环引用 4. 场景2:Timer 5. 使用Leaks和Allocation工具检查内存泄露 6. UIImage的2种加载方式对内存的影响 7. 使用队列,解决对同一个资源竞争读写的问题 |
感受如丝般润滑——iOS流畅度问题 |
1. 黄金16ms 2. iOSRunloop机制 3. 避免卡顿的解决方案 4. 检查FPS的利器:Core Animation 5. 使用Bugly监测卡顿 |
课堂练习 |
1. 使用工具排查公司App的内存泄露问题 2. 使用工具排查公司App的卡顿问题 |
高速公路任我行——iOS网络访问优化 |
1. 数据缓存 2. 重试机制 3. 接口合并 4. 增量更新 5. 弱网优化之道 |
数据,还是数据——SQLite调优 |
1. 快速查找:按需获取数据列 2. 快速查找:提前获取列索引 3. 快速查找:ContentValues的容量调整 4. 快速查找:建立索引 5. 索引真的好么? 6. 编译SQL语句 7. 显示使用事务 8. 及时关闭Cursor 9. 把耗时操作放在异步线程中 10. 微信对SQLite进行的重构 |
只选对的,不选贵的——使用正确的API |
1. 使用合适的容器 2. imageNamed与imageWithContentsOfFile 3. 缓存NSDateFormatter的结果。 4. 寻找(NSDate *)dateFromString:(NSString )string的替换品 5. 不要随意使用NSLog() |
越用越卡为哪般——图片渲染优化 |
1. 图片渲染优化方案 2. ImageServer |
一触即发——App启动优化最佳实践 |
1. 闪屏的优化方案 2. App启动流程 3. 统计App启动时间 4. 延迟初始化和异步初始化 |
抽丝剥茧看性能——iOS性能问题概述 1. iOS性能问题分类 2. iOS性能问题定位方法 |
想说爱你不容易——TableView性能问题 1. UITableView的简单认识 2. 重用的艺术 3. 按需加载 |
高性能的循环 介绍高效编写循环语句的方法,显著提高App性能 |
一些常见性能问题 1. 透明度问题 2. 圆角优化 3. XIB和Storyboard 4. 避免日期格式转换 |
见微知著——iOS渲染原理 1. Core Animation Pipeline 2. UIBlurEffectView 3. 光栅化技术 4. Offscreen Rending |
好借好还,再借不难——iOS内存泄漏 1. MRC和ARC 2. MLeakFinder 3. 场景1:Block循环引用 4. 场景2:Timer 5. 使用Leaks和Allocation工具检查内存泄露 6. UIImage的2种加载方式对内存的影响 7. 使用队列,解决对同一个资源竞争读写的问题 |
感受如丝般润滑——iOS流畅度问题 1. 黄金16ms 2. iOSRunloop机制 3. 避免卡顿的解决方案 4. 检查FPS的利器:Core Animation 5. 使用Bugly监测卡顿 |
课堂练习 1. 使用工具排查公司App的内存泄露问题 2. 使用工具排查公司App的卡顿问题 |
高速公路任我行——iOS网络访问优化 1. 数据缓存 2. 重试机制 3. 接口合并 4. 增量更新 5. 弱网优化之道 |
数据,还是数据——SQLite调优 1. 快速查找:按需获取数据列 2. 快速查找:提前获取列索引 3. 快速查找:ContentValues的容量调整 4. 快速查找:建立索引 5. 索引真的好么? 6. 编译SQL语句 7. 显示使用事务 8. 及时关闭Cursor 9. 把耗时操作放在异步线程中 10. 微信对SQLite进行的重构 |
只选对的,不选贵的——使用正确的API 1. 使用合适的容器 2. imageNamed与imageWithContentsOfFile 3. 缓存NSDateFormatter的结果。 4. 寻找(NSDate *)dateFromString:(NSString )string的替换品 5. 不要随意使用NSLog() |
越用越卡为哪般——图片渲染优化 1. 图片渲染优化方案 2. ImageServer |
一触即发——App启动优化最佳实践 1. 闪屏的优化方案 2. App启动流程 3. 统计App启动时间 4. 延迟初始化和异步初始化 |