日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Android常见崩溃或闪退的问题描述及原因总结、及与性能相关的模块——持续更新

發(fā)布時間:2023/12/13 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Android常见崩溃或闪退的问题描述及原因总结、及与性能相关的模块——持续更新 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、nullpointer——就是使用一個對象的時候還沒有對其進行初始化導致該問題

一般在何種情況下容易出現(xiàn)呢?

(1)父窗口+子窗口同時出現(xiàn)的,父窗口因為某種原因消掉了,子窗口還在,操作子窗口找不到父窗口的pid,就會出現(xiàn)問題

(2)加載過程中進行刷新或者其他點擊操作,可能某種資源還沒有初始化成功,就會出現(xiàn)該問題

(3)異常情況下,比如斷網(wǎng)了,比如需要連接的設備沒有連接,則相應資源拿不到,此時點擊某些按鈕,也會出現(xiàn)該問題

2、OOM——在視頻圖片的來回切換,比如橫豎屏的來回切換過程中比較容易出現(xiàn),因為本身機子比較卡,內(nèi)存小的話,加載比較大的圖片或視頻就容易這個問題

解決方案:

(1)可以把加載的處理從上層挪到底層,比如從上層的Java層挪到底層的C++層,這樣就會比較省內(nèi)存

(2)針對不同的像素的手機做不同的適配(比如圖片像素也發(fā)生變化,否則高像素的圖片在低像素的手機上也沒有感知)

3、卡死——遇到過很多次,開發(fā)的解釋基本上都是前一個界面是一個window,后一個界面也是一個window,然后前一個界面切到后一個界面的時候,前面的window沒消掉,導致覆在了后一個界面上方,結果就出現(xiàn)了卡死的問題

4、IOS上很容易出現(xiàn)一類問題——也就是安卓上的nullpointer的問題,是nil object的問題,特別容易出現(xiàn)的就是將nil object insert into dict中時,必然崩潰,而且這種情況很多,因為很多數(shù)據(jù)結構都用字典

5、內(nèi)存不足導致的崩潰——比如說內(nèi)存沒有釋放,一長條列表下有N個資源需要展示,不斷下拉,上面的資源沒有釋放,所分配的內(nèi)存越來越多,最后當然會崩潰

6、與性能相關的模塊——

容易出現(xiàn)內(nèi)存問題的模塊——

(1)圖片相關:連續(xù)發(fā)送圖片和查看圖片,重點是查看圖片(比如可循環(huán)來回查看圖片,之前的內(nèi)存都不釋放,就可能出現(xiàn)問題);尤其是查看的單張圖片很大的話

(2)視頻相關:不斷反復觀看返回繼續(xù)觀看,可能播放器的資源沒有釋放,導致內(nèi)存不斷增長

CPU問題——

(1)錯誤處理沒有加超時不斷重試,放在死循環(huán)里了——只要搞一個錯誤數(shù)據(jù),程序就會反復請求,結果導致程序必崩

(2)網(wǎng)絡請求:網(wǎng)絡請求很長時間內(nèi)拿不到回應,需要設置重試和超時時間,并且在不同的網(wǎng)絡情況下要進行不同關注,目前主要是在WiFi和4G下

(3)處理圖片解析、視頻解析等

(4)一直不停的在UI上進行更新處理,比如說網(wǎng)速條由很多個小點點組成,然后網(wǎng)速不停在變化,這些個小點點就需要不停的更新,程序需要不停的去面UI;以及下載的進度的展示,比如是通過一個圓圈或者一個橫條展示進度,如果每收到一個0.1%的回調(diào),就在UI上更新,就會導致CPU不斷升高,手機很燙,最后崩潰

對于這個情況來說,如何處理呢?

網(wǎng)速條的小點變化,需要研究不同的IOS系統(tǒng)下的不同函數(shù),出現(xiàn)過IOS9.3剛出現(xiàn)時,程序崩潰,因為系統(tǒng)API的兼容問題

下載進度展示:可以不用每收到一個回調(diào)就更新界面,可以等待每5%的時候,再更新UI

7、與兼容相關的問題——

不同的sdk的API,或者不同IOS系統(tǒng)的API,具體調(diào)用時可能會有差異,另外不同安卓手機,可能rom在廠家進行了一些處理之后,也會有差異,針對不同的情況都需要進行處理;

所以根據(jù)2-8原理,優(yōu)先保證占比最多的系統(tǒng)和機型的兼容,之后再針對更多機型進行適配。

在安卓端,會存在很多低端機,比如幾年前的老手機,本身配置較低,有些處理在這些機器上就跑不起來;或者是:操作系統(tǒng)的版本很低

在IOS端,目前的4S、5、5C都可以算在低端機的范疇上,IOS7就是低端系統(tǒng),這些系統(tǒng)上很容易因為本身配置低更容易出現(xiàn)性能問題,表現(xiàn)出來的就是同樣的操作,在這些機器上更容易閃退

5S以下的機器都是32位的系統(tǒng),以上都是64位的系統(tǒng),針對數(shù)據(jù)的處理也需要特別對待,比如后臺服務器升級了,數(shù)據(jù)都升級成64位的了,那對于32位的系統(tǒng)要怎么處理要提前確認好

總結

以上是生活随笔為你收集整理的Android常见崩溃或闪退的问题描述及原因总结、及与性能相关的模块——持续更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。