Android 8.0 新特性及開發(fā)指南

背景介紹

谷歌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)用的所有通知。

示例圖1

開發(fā)指南

創(chuàng)建通知渠道的步驟:

  1. 創(chuàng)建 NotificationChannel 對(duì)象,并設(shè)置應(yīng)用內(nèi)唯一的通知 ID。
  2. 配置通知渠道的屬性,比如提示聲音等。
  3. 在 NotificationManager 中注冊(cè)通知渠道對(duì)象。
示例圖2

Android O 新特性二介紹以及開發(fā)指南

畫中畫模式 — PIP

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

示例圖3

△ 畫中畫模式圖示

開發(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。

  1. Activity.enterPictureInPictureMode(PictureInPictureArgs args):將Activity置于 PIP 模式之下。
  2. 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ì)話框以及概覽屏幕中使用它們。

示例圖4

△ Android O 支持創(chuàng)建自適應(yīng)圖標(biāo)圖示

開發(fā)指南

1> 自適應(yīng)圖標(biāo)支持多種形狀

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

示例圖5

△ 多形狀桌面圖標(biāo)外觀圖示

2> 自適應(yīng)圖標(biāo)由兩張圖層和一個(gè)形狀來定義

在以前的 Android 版本中,圖標(biāo)大小定義為 48 x 48 dp?,F(xiàn)在你必須按照以下的規(guī)范定義你的圖層大?。?/p>

  1. 兩張圖層大小都必須為 108 x 108 dp。
  2. 圖層中心 72 x 72 dp 范圍為可視范圍。
  3. 系統(tǒng)會(huì)保留四周外的 36dp 范圍用于生成有趣的視覺效果(如視差和跳動(dòng))。
示例圖6

3> 創(chuàng)建你的自適應(yīng)圖標(biāo)

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

示例圖7

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

示例圖8

Android O 新特性四介紹以及開發(fā)指南

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

Pinning shortcuts 是一個(gè)比 APP shortcuts 更小的快捷方式,放置于桌面上,用于更快速的打開某一 APP 的某單一任務(wù)。Pinning shortcuts 在桌面上可呈現(xiàn)不同的圖標(biāo)顯示。

示例圖9

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

開發(fā)指南

  1. 首先使用 isRequestPinShortcutSupported() 方法校驗(yàn)手機(jī)是否支持啟動(dòng)這種快捷方式。
  2. 創(chuàng)建 ShortcutInfo 對(duì)象。
  3. 用 requestPinShortcut() 方法應(yīng)用 Pinning shortcuts。你可以通過 PendingIntent 來通知你的 shortcuts 有沒有創(chuàng)建成功。
示例圖10

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ù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容