iOS 為何會軟體閃退,具體是何原理呢?
01-01
最近知乎滴客戶端經常閃退,想知道為何會閃退呢?
閃退一般都是多重release、野指針導致,還有數組越界(這種要完全歸咎於代碼控制不嚴,對新手來說是出現最多的),至於內存不足之類的問題,雖然也有,但已經可以算是非主流了。
閃退其實就是程序異常了,對異常又沒有處理措施,操作系統將你進程關了。
異常包括:
1、最常見的是非法訪問內存地址。2、程序保存的文件損毀,這時在讀取配置文件時異常。3、網路異常,網路由於延遲,或者其他問題,導致發送數據異常。程序沒有很好的處理預防機制。我玩部落衝突的時候發現他們這部分處理的很好。大概用了異常處理機制,以及鎖的方法。遊戲很成功,技術實力也很深厚。
訪問了已經釋放的內存。
簡言之就是向計算機請求了已經不存在的東西。內存不足的自我保護機制。
可以重裝app。
優化系統。
重刷固件。touch用知乎再開qq都沒問題,iPhone就更浮雲了。那我就佔個坑回答一下.小生不才,分析一下,有錯誤請指出.
根據字面理解,應用閃退不等於應用崩潰.
本人只針對應用閃退進行回復.
我們公司做產品的,我開發的應用大約一年左右了.
其中大大小小的第三方也集成了很多.
看了一下其他回答,不知道各位有沒有遇到過.
應用閃退:不走應用初始化第一個方法,不初始化任何第三方崩潰.不走預留的任何後門.
在應用點開的一瞬間,瞬間關閉.連開機動畫都不顯示.無從排查.
卡斷點啊笨蛋?
說得好,臉上數據線,卡斷點在第一個方法,編譯運行.
運行成功,所有方法執行正常.
過一段時間,又會出現閃退.只要不連線編譯運行,永遠都是點開閃退.無法排查
連線編譯,運行正常.
目前此問題 出現在 ios 10.3 ios9.0.1
其餘設備運行正常.
當老大問起我的時候,我只能告知他,我無法解決.應該是系統原因.
至今還沒有重點解決這個問題.如果哪位大神知道,望告知分享.
等到我尋找到答案再來編輯.
以上
就是一個uncaught exception ,主函數裡面沒有catch 到所有可能的exception ,導致沒有提示就退出了
碰到最多的是內存不足
最常見的就是內存錯誤了,不過有了ARC之後好多了;然後就是邊界異樣,比如數組訪問越界。
推薦閱讀:
※如何看待蘋果手機 12 月 2 日發生的大面積黑屏重啟轉圈故障?
※蘋果伺服器是如何承載全球移動設備Push請求的?
※iOS 上有哪些程序員必備 App?
※金山詞霸 iOS 版是如何實現長時間後台查詞以及發音的?
※為什麼iPhone充電從99%到100%特別慢?