如果要改編App,主要是通過設置以下風格:
並且使用這個屬性?android:attr/textColorPrimary
此外,谷歌還提供了壹個Force Dark開關。
詳情請見Q黑暗模式谷歌官方介紹。
Android 10無需用戶確認即可控制按鈕。
setConfirmationRequired(false)
當用戶的生物特征不可用時,可以設置setDeviceCredentialAllowed()允許用戶使用PIN、手勢密碼和數字密碼通過認證。
(1)適配可以分為兩種。
(2)在Google和各大應用市場適配的時間要求:
如果我們項目原來的api是25,要直接升級到api29,需要適配:Andoird O,Android P,Android Q,三個適配階段都需要。
下面將簡要介紹這些API的適配:
您需要在創建通知之前創建壹個通道,並且需要在創建通知時傳入channelId。
2.1什麽是前臺應用?(這裏的前臺應用是指服務限制)
2.2什麽是後臺服務限制?
2.3解決方案:
設置透明主題的活動,然後設置屏幕方向。
引發以下異常
想必是Google8.0手機的bug,後續版本已經修復。
3.2.1 webview數據目錄變更
如果api設置為28,多個進程使用同壹個目錄webView。
拋出異常:
解決方案:為不同的流程設置不同的webview數據目錄。
3.2.2 Apache HTTP客戶端棄用
在Android 6.0中,谷歌取消了對Apache HTTP客戶端的支持。從Android 9開始,默認情況下,內容庫已經從bootclasspath中刪除,並且對應用程序不可用。要繼續使用Apache HTTP客戶端,面向Android 9和更高版本的應用程序可以將以下內容添加到其AndroidManifest.xml中:
3.2.3非sdk接口控制
官方檢查器veridex用於檢測apk中何處使用了非SDK接口。
掃描結果類似下圖(圖片來自Android P版(VII)中的veridex工具掃描非SDK接口,veridex的用法也可以參考本文):
3.2.4前臺服務
Android 9或更高版本使用前臺服務的應用需要請求FOREGROUND_SERVICE權限,系統會自動將該權限授予請求權限的應用。如果Android 9或更高版本的應用程序試圖創建前臺服務,並且沒有請求FOREGROUND_SERVICE,系統將拋出SecurityException。
3.3.1應用存儲空間變更
默認情況下,如果應用以Android Q為目標平臺,那麽在訪問外部存儲設備中的文件時會進入過濾器視圖。應用程序可以使用上下文。getExternalFileSdir()將專用於自己的文件存儲在自己的目錄中。具有過濾視圖的應用程序始終對其創建的文件具有讀/寫訪問權限,無論文件位於特定於該應用程序的目錄中還是外部。應用程序可以訪問這些文件,而無需聲明任何存儲權限。
只有滿足以下兩個條件,應用程序才能訪問其他應用程序創建的文件:
谷歌q版應用兼容性整改指南
華為開發者聯盟文檔中心
谷歌Android-8.0-遷移