1、CPU处理,Processing
降低CPU GPU功耗
少用定时器
优化I/O操作 尽量不要频繁写入小数据, 最好批量一下性写入
读写大量重要数据时,考虑用dispatch_io 其提供了基于GCD的异步操作文件I/O的API
数据量比较大用SQLite
2、网络, Networking
减少、压缩网络请求。NSMutableURLRequest NSCache 缓存
断电续传
网络不可用不尝试执行网络请求
让用户可以取消长时间或者速度很慢的网络请求
批量传输 (比如广告下载)
3、定位,Location
n定位优化
p如果只是需要快速确定用户位置,最好用CLLocationManager的requestLocation方法。定位完成后,会自动让定位硬件断电
p如果不是导航应用,尽量不要实时更新位置,定位完毕就关掉定位服务
p尽量降低定位精度,比如尽量不要使用精度最高的kCLLocationAccuracyBest
p需要后台定位时,尽量设置pausesLocationUpdatesAutomatically为YES,如果用户不太可能移动的时候系统会自动暂停位置更新
p尽量不要使用startMonitoringSignificantLocationChanges,优先考虑startMonitoringForRegion:
p
n硬件检测优化
p用户移动、摇晃、倾斜设备时,会产生动作(motion)事件,这些事件由加速度计、陀螺仪、磁力计等硬件检测。在不需要检测的场合,应该及时关闭这些硬件
4、图像