剛進(jìn)新公司的時(shí)候華為市場(chǎng)對(duì)APP提示的是不兼容android8.0,查看了下原代碼發(fā)現(xiàn)項(xiàng)目基本還停留在6.0的適配上,所以就大致適配了7.0、8.0,先記錄幾個(gè)主要的問題點(diǎn),后續(xù)更新。首先必須的把SdkVersion提升到26把(華為市場(chǎng)提示不兼容8.0也是這個(gè)原因),然后google了一圈。
大致google+百度了一大圈,基本鎖定會(huì)導(dǎo)致程序異常+功能失效的幾個(gè)點(diǎn)。
①:通知(會(huì)收不到通知)
②:懸浮窗(7.0、8.0)(會(huì)崩潰)
③:自適應(yīng)圖標(biāo)(圖標(biāo)終于有所關(guān)注)
一:通知渠道
Android O版本對(duì)通知做了規(guī)范性的控制,強(qiáng)制用戶在發(fā)送通知的時(shí)候,對(duì)通知進(jìn)行系統(tǒng)性的管理,新增了channel渠道功能,貌似Android P版本對(duì)與這一點(diǎn)也做了強(qiáng)調(diào),使用戶能夠更好的管理通知,做到有目的性的屏蔽通知。下面上相關(guān)性的代碼
NotificationChannel mChannel =new NotificationChannel("channel_01","消息推送", NotificationManager.IMPORTANCE_DEFAULT);
notificationManager.createNotificationChannel(mChannel);//創(chuàng)建一個(gè)通知渠道
其他和原設(shè)置一樣即可。
二:懸浮窗
在一些廣播中需要彈出對(duì)話框的應(yīng)用場(chǎng)景,沒有依附的activity,這個(gè)時(shí)候就可以用懸浮窗,相關(guān)適配以及源碼有注釋自行查看。附申請(qǐng)權(quán)限源碼


三:自適應(yīng)圖標(biāo)?
Android O版本對(duì)圖標(biāo)做了修改,總體上來講使Android APP從桌面就開始高大上起來了,加入了一些列動(dòng)畫,詳細(xì)的可以看這篇博文。
????????另外:設(shè)計(jì)到一些需要訪問清單文件,或者是pakageManager類的時(shí)候,適配8.0需要加入新的權(quán)限,安裝權(quán)限。
? ??? ??<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
以上基本就是8.0中著重需要注意的點(diǎn),其實(shí)通知渠道設(shè)置在7.0中就已經(jīng)開始出現(xiàn),如果適配了7.0的話,8.0基本也已經(jīng)可以了。如果還出現(xiàn)8.0崩潰的情況,看看崩潰日志應(yīng)該都可以解決了,還是不行的話請(qǐng)私發(fā)我崩潰信息。對(duì)此再做出更新。
最后給大家介紹一款比較好的申請(qǐng)權(quán)限的第三方庫,強(qiáng)烈推薦。一句話解決問題并且可以直接跳轉(zhuǎn)到相關(guān)權(quán)限授權(quán)頁,適配率比較高。簡(jiǎn)潔!