Android 6.0 中的新技術(shù)總結(jié)
最近 Google 正式發(fā)布了 Android M,并命名為“棉花糖”(Marshmallow),對于開發(fā)者來說,有哪些新的技術(shù)和變化呢?本文嘗試總結(jié)一下 Android 6.0(API 23)給開發(fā)者帶來新的技術(shù)和改變。
權(quán)限管理
權(quán)限管理是 Android M ***的改變,權(quán)限管理更加精細(xì),并且由以前的安裝時靜態(tài)授權(quán),改為現(xiàn)在的運行時動態(tài)授權(quán)。大家對 Android 的權(quán)限吐槽已久,Android 應(yīng)該能極大的改善這方面的問題。主要改變有:
- 系統(tǒng)設(shè)置中可以對 APP 各個權(quán)限單獨控制
- 權(quán)限根據(jù)內(nèi)容進行分組了
- 普通權(quán)限還是在安裝時授權(quán)
- 其他權(quán)限在運行時系統(tǒng)彈窗授權(quán),并且要解析使用這個權(quán)限的目的
對于開發(fā)者來說,需要小心處理權(quán)限相關(guān)的問題。在使用某個功能的時候,需要總是判斷是否有改權(quán)限,并且通過合適的方式請求用戶授權(quán)。關(guān)于 Android M 權(quán)限的處理,可以參考官方文檔。
另外,這篇文章結(jié)合圖文和代碼講述了 Android M 中權(quán)限模型,比較清晰,可以參考一下。
APP Linking
這是一個把 APP 和網(wǎng)頁直接打通的技術(shù),能夠讓 APP 能夠直接來處理你的網(wǎng)站普通的 URL 鏈接,來展示你對應(yīng)的網(wǎng)站內(nèi)容。這絕對是一個值得關(guān)注的改進,Web 和 APP 之間縫隙將越來越小。這對既有網(wǎng)站又有 APP 的應(yīng)用來說非常有利,例如知乎和淘寶等。
有點類似于之前的 APP 的 Deep link,可以通過特殊的 Schema 也可以讓 APP 直接打開對應(yīng)的內(nèi)容。APP Linking 的特點是,只要使用傳統(tǒng)的 URL 就可以,而且是根據(jù) URL 的域名對應(yīng)特定的 APP 的。
開發(fā)者需要做的是在 AndroidManifest.xml 做一下對應(yīng)的聲明即可。如果需要讓系統(tǒng)默認(rèn)用你的 APP 打開對應(yīng)的 URL 的話,還需要網(wǎng)站配合提供 assetlinks.json。詳情可以參考這里。
APP 數(shù)據(jù)自動備份
支持 APP 數(shù)據(jù)自動備份到 Google Drive,在你換手機的時候,能夠直接把 APP 的數(shù)據(jù)恢復(fù)到你的手機上,你還可以配置些數(shù)據(jù)那些數(shù)據(jù)需要或者不需要備份。而且不用寫任何代碼就自動實現(xiàn)了。詳情可以參考這里。
然而這些對國內(nèi)的開發(fā)者來說,并沒有什么用。國內(nèi)廠商的 ROM 有些已經(jīng)有或者準(zhǔn)備會跟上,到時候都能享受到這樣的便利。
指紋解鎖
Android 官方支持指紋認(rèn)證,可以用在解鎖,或者任何需要驗證用戶的地方,例如支付。提供了新的 API FingerprintManager,讓第三方 APP 來用來獲得指紋認(rèn)證的功能。具體使用方法可以參考這個實例。
直接分享
直接分享是在 APP 內(nèi)直接彈出一個選擇分享到其他應(yīng)用的中的對象的列表,中間省略了選擇需要分享的 APP,選擇“聯(lián)系人”之類的操作。Android 中分享已經(jīng)做得很好了,這里又更進一步簡化了分享操作。如果要讓你的 APP 支持被直接分享,需要實現(xiàn)一個ChooserTargetService,并且實現(xiàn)對應(yīng)的處理分享 Intent 的 Activity。具體使用可以參考這里。
支持藍牙觸控筆
系統(tǒng)內(nèi)置支持藍牙觸控筆,這樣 Android 系統(tǒng)就默認(rèn)支持高大上的觸控筆了。并提供了 API 讓你的 APP 來響應(yīng)觸控筆事件。
低功耗藍牙掃描優(yōu)化
優(yōu)化了低功耗藍牙掃描優(yōu)化的掃描。現(xiàn)在低功耗藍牙的應(yīng)用越來越多,很多 APP 都需要掃描設(shè)備,掃描設(shè)備是一個非常重的操作,希望這次改動,能夠帶來一些改善。
支持主題化的 ColorStateLists
使用 context.getColorStateList(int id) 來獲取當(dāng)前主題對應(yīng)的 ColorStateLists。
相機 API
提供 API setTorchMode()) 來直接開關(guān)閃光燈,并且可以監(jiān)聽閃光燈的開光狀態(tài),以前很多 APP 已經(jīng)支持用閃光燈來做手電筒,現(xiàn)在官方提供 API 來做這樣的事情了。
從 Android 5.0 開始,就提供了一套全新的相機 API Camera2,這里在此基礎(chǔ)上添加了處理相關(guān) API。
其他
另外還有很多的改進,因為涉及的方面太專業(yè),或者是沒有使用到相關(guān)功能,我就不詳細(xì)說了,可以參考官方概述:
- 有語音交互 API
- Hotspot 2.0 支持
- 4k 屏支持
- 語音和視頻 API 的改進
- Android 企業(yè)用戶特性,例如多用戶支持,靜默安裝等