背景介紹
谷歌2017 I/O開發(fā)者大會(huì)今年將于5月17-19日在美國(guó)加州舉辦。大會(huì)將跟往年一樣發(fā)布最新的 Android 系統(tǒng),今年為 Android 8.0。谷歌在今年3 月21日發(fā)布 Android 新系統(tǒng)開發(fā)者預(yù)覽版時(shí)已給新系統(tǒng)取名為 Android O。自2008 年發(fā)布以來, Android 依靠 Google 的生態(tài)運(yùn)作,全球市場(chǎng)份額在2016年底已超過85% 。而近幾年依靠 Android 發(fā)展起來的智能手機(jī)廠商不斷增加, Android 生態(tài)大家庭也正在不斷壯大。
Android O 是 Google 發(fā)布的第14個(gè)新系統(tǒng)版本。 那備受開發(fā)者關(guān)注的 Android O 有哪些新特性,開發(fā)者需要關(guān)注哪些問題呢?我們簡(jiǎn)單的結(jié)合相關(guān)文檔對(duì)此進(jìn)行了分析總結(jié),現(xiàn)在我們一起來看看 Android O 的新特性及開發(fā)指南。
Android O 新特性一介紹以及開發(fā)指南
通知渠道 — Notification Channels
通知渠道是由應(yīng)用自行定義的通知內(nèi)容類別,借助渠道,開發(fā)者可以讓用戶對(duì)不同種類的通知進(jìn)行精細(xì)控制,用戶可以單獨(dú)攔截或更改每個(gè)渠道的行為,而不是統(tǒng)一管理應(yīng)用的所有通知。

開發(fā)指南
創(chuàng)建通知渠道的步驟:
- 創(chuàng)建 NotificationChannel 對(duì)象,并設(shè)置應(yīng)用內(nèi)唯一的通知 ID。
- 配置通知渠道的屬性,比如提示聲音等。
- 在 NotificationManager 中注冊(cè)通知渠道對(duì)象。

Android O 新特性二介紹以及開發(fā)指南
畫中畫模式 — PIP
Android O 現(xiàn)已支持 Activity 的畫中畫模式。PIP 是一種多窗口顯示模式,多用于視頻播放,即你可以一邊發(fā)微信一邊看視頻。

△ 畫中畫模式圖示
開發(fā)指南
1> 關(guān)于生命周期
PIP 模式不會(huì)改變 Activity 的生命周期。在指定時(shí)間只有最近與用戶交互過的 Activity 為活動(dòng)狀態(tài)。 該 Activity 將被視為頂級(jí) Activity。 所有其他 Activity 雖然可見,但均處于暫停狀態(tài)。當(dāng)一個(gè) Activity 處于 PIP 模式時(shí),其實(shí)它是出在暫停狀態(tài),但其內(nèi)容會(huì)繼續(xù)展示。
2> API變更
在 Android O 中新增 PictureInPictureArgs 對(duì)象來指明你的 Activity 在 PIP 模式中的屬性,比如長(zhǎng)寬比等。
Android O 還新增了以下方法來支持 PIP。
- Activity.enterPictureInPictureMode(PictureInPictureArgs args):將Activity置于 PIP 模式之下。
- Activity.setPictureInPictureArgs():用于更新 Activity 在 PIP 模式下的設(shè)置。如果 Activity 正處于 PIP 模式之下,那么更改的屬性將立即生效。
Android O 新特性三紹以及開發(fā)指南
自適應(yīng)圖標(biāo) — Adaptive Icons
Android 的屏幕適配一直以來都折磨著不少的開發(fā)者。為了幫助開發(fā)者更好的與設(shè)備 UI 集成,Android O 支持創(chuàng)建自適應(yīng)圖標(biāo),系統(tǒng)可以基于設(shè)備選擇的蒙版將這些圖標(biāo)顯示為不同形狀。系統(tǒng)還將實(shí)現(xiàn)與圖標(biāo)的自動(dòng)交互,并在啟動(dòng)器、快捷方式、設(shè)置、共享對(duì)話框以及概覽屏幕中使用它們。

