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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android8.0适配那点事(二)

發(fā)布時(shí)間:2025/6/15 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android8.0适配那点事(二) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

小伙伴們,咱們今天咱繼續(xù)對(duì)Android8.0的適配進(jìn)行分解,今天將針對(duì)啟動(dòng)頁(yè),版本適配和系統(tǒng)限制等進(jìn)行“啃食”

1、啟動(dòng)頁(yè)適配

近日,我無(wú)意中發(fā)現(xiàn)應(yīng)用在8.0系統(tǒng)上面啟動(dòng)頁(yè)崩潰,趕緊去找BUG,運(yùn)行后發(fā)現(xiàn)如下異常:

翻譯后意思是:只有全屏不透明的activity才可以設(shè)置方向;

解決方案如下:

1.1、如果不考慮配置屏幕方向的話,直接將android:screenOrientation="portrait" 去掉即可;

1.2、如果既要固定屏幕方向,又解決啟動(dòng)過(guò)慢導(dǎo)致的白(黑)屏問(wèn)題,那么可以找到你設(shè)置透明的Activity,然后在他的theme中將android:windowIsTranslucent改為false,再加入<item name="android:windowDisablePreview">true</item>;

1.3、參考Google給出的解決方案:不要禁用預(yù)覽窗口,而要遵循常見(jiàn)的?Material Design模式。您可以使用活動(dòng)的?windowBackground主題屬性為開始活動(dòng)提供簡(jiǎn)單的自定義繪圖.


2、8.0版本安裝適配

?android 8.0系統(tǒng)更新之后,未知應(yīng)用安裝權(quán)限的開關(guān)被除掉,取而代之的是未知來(lái)源應(yīng)用的管理列表,需要用戶給予允許app安裝未知來(lái)源應(yīng)用的權(quán)限;

2.1、添加權(quán)限

?<!--裝未知來(lái)源應(yīng)用的權(quán)限-->

??? <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

2.2、然后在用戶點(diǎn)擊更新時(shí)判斷是否開啟了該應(yīng)用的“允許安裝未知來(lái)源”的權(quán)限,沒(méi)有的話,就引導(dǎo)用戶去開啟該應(yīng)用的“允許安裝未知來(lái)源”的權(quán)限

注意:此處如果自己實(shí)現(xiàn)版本更新,需配合通知渠道,進(jìn)行版本下載進(jìn)度顯示


3、運(yùn)行時(shí)權(quán)限策略變化

在 Android 8.0 之前,如果應(yīng)用在運(yùn)行時(shí)請(qǐng)求權(quán)限并且被授予該權(quán)限,系統(tǒng)會(huì)錯(cuò)誤地將屬于同一權(quán)限組并且在清單中注冊(cè)的其他權(quán)限也一起授予應(yīng)用,在8.0中此行為被糾正,系統(tǒng)只會(huì)授予應(yīng)用明確請(qǐng)求的權(quán)限;

同組權(quán)限一起申請(qǐng):

8.0中引入了多個(gè)與電話有關(guān)的新權(quán)限:

  • ANSWER_PHONE_CALLS?允許您的應(yīng)用通過(guò)編程方式接聽呼入電話。要在您的應(yīng)用中處理呼入電話,您可以使用?acceptRingingCall()?函數(shù)。

  • READ_PHONE_NUMBERS?權(quán)限允許您的應(yīng)用讀取設(shè)備中存儲(chǔ)的電話號(hào)碼。

這些權(quán)限均被劃分為危險(xiǎn)類別,屬于?PHONE?權(quán)限組。


1、后臺(tái)執(zhí)行限制

1.1、后臺(tái)服務(wù)限制:處于空閑狀態(tài)時(shí),應(yīng)用可以使用的后臺(tái)服務(wù)存在限制。 這些限制不適用于前臺(tái)服務(wù),因?yàn)榍芭_(tái)服務(wù)更容易引起用戶注意;

