Android Pie(9.0)適配
[圖片上傳失敗...(image-74880c-1544772143959)]
查看新功能
顯示屏缺口支持
- 使用
getDisplayCutout()函數(shù)獲取缺口屏(劉海屏)的參數(shù) - 可以通過(guò)谷歌提供的適配方案,使用挖孔區(qū)全屏顯示解決:
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
getWindow().setAttributes(lp);
多個(gè)通知增強(qiáng)功能
- 支持圖像:現(xiàn)在,Android 9 可在手機(jī)的“短信通知”中顯示圖像。 您可以使用對(duì)短信使用 setData()來(lái)顯示圖像。 以下代碼段演示了如何創(chuàng)建 Person 和包含圖像的短信。
// Create new Person.
Person sender = new Person()
.setName(name)
.setUri(uri)
.setIcon(null)
.build();
// Create image message.
Message message = new Message("Picture", time, sender)
.setData("image/", imageUri);
Notification.MessagingStyle style = new Notification.MessagingStyle(getUser())
.addMessage("Check this out!", 0, sender)
.addMessage(message);
[圖片上傳失敗...(image-b7321d-1544772143959)]
適用于可繪制對(duì)象和位圖的 ImageDecoder
Android 9 引入了 ImageDecoder 類,可提供現(xiàn)代化的圖像解碼方法。 使用該類取代 BitmapFactory 和 BitmapFactory.Options API。
動(dòng)畫
Android 9 引入了 AnimatedImageDrawable 類,用于繪制和顯示 GIF 和 WebP 動(dòng)畫圖像。
自動(dòng)填充框架
Android 9 引入了多項(xiàng)改進(jìn),自動(dòng)填充服務(wù)可以利用這些改進(jìn)進(jìn)一步增強(qiáng)用戶填寫表單時(shí)的體驗(yàn)。 如需詳細(xì)了解如何在您的應(yīng)用中使用自動(dòng)填充功能,請(qǐng)參閱自動(dòng)填充框架指南。
行為變更
比較多,建議直接看文檔
以 API 級(jí)別 28+ 為目標(biāo)的應(yīng)用
我們公司的app需要注意的幾個(gè)點(diǎn),可能對(duì)我們有影響
- 限制訪問(wèn)電話號(hào)碼
- 使用非 SDK 接口的限制
- 傳輸層安全協(xié)議 (TLS) 實(shí)現(xiàn)變更
- Android 9 完全取消了對(duì) Android 安全加密文件 (ASEC) 的支持。
- 現(xiàn)在強(qiáng)制執(zhí)行 FLAG_ACTIVITY_NEW_TASK 要求
- 屏幕旋轉(zhuǎn)變更
- 構(gòu)建序列號(hào)棄用(在 Android 9 中,Build.SERIAL 始終設(shè)置為 "UNKNOWN" 以保護(hù)用戶的隱私。)
- 無(wú)法再讓多個(gè)進(jìn)程共用同一 WebView 數(shù)據(jù)目錄
- 在 Android 9 之前,暫停的應(yīng)用發(fā)出的通知會(huì)被取消。 從 Android 9 開始,暫停的應(yīng)用發(fā)出的通知將被隱藏,直至應(yīng)用繼續(xù)運(yùn)行。
對(duì)于非 SDK 接口的限制
無(wú)論是直接使用還是通過(guò)反射或 JNI 間接使用。 無(wú)論應(yīng)用是引用非 SDK 接口還是嘗試使用反射或 JNI 獲取其句柄,均適用這些限制。
下面是名單類型:
- 白名單:SDK
- 淺灰名單:仍可以訪問(wèn)的非 SDK 函數(shù)/字段。
- 深灰名單:
- 對(duì)于目標(biāo) SDK 低于 API 級(jí)別 28 的應(yīng)用,允許使用深灰名單接口。
- 對(duì)于目標(biāo) SDK 為 API 28 或更高級(jí)別的應(yīng)用:行為與黑名單相同
- 黑名單:受限,無(wú)論目標(biāo) SDK 如何。 平臺(tái)將表現(xiàn)為似乎接口并不存在。 例如,無(wú)論應(yīng)用何時(shí)嘗試使用接口,平臺(tái)都會(huì)引發(fā) NoSuchMethodError/NoSuchFieldException,即使應(yīng)用想要了解某個(gè)特殊類別的字段/函數(shù)名單,平臺(tái)也不會(huì)包含接口。

名單類型
下表詳細(xì)說(shuō)明了各種訪問(wèn)方式及其相應(yīng)的結(jié)果。

名單類型