优化应用的必要性:
如果一个应用运行出现卡顿,甚至是在使用过程中出现崩溃,这样的应用对用户来说是很不友好的。用户体验不好就会失去市场,没有用户会愿意使用这样的应用。
影响用户体验的原因:
1.应用崩溃:
应用崩溃是用户体验不友好的重要原因,也是最常见的原因之一。而导致应用崩溃的原因却有多种多样,大体上主要是由于程序员写的代码不够严谨,考虑问题不全面,出现了一些意料之外的情况。
针对这种问题程序员需要学会创建崩溃异常处理程序,如果应用崩溃,先向用户发一条提示信息。并且在崩溃日志中收集信息,以便于及时改进修复。
2.耗费用户大量的流量:
流量的越来越不够用的今天,如果你的应用网络请求花费了用户太多的流量,这也是限制用户对应用的使用。
解决这类问题主要通过减少请求次数,能只请求一次的,就可以只请求一次,存在本地,下次进入的时候直接本地读取,不再请求。此外,对于需要下载较大资源的时候,可以监听网络状态提示用户在连接WiFi是下载。
3.主线程阻塞:
主线程阻塞一些开发者会犯的又一个常见错误,在主线程中做复杂的算法,网络请求之类需要花费大量时间的操作时,会导致应用卡在一个界面很久而且无法进行别的操作。
合理使用多线程是解决这类问题有效方法。把需要花费大量时间的操作放在其他线程里面执行。
4.内存泄漏:
ios5.0之后引入了Automatic Reference Count(ARC),实现自动内存管理。很好的解决这类问题,但是某些第三方库,或者某些代码中使用的是手动管理内存,在集成的时候需要在编译器Bulid Phases中对该文件标记为-fno-objc-arc实现手动内存管理。
5.电池消耗:
现在的智能手机明显感到电量越来越不够用了。一个好的尽量为用户节省电量。影响电池寿命的原因主要是使用了,CLLocationManager类的startUpdatingLocation方法,而且不使用,stopUpdatingLocation方法。以及长期调用相机,扫描二维码之类的接口对电池的消耗特别大。
开发者需要合理使用这类接口,在不需要时及时关闭。
6.数据类型使用不恰当:
每一种数据类型都有它自己的作用,就拿可变数组和不可变数组来说。虽然可变数组拥有不可变数组的所有功能,甚至有更多的操作。但是可变数组开销比不可变数组更大。作为一名优秀的开发者应该做到只要能用不可变数组完成的任务坚决不使用可变数组。
网友评论