1.2、廣播限制:除了有限的例外情況,應(yīng)用無(wú)法使用清單注冊(cè)隱式廣播。 它們?nèi)匀豢梢栽谶\(yùn)行時(shí)注冊(cè)這些廣播,并且可以使用清單注冊(cè)專門針對(duì)它們的顯式廣播。

注意:默認(rèn)情況下,這些限制僅適用于針對(duì) O 的應(yīng)用。 不過(guò),用戶可以從?Settings?屏幕為任意應(yīng)用啟用這些限制,即使應(yīng)用并不是以 O 為目標(biāo)平臺(tái)。


2、后臺(tái)服務(wù)限制

系統(tǒng)可以區(qū)分?前臺(tái)?和?后臺(tái)?應(yīng)用。 (用于服務(wù)限制目的的后臺(tái)定義與內(nèi)存管理使用的定義不同;一個(gè)應(yīng)用按照內(nèi)存管理的定義可能處于后臺(tái),但按照能夠啟動(dòng)服務(wù)的定義又處于前臺(tái)。)如果滿足以下任意條件,應(yīng)用將被視為處于前臺(tái):

  • 具有可見(jiàn) Activity(不管該 Activity 已啟動(dòng)還是已暫停)。

  • 具有前臺(tái)服務(wù)。

  • 另一個(gè)前臺(tái)應(yīng)用已關(guān)聯(lián)到該應(yīng)用(不管是通過(guò)綁定到其中一個(gè)服務(wù),還是通過(guò)使用其中一個(gè)內(nèi)容提供程序)。 例如,如果另一個(gè)應(yīng)用綁定到該應(yīng)用的服務(wù),那么該應(yīng)用處于前臺(tái):

    • IME

    • 壁紙服務(wù)

    • 通知偵聽器

    • 語(yǔ)音或文本服務(wù)

如果以上條件均不滿足,應(yīng)用將被視為處于后臺(tái)。

后臺(tái)服務(wù)會(huì)被kill掉,官方推薦可使用AlarmManager、SyncAdapter、JobScheduler代替后臺(tái)服務(wù)。


3、廣播限制

如果應(yīng)用注冊(cè)為接收廣播,則在每次發(fā)送廣播時(shí),應(yīng)用的接收器都會(huì)消耗資源,在7.0中對(duì)廣播施加了一些限制,8.0 讓這些限制更為嚴(yán)格:

  • 針對(duì) Android 8.0 的應(yīng)用無(wú)法繼續(xù)在其清單中為隱式廣播注冊(cè)廣播接收器;

  • 應(yīng)用可以繼續(xù)在它們的清單中注冊(cè)顯式廣播;

  • 應(yīng)用可以在運(yùn)行時(shí)使用?Context.registerReceiver()?為任意廣播(不管是隱式還是顯式)注冊(cè)接收器;

  • 需要簽名權(quán)限的廣播不受此限制所限,因?yàn)檫@些廣播只會(huì)發(fā)送到使用相同證書簽名的應(yīng)用,而不是發(fā)送到設(shè)備上的所有應(yīng)用。

4、后臺(tái)位置限制

  • Android 8.0 都會(huì)對(duì)后臺(tái)應(yīng)用檢索用戶當(dāng)前位置的頻率進(jìn)行限制(會(huì)出現(xiàn)后臺(tái)應(yīng)用定位收不到定位信息);

(注:以上內(nèi)容引自Google中國(guó)開發(fā)者網(wǎng)站:https://developer.android.google.cn)


新系統(tǒng)在手,還需多多了解其中的變化,以我們自身的能力來(lái)解決實(shí)際開發(fā)過(guò)程中的問(wèn)題,各位小伙伴,你們的應(yīng)用在適配8.0的過(guò)程中遇到了哪些問(wèn)題,歡迎留言,共同探討并解決。如文中有誤,請(qǐng)留言指出.




轉(zhuǎn)載于:https://blog.51cto.com/12512729/2136802

總結(jié)

以上是生活随笔為你收集整理的Android8.0适配那点事(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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