国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Android Q 兼容那些事

roland_reed / 1606人閱讀

摘要:會議主要是加深開發者對的了解,從而幫助開發者做好的兼容工作。因此本篇我會選擇性說明一些在上你需要兼容的一些事情。那么現在有哪些會用到這種呢舉一個大家熟悉的。另外目前可以通過在清單文件設置是否啟用。因此強烈建議將這個工作排上兼容行程。

5 月 20 號參加了 Android Q Labs,因此本篇說一說會議的部分內容以及自己的一些想法。

會議主要是加深開發者對 Android Q 的了解,從而幫助開發者做好 Android Q 的兼容工作。

因此本篇我會選擇性說明一些在 Android Q 上你需要兼容的一些事情。

1. 后臺 Activity 啟動限制

首先我們說說為什么要限制后臺 Activity 的啟動。

Android Q 之前的情況如下:

考慮下面的幾個場景:

    我在開車過程中使用導航地圖進行導航

    我在使用拍照功能拍攝一個關鍵場景的視頻

    我在玩游戲,比如王者榮耀,正準備團戰拿五殺的時刻 ......

假設在上面的幾個場景中,突然后臺 Activity 彈出一個框,可能是廣告框,也可能是搶占我界面的其他界面。

這個時候我覺得內心是奔潰的,而且用戶體驗超級不好。

基于此,Android Q 里面引入了對后臺 Activity 啟動的限制。

注意關鍵的一個點是這個變化對所有在 Android Q 上運行的應用都會有影響。無論你的 targetSDK 版本。

所以如果你的 APP 存在這種場景的情況下,你就需要做一下額外處理了。

</>復制代碼

  1. 基本的處理方式是通過 Notification 彈一個通知,如果用戶想點再點擊進入你的 Activity。

那么現在有哪些 APP 會用到這種呢?舉一個大家熟悉的。

這邊測試了一下,微信語音通話是會直接從后臺啟動全屏覆蓋的,所以可能微信需要針對這個行為變更做處理。

2. 存儲的變化

先看下 Q 之前的情況:

Q 的變化分兩部分來說明吧。

一部分是 MediaStore 的處理,另一部分是分區存儲的處理。

先說說 MediaStore,什么是 MediaStore 呢?

對于 MediaStore,Q 的處理如下:

可以看到對于 MediaStore,可以直接寫,讀的話僅僅限于自己寫進去的文件。如果要查看其它應用提供的內容,需要獲取讀權限。

另外你會發現 MediaStore 上面只有媒體相關的,如果文件是非媒體類型呢?所以 Q 新增 MediaStore.Downloads,如下:

總結起來如下:

權限的變更:在沒卸載的情況下,自己 APP 寫或者讀 MediaStore 媒體文件不需要權限。讀其他的需要權限。卸載后讀自己之前寫入的也需要權限。

另外還有一個就是圖片有一個位置信息,這個對用戶來說也是隱私,因此需要做額外處理。

說完了 MediaStore,接下來說說分區存儲。

總結起來就是分區存儲模式下,不能夠再直接訪問 /sdcard 下的文件,而要通過 MediaStore 或者 SAF。當然自己 packagename 命名的目錄下面還是可以訪問的。

另外目前可以通過在清單文件設置是否啟用。可以設置 targetSDK 為 Q 的應用不啟用,也可以設置 targetSDK 低于 Q 的啟用。通過代碼可以確認是否處于分區存儲模式下。

推薦盡快完成適配,因為目前是為了給開發者更多時間適應這個變化,等到下一個版本 Android R 的時候會強制執行分區存儲模式,到時候清單文件的設置也是沒用的。因此強烈建議將這個工作排上兼容行程。當然在 Q 的兼容上可以根據自身業務進度進行設置,假設時間不夠,可以暫時不啟用,但是后續需要排期處理。

3. 位置權限

我們看看 Android P 申請位置權限的對話框:

可以看到只有允許和拒絕兩個選項。

現在看看 Android Q 的:

會發現多了一些選項,其中有一個僅在使用該應用時允許

在 Android P 的時候,清單文件只需要申請一個權限:

而在 Q 上面,有兩個,其中一個有 background 的。

之所以有兩個,就是希望盡量少的獲取權限,除非是你的 APP 真的有這個需求。在申請的時候也建議增量申請,什么意思呢?

首先第一步先獲取位置權限:

在用戶允許的情況下,如果 APP 需要,再進行增量權限請求:

推薦的位置權限最佳實踐如下:

4. 深色主題

Q 支持深色主題,兼容有兩種方式。

一種就是簡單粗暴,適合時間少的。 一種就是推薦的,適合有足夠時間的。

簡單的方式如果是全局設置,只需要設置主題即可:

如果你需要對單個 View 做設置,也是可以的:

推薦的方式是使用 DayNight。

不過我在測試區啟動深色主題時發現有點卡,估計后面系統還需要優化。

5. BubbleView 和指紋識別

BubbleView 其實就是懸浮窗。指紋識別也是 Android Q 引入的一個官方方式。 這個不需要做兼容,算是新功能,這里不贅述。

6. Kotlin vs Flutter

其實在代碼演示的時候,我注意到 PPT 上面的代碼基本都是 Kotlin。

包括之前的 Kotlin-first 以及這次 Q & A 環節也有小伙伴提問到底 Google 主推 Kotlin 還是 Flutter。

我這邊說下我的看法吧。

我覺得 Kotlin 和 Flutter 不沖突。

首先第一個 Kotlin 是一門語言,而 Flutter 是一個跨平臺方案。

如果你的 APP 有跨平臺的需求,或者有很多頁面需要開發,人手不足,功能迭代比較頻繁,那么你可以了解或者嘗試使用 Flutter 來開發界面。一套代碼,兩端運行。尤其 Flutter 1.5 布局很廣,涵蓋了移動端、Web、桌面端和嵌入式。

對于 Android 開發者,可以看我的 Flutter 即學即用系列博客快速入門。

說完了 Flutter,說下 Kotlin 吧。

Kotlin 是一門語言,語言是干嘛的?是實現我們業務的工具。

假設現在 Java 和 Kotlin 都可以實現我們的業務功能,并且官方都支持這兩種語言,你有必要花很多時間去多帶帶學習 Kotlin 嗎?我覺得沒太大必要。

所以我覺得對待 Kotlin 你可以了解一下,能夠看懂 Kotlin 代碼,會寫簡單的 Demo,我覺得就夠了。

當然如果你時間足夠,想多學一門語言,完全沒問題。

以上是參加這次會議的一些簡單總結和看法,更多內容通過下面的全程錄像了解。

本次 Android Q Labs 全程錄像可以通過鏈接觀看:Android Q Labs

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/7864.html

相關文章

  • 瀏覽器之HTTP緩存的那些

    摘要:瀏覽器執行機制瀏覽器對于請求資源擁有一系列成熟的緩存策略。只要有相應的緩存響應頭要求緩存,瀏覽器客戶端都會對資源緩存一份,當然緩存響應頭也有優先級的。緩存模式瀏覽器緩存可以分為兩種模式,強緩存和協商緩存。具體請看上面的瀏覽器緩存流程圖。 緩存是提升用戶訪問速度,節省帶寬,減輕服務器壓力的必經之道。 下面都是針對的Http 1.1來說明,HTTP緩存都是針對瀏覽器客戶端,其他第三方客戶端...

    hersion 評論0 收藏0

發表評論

0條評論

roland_reed

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<