Android 兼容問(wèn)題處理建議
和硬件打交道的開(kāi)發(fā)多多少少都會(huì)遇到過(guò)因?yàn)樵O(shè)備不同而出現(xiàn)的代碼錯(cuò)誤,這里分享
一下自己那為數(shù)不多的經(jīng)驗(yàn),希望能幫到大家。
首先我的分析思路有以下幾點(diǎn):
1 具體查看代碼的執(zhí)行報(bào)錯(cuò),打比方說(shuō)一樣的方法在A設(shè)備是能正常運(yùn)行的,而B(niǎo)設(shè)備會(huì)報(bào)錯(cuò)。
當(dāng)然這是在理想的情況下,而我們安卓開(kāi)發(fā)經(jīng)常都是沒(méi)有對(duì)應(yīng)的設(shè)備的,這點(diǎn)比較糟心。
個(gè)人解決方法:現(xiàn)在網(wǎng)上有很多云真機(jī)服務(wù),雖然價(jià)格比較貴(1分鐘1塊錢(qián)),但是能快速找到
對(duì)應(yīng)手機(jī)進(jìn)行調(diào)試解決問(wèn)題,我覺(jué)得還是可以嘗試使用的。
真機(jī)測(cè)試還提供了錯(cuò)誤日志,截圖等功能,雖然還是有局限,但是一般問(wèn)題能處理了。
2 尋找設(shè)備間的區(qū)別(系統(tǒng)版本)
例如:Android的版本區(qū)別,例如 7.0的部分設(shè)備打開(kāi)實(shí)體文件需要額外添加?
一個(gè)私有文件權(quán)限,而6.0的設(shè)備根本不需要。而6,0以上的所有設(shè)備調(diào)用文件讀取權(quán)限
都需要?jiǎng)討B(tài)讀取判斷,這就是版本之間的差異了。
個(gè)人解決方法:直接搜索出現(xiàn)問(wèn)題的對(duì)應(yīng)系統(tǒng),看看是不是要針對(duì)性兼容處理以一下,
正常來(lái)說(shuō)官方更新系統(tǒng)都會(huì)額外增加一些限制一些優(yōu)化,而這些處理有時(shí)候我們也要跟著
優(yōu)化一下對(duì)應(yīng)代碼。
3 尋找設(shè)備間的區(qū)別(廠家)
例如:同一個(gè)系統(tǒng)版本的小米和華為手機(jī)測(cè)試同一套代碼,而華為沒(méi)有出現(xiàn)問(wèn)題,小米卻
閃退了。這樣的問(wèn)題也偶爾會(huì)發(fā)生的,
緣由也是因?yàn)閺S家對(duì)硬件軟件做了不少修改,導(dǎo)致一些底層的函數(shù)代碼發(fā)生了改變,
具體還是要看代碼走到哪一步出現(xiàn)了異常,定點(diǎn)修改對(duì)應(yīng)問(wèn)題。
4 用戶操作導(dǎo)致的異常
這個(gè)情況很常見(jiàn),不過(guò)經(jīng)常會(huì)被人忽略掉。起因多半是因?yàn)橛脩魶](méi)有按照正常
操作而導(dǎo)致的奇怪問(wèn)題,而這些操作問(wèn)題有時(shí)候也會(huì)反應(yīng)到系統(tǒng)上。然后反饋問(wèn)題的時(shí)候
又只會(huì)有最終結(jié)果而沒(méi)有操作過(guò)程,進(jìn)而導(dǎo)致開(kāi)發(fā)經(jīng)常摸不著頭腦??赡軌焊筒皇?/p>
代碼的問(wèn)題,而是業(yè)務(wù)邏輯發(fā)生了變化,這里特意提一下,實(shí)際情況下是需要留意的。
此外如果是做其他硬件開(kāi)發(fā)的話,也是先從基本的設(shè)備比較開(kāi)始,
1? 設(shè)備的區(qū)別
2? 設(shè)備是否存在硬件故障
3? 設(shè)備的系統(tǒng)版本是否一致
4? 設(shè)備運(yùn)行的代碼是否一致
5? 設(shè)備的操作是否一致
6? 設(shè)備的運(yùn)行環(huán)境是否一致