背景介紹

谷歌2017I/O開發者大會今年將於5月17-19日在美國加州舉辦。大會將跟往年一樣釋出最新的 Android 系統,今年為 Android 8.0。谷歌在今年3 月21日釋出 Android 新系統開發者預覽版時已給新系統取名為 Android O。自2008 年釋出以來, Android 依靠 Google 的生態運作,全球市場份額在2016年底已超過85% 。而近幾年依靠 Android 發展起來的智慧手機廠商不斷增加, Android 生態大家庭也正在不斷壯大。

Android O 是 Google 釋出的第14個新系統版本。 那備受開發者關注的 Android O 有哪些新特性,開發者需要關注哪些問題呢?騰訊雲樂固團隊結合相關文件對此進行了分析總結,我們一起來看看 Android O 的新特性及開發指南。

Android O 新特性一介紹及開發指南

通知渠道 — Notification Channels

通知渠道是由應用自行定義的通知內容類別,藉助渠道,開發者可以讓使用者對不同種類的通知進行精細控制,使用者可以單獨攔截或更改每個渠道的行為,而不是統一管理應用的所有通知。

4131.png

△ 通知渠道圖示

開發指南

建立通知渠道的步驟:

1. 建立 NotificationChannel 物件,並設定應用內唯一的通知 ID。

2. 配置通知渠道的屬性,比如提示聲音等。

3. 在 NotificationManager 中註冊通知渠道物件。

4132.png

Android O 新特性二介紹及開發指南

畫中畫模式 — PIP

Android O 現已支援 Activity 的畫中畫模式。PIP 是一種多視窗顯示模式,多用於視訊播放,即你可以一邊發微信一邊看視訊。

4133.png

△ 畫中畫模式圖示

開發指南

1> 關於生命週期

PIP 模式不會改變 Activity 的生命週期。在指定時間只有最近與使用者互動過的 Activity 為活動狀態。 該 Activity 將被視為頂級 Activity。 所有其他 Activity 雖然可見,但均處於暫停狀態。當一個 Activity 處於 PIP 模式時,其實它是出在暫停狀態,但其內容會繼續展示。

2> API變更

在 Android O 中新增 PictureInPictureArgs 物件來指明你的 Activity 在 PIP 模式中的屬性,比如長寬比等。

Android O 還新增了以下方法來支援 PIP。

1. Activity.enterPictureInPictureMode(PictureInPictureArgs args):將Activity置於 PIP 模式之下。

2. Activity.setPictureInPictureArgs():用於更新 Activity 在 PIP 模式下的設定。如果 Activity 正處於 PIP 模式之下,那麼更改的屬性將立即生效。

Android O 新特性三介紹及開發指南

自適應圖示 — Adaptive Icons

Android 的螢幕適配一直以來都折磨著不少的開發者。為了幫助開發者更好的與裝置 UI 整合,Android O 支援建立自適應圖示,系統可以基於裝置選擇的蒙版將這些圖示顯示為不同形狀。系統還將實現與圖示的自動互動,並在啟動器、快捷方式、設定、共享對話方塊以及概覽螢幕中使用它們。

1.gif

△ Android O 支援建立自適應圖示圖示

開發指南

1> 自適應圖示支援多種形狀

通過定義兩張圖層(前景與背景)你可以制定你的桌面圖示外觀,你必須提供沒有形狀和陰影的 PNG 格式圖象作為圖層。

3.gif

△ 多形狀桌面圖示外觀圖示

2> 自適應圖示由兩張圖層和一個形狀來定義

在以前的 Android 版本中,圖示大小定義為 48 x 48 dp。現在你必須按照以下的規範定義你的圖層大小:

1. 兩張圖層大小都必須為 108 x 108 dp。

2. 圖層中心 72 x 72 dp 範圍為可視範圍。

3. 系統會保留四周外的 36dp 範圍用於生成有趣的視覺效果(如視差和跳動)。

2.gif

△ 自適用圖示由兩張圖和一個形狀定義圖示

3>  建立你的自適應圖示

首先你需要在 Application 標籤中加入 Android:icon 屬性,定義你的 icon 圖示。其次如果你需要建立一個原型的 icon,你還需要加入 Android:roundIcon 屬性。

4134.png

接下來,你需要 res/mipmap-anydpi/ic_launcher.xml 檔案中定義您的圖層。在 <maskable-icon> 選項中加入您的前景和背景圖層。

4135.png

Android O 新特性四介紹及開發指南

固定快捷方式和小部件 — Pinning shortcuts

Pinning shortcuts 是一個比 APP shortcuts 更小的快捷方式,放置於桌面上,用於更快速的開啟某一 APP 的某單一任務。Pinning shortcuts 在桌面上可呈現不同的圖示顯示。

{0BCB26F6-10E9-4350-AF52-7ED0C4A1705E}.png

△ 固定快捷方式和小部件圖示

開發指南

1. 首先使用 isRequestPinShortcutSupported() 方法校驗手機是否支援啟動這種快捷方式。

2. 建立 ShortcutInfo 物件。

3. 用 requestPinShortcut() 方法應用 Pinning shortcuts。你可以通過 PendingIntent 來通知你的 shortcuts 有沒有建立成功。

4136.png

Android O 其他特性介紹

除了以上幾個新特性以外,Android O 還未增加了其他的功能。比如增加了 Autofill Framework,方便使用者在不同 APP 之間填寫資訊。比如開放了android.permission.ANSWER_PHONE_CALLS,以後在自己的 APP 裡也可以對來電做響應。

在效能優化上,Android O 還對隱式廣播、後臺服務和位置更新等進行了後臺自動限制,以此來增加手機電池壽命。並對 Java 8 Language API 和 Runtime 進行了優化,使應用的執行速度更快,手機使用更流暢。

今年穀歌2017 I/O 開發者大會還會帶來什麼你期待的呢?我們也將持續關注。

總結

Android 每次的更新,雖然表面上沒有非常驚豔的新功能,但在內部,Google 為 Android 的效能做了很多的優化,讓 Android 更快更強更有內涵。

目前 Android 的市場佔比已經超過85%,智慧手機已經全面普及,對於廣大手機廠商來說,適配 Google 的系統版本更新迭代是一個挑戰。對於開發者來說,讓自己的 APP 相容新系統是首要任務。