優(yōu)化應用的必要性:
如果一個應用運行出現(xiàn)卡頓冯袍,甚至是在使用過程中出現(xiàn)崩潰碾牌,這樣的應用對用戶來說是很不友好的舶吗。用戶體驗不好就會失去市場择膝,沒有用戶會愿意使用這樣的應用。
影響用戶體驗的原因:
1.應用崩潰:
應用崩潰是用戶體驗不友好的重要原因腹侣,也是最常見的原因之一。而導致應用崩潰的原因卻有多種多樣饺律,大體上主要是由于程序員寫的代碼不夠嚴謹跺株,考慮問題不全面,出現(xiàn)了一些意料之外的情況巧颈。
針對這種問題程序員需要學會創(chuàng)建崩潰異常處理程序袖扛,如果應用崩潰,先向用戶發(fā)一條提示信息蛆封。并且在崩潰日志中收集信息,以便于及時改進修復垒迂。
2.耗費用戶大量的流量:
流量的越來越不夠用的今天妒蛇,如果你的應用網絡請求花費了用戶太多的流量,這也是限制用戶對應用的使用吏奸。
解決這類問題主要通過減少請求次數(shù)陶耍,能只請求一次的,就可以只請求一次泊碑,存在本地毯欣,下次進入的時候直接本地讀取,不再請求腹忽。此外,對于需要下載較大資源的時候窘奏,可以監(jiān)聽網絡狀態(tài)提示用戶在連接WiFi是下載。
3.主線程阻塞:
主線程阻塞一些開發(fā)者會犯的又一個常見錯誤着裹,在主線程中做復雜的算法领猾,網絡請求之類需要花費大量時間的操作時瘤运,會導致應用卡在一個界面很久而且無法進行別的操作匠题。
合理使用多線程是解決這類問題有效方法。把需要花費大量時間的操作放在其他線程里面執(zhí)行郁季。
4.內存泄漏:
ios5.0之后引入了Automatic Reference Count(ARC)钱磅,實現(xiàn)自動內存管理。很好的解決這類問題年柠,但是某些第三方庫褪迟,或者某些代碼中使用的是手動管理內存,在集成的時候需要在編譯器Bulid Phases中對該文件標記為-fno-objc-arc實現(xiàn)手動內存管理掀抹。
5.電池消耗:
現(xiàn)在的智能手機明顯感到電量越來越不夠用了心俗。一個好的盡量為用戶節(jié)省電量。影響電池壽命的原因主要是使用了揪利,CLLocationManager類的startUpdatingLocation方法吠谢,而且不使用土童,stopUpdatingLocation方法献汗。以及長期調用相機,掃描二維碼之類的接口對電池的消耗特別大罢吃。
開發(fā)者需要合理使用這類接口昭齐,在不需要時及時關閉。
6.數(shù)據(jù)類型使用不恰當:
每一種數(shù)據(jù)類型都有它自己的作用,就拿可變數(shù)組和不可變數(shù)組來說阱驾。雖然可變數(shù)組擁有不可變數(shù)組的所有功能,甚至有更多的操作丧荐。但是可變數(shù)組開銷比不可變數(shù)組更大喧枷。作為一名優(yōu)秀的開發(fā)者應該做到只要能用不可變數(shù)組完成的任務堅決不使用可變數(shù)組。