△ Android O 支持創(chuàng)建自適應(yīng)圖標(biāo)圖示
開發(fā)指南
1> 自適應(yīng)圖標(biāo)支持多種形狀
通過定義兩張圖層(前景與背景)你可以制定你的桌面圖標(biāo)外觀,你必須提供沒有形狀和陰影的 PNG 格式圖象作為圖層。

△ 多形狀桌面圖標(biāo)外觀圖示
2> 自適應(yīng)圖標(biāo)由兩張圖層和一個(gè)形狀來定義
在以前的 Android 版本中,圖標(biāo)大小定義為 48 x 48 dp?,F(xiàn)在你必須按照以下的規(guī)范定義你的圖層大?。?/p>
- 兩張圖層大小都必須為 108 x 108 dp。
- 圖層中心 72 x 72 dp 范圍為可視范圍。
- 系統(tǒng)會(huì)保留四周外的 36dp 范圍用于生成有趣的視覺效果(如視差和跳動(dòng))。

3> 創(chuàng)建你的自適應(yīng)圖標(biāo)
首先你需要在 Application 標(biāo)簽中加入 Android:icon 屬性,定義你的 icon 圖標(biāo)。其次如果你需要?jiǎng)?chuàng)建一個(gè)原型的 icon,你還需要加入 Android:roundIcon 屬性。

接下來,你需要 res/mipmap-anydpi/ic_launcher.xml 文件中定義您的圖層。在 選項(xiàng)中加入您的前景和背景圖層。

Android O 新特性四介紹以及開發(fā)指南
固定快捷方式和小部件 — Pinning shortcuts
Pinning shortcuts 是一個(gè)比 APP shortcuts 更小的快捷方式,放置于桌面上,用于更快速的打開某一 APP 的某單一任務(wù)。Pinning shortcuts 在桌面上可呈現(xiàn)不同的圖標(biāo)顯示。

△ 固定快捷方式和小部件圖示
開發(fā)指南
- 首先使用 isRequestPinShortcutSupported() 方法校驗(yàn)手機(jī)是否支持啟動(dòng)這種快捷方式。
- 創(chuàng)建 ShortcutInfo 對(duì)象。
- 用 requestPinShortcut() 方法應(yīng)用 Pinning shortcuts。你可以通過 PendingIntent 來通知你的 shortcuts 有沒有創(chuàng)建成功。

Android O 其他特性介紹
除了以上幾個(gè)新特性以外,Android O 還未增加了其他的功能。比如增加了 Autofill Framework,方便用戶在不同 APP 之間填寫信息。比如開放 android.permission.ANSWER_PHONE_CALLS,以后在自己的 APP 里也可以對(duì)來電做響應(yīng)。
在性能優(yōu)化上,Android O 還對(duì)隱式廣播、后臺(tái)服務(wù)和位置更新等進(jìn)行了后臺(tái)自動(dòng)限制,以此來增加手機(jī)電池壽命。并對(duì) Java 8 Language API 和 Runtime 進(jìn)行了優(yōu)化,使應(yīng)用的運(yùn)行速度更快,手機(jī)使用更流暢。
今年谷歌2017 I/O 開發(fā)者大會(huì)還會(huì)帶來什么你期待的呢?我們也將持續(xù)關(guān)注。
總結(jié)
Android 每次的更新,雖然表面上沒有非常驚艷的新功能,但在內(nèi)部,Google 為 Android 的性能做了很多的優(yōu)化,讓 Android 更快更強(qiáng)更有內(nèi)涵。
目前 Android 的市場(chǎng)占比已經(jīng)超過85%,智能手機(jī)已經(jīng)全面普及,對(duì)于廣大手機(jī)廠商來說,適配 Google 的系統(tǒng)版本更新迭代是一個(gè)挑戰(zhàn)。對(duì)于開發(fā)者來說,讓自己的 APP 兼容新系統(tǒng)是首要任務(wù)。