Marshmallow(Android 6.0) 簡介
阿新 • • 發佈:2019-02-09
本文會介紹如何使用Xamarin.Android 去開發基於Android 6.0的App。也會大致的介紹Android 6.0的新功能,以及如何在Xamarin中配置Android 6.0的開發環境從而實現新特性的例程。
總覽
Google最近釋出了作為Android Lollipop下一個版本,Android 6.0 Marshmallow。其中,Xamarin對於Android 6.0的支援包括:- API 23/Android 6.0的繫結 - Android 6.0 添加了很多新的API,這些API都可以在Xamarin Android API Level23中使用,關於Android 6.0 API更多的資訊請參考
Android 6.0 的釋出除了強調細節和質量,同時也提供了很多有趣的新功能,其中包括:
- 執行時授權 - 這個功能允許使用者在程式執行時,根據需要授予應用許可權。
- 使用者驗證方式增加 - 從Android 6.0開始,除了傳統的密碼授權方式,使用者也可以通過指紋進行授權。
- App連結 - 當某網站需要啟動本地應用的時候,該功能可以有效減少App選擇框的出現次數。
- Direct Share - 我們可以定義direct share的目標,來使分享變得更快,更直接。這個功能允許使用者把內容分享給其他應用。
- 語音互動 - 這些新的語音互動API可以幫助您建立一個帶語音互動功能的App。
- 4K 顯示 - 在Android 6.0中,如果裝置支援,您的應用可以請求4K的解析度。
- 新的音訊特性 - 從Android 6.0 開始,Android開始支援MIDI 協議,Android提供了更多的類和API去支援這個協議的音訊,捕捉和回放。
- 新的視訊特性 - Android 6.0 提供了新的類,可以幫助音訊視訊的同步,這個類還提供動態位元速率的支援
- Android For Work - Android 6.0 增強了對於單個使用者控制裝置的管控,比如靜默安裝和解除安裝,自動接收系統更新,增強證書管理,資料流量監控,許可權管理和工作狀態提醒。
- Material Design 支援庫 - 新的設計支援庫提供一些控制元件,將使得建立Material Design 風格的
要求
下面是使用Android 6.0 在Xamarin中的最低配置要求- Xamarin.Android - Xamarin.Android 要求的最低版本號是5.1.7.12。
- Xamarin Studio和Visual Studio - Xamarin Studio的最低版本號是5.9.7.22, Visual Studio Xamarin外掛的最低版本號是 3.11.1537。
- Android SDK - Android SDK 6.0(API 23)或者更高,需要通過Android SDK Manager 安裝。
- Java JDK 1.7 - Android 6.0 開發環境需要JDK 1.7的支援,在這裡下載。
準備開始
在開始之前,我們必須下載和安裝最新的工具和SDK:- 安裝最新的穩定版本的Xamarin。
- 安裝Android 6.0 的SDK及其工具。
- 建立一個Xamarin Android專案,並把專案目標設定為Android 6.0。
- 配置Android 6.0的裝置或者模擬器。
安裝Xamarin更新
更新Xamarin使其支援Android 6.0,先把update channel 修改為Stable,然後安裝所有的更新。 獲取關於update channel的更多資訊,請參考這裡.安裝Android 6.0 SDK
我們必須安裝Android 6.0 的SDK- 開啟Android SDK Manager, (在 Xamarin Studio中, 點選 Tools > Open Android SDK Manager…; 在 Visual Studio中, 點選 Tools > Android > Android SDK Manager) 然後安裝最新的Android SDK tools:
- 同時也要安裝最新的SDK 包
您必須安裝版本號是24.3.4或更高的Android SDK Tools。 關於安裝Android 6.0 SDK的更多資訊,請參考 SDK Manager。
新建Xamarin.Android專案
新建一個Xamarin.Android專案,您可以下載這個例程,從這個例程開始。如果您是新手,請參考這裡去建立一個Android的專案。當你在建立Android專案的過程中,您需設定目標版本為Android 6.0,並將Target Android Version 設定為API level 23。 關於設定API目標的方法,請參考這裡。
設定模擬器及裝置
如果你使用的是模擬器,點開Android AVD Manager,建立一個新裝置,設定下面內容- Device: Nexus 5, 6, or 9.
- Target: Android 6.0 - API Level 23
- ABI: x86
如果您使用的是手機裝置,比如Nexus 5,6或9,您可以安裝預覽版的Android 6.0,更多關於升級裝置到Android 6.0的資訊,請參考 Hardware System Images。
新功能
Android 6.0引入了很多新功能,旨在提高使用者體驗,增加穩定性,修復bug,同時,Android6.0也對Android平臺做了很多改變。下面,我們將介紹一些重點的新功能,以及您可以如何在應用中使用這些新功能。執行時許可權管理
在Android 5.0之後,Android的應用許可權管理有了很明顯的增強。在Android 6.0裡,使用者可以根據需要給應用在執行時授權。為了支援這個特性,我們需要設計應用在需要的時候彈窗提示使用者授權。 相比以往,在執行時授權,改善使用者安裝,升級應用的體驗,這樣使用者可以更快的安裝及使用應用。更多資訊和例程請參考 Requesting Runtime Permissions in Android Marshmallow。 這裡還有Xamarin的例程 RuntimePermissions.
這個例程像我們展示了,如何在執行時檢查和申請許可權。如何在Android 6.0裡宣告許可權。
如何演示這裡例程:
1. 點選Camera或者Contacts 按鈕,來彈出許可權申請視窗 2. 獲得許可權去使用Camera或Contacts
授權增強
Android 6.0提供了兩種授權模式,來代替輸入密碼- 指紋授權 - 使用使用者指紋授權。
- Confirm Credential - 這個授權機制取決於使用者最後一次鎖屏到現在的時間長短。
指紋授權
在有指紋識別感測器的手機上,我們可以使用FingerPrintManager這裡類來授權,請參考Fingerprint Authentication.Xamarin也提供了一個例程,FingerprintDialog.
如何演示這個例程,
1. 點選Purchase按鈕,會彈出授權對話方塊 。 2. 掃描你的指紋授權需要注意的是,這必須要在有指紋識別的裝置上演示,這個應用不會儲存你的指紋或者密碼。
語音互動
Android 6.0引進了語音互動的功能,使用者可以通過語音去確認,或者選擇某個選項,請參考 Overview of the Voice Interaction API.Xamarin的例程請點選這裡Voice Interactions. 及文件 Add a Conversation to your Android App with Voice Interactions 。
Confirm Credential
使用Confirm Credential可以使使用者在短時間內免於再次輸入App的密碼,這個機制取決於使用者上次鎖屏的時間。 我們可以使用KeyGenerator類中的SetUserAuthenticationValidityDurationSeconds方法來設定上次使用者鎖屏的最大有效時間。使用KeyGuardManager類中的CreateConfirmDeviceCredentialIntent方法去在你的應用裡授權,更多資訊請參考Confirm Credential.Xamarin的例程,請參考這裡。
如何演示這個例程
1. 需要在你的裝置上設定鎖屏密碼(Secure > Security > Screenlock) 2. 點選 Purchase確認 Confirm Credential
Chrome 定製標籤
Chrome定製標籤,可以讓你在應用裡更簡單和優雅的顯示網頁,這個功能基於Chrome而不是Android自帶的瀏覽器。請參考 Chrome Custom Tabs.。在Xamarin中使用這個功能前,請先安裝這個Chrome Custom Tabs for Xamarin.Android 安裝包。
Xamarin的例程在這裡Xamarin.ChromeCustomTabs. 使用這個例程前,請先安裝Chrome for Android 44以上的版本。您可以從Google Play Store 或者Chrome Dev裡面獲取。
如果您是從Chrome Dev獲取的,請在執行例程前,在Chrome裡面輸入chrome://flags 然後找到 Enable Hosted Mode 設定為 Enable。
Design Support Library
Android 5.0引入了Material Design作為一種新的設計語言,來增強使用者體驗(Xamarin關於Material Design 的相關文件,請參考這裡),在Android 6.0 裡Google引入了 Android Design Support Library 讓開發者更容易的使用Material design,這個庫包含下面這些元件:- CoordinatorLayout - 這個控制元件跟FrameLayout類似,但是比他更強大,你可以使用CoordinatorLayout,作為一個容器,他提供了layout_anchor屬性,可以讓view吸附在另外一個view。
- Collapsing Toolbars - CollapsingToolbarLayout 可以作為隱藏app bar的容器(這裡的app bar指的就是 action bar)。
- Floating Action Button - 浮動圓形按鈕。
- Floating Labels for Editing Text - 在使用者輸入的時候,使用TextInputLayout控制元件去呈現一個浮動的Label。
- Navigation View - 通過導航圖示進行頁面導航。
- Snackbar - 這個控制元件會在螢幕底部顯示一個簡短的訊息,是一個類似於toast卻更輕量級的控制元件。
- Material Tabs - 新的TabLayout控制元件,是一個水平的tabs控制元件,可用於頁面導航。
如果我們想在Xamarin中使用Design Support Library, 我們需要安裝
Xamarin Support Library Design 的nuget安裝包
請參考這個文章裡面的例程,他介紹了Xamarin Android對於Material Design Support Library 的支援,Xamarin也提供了例程,在這裡。這個例程包含了下面控制元件的用法
- Collapsing toolbar
- Floating action button
- View anchoring
- NavigationView
- Snackbar
附加庫的更新
作為Android 6.0的附加,Google也釋出了一些Android核心庫的更新,Xamarin.Android 也提供了這些庫的更新,您可在預覽版的nuget裡面找到:- Google Play Services - 最新的Google Play Services 包含App邀請功能,可以讓使用者分享他們的應用,更多資訊請參考這裡。
- Android Wearable Library - 這個庫包括Google Play Services bindings,最新針對於Android 可穿戴平臺的庫提供了新的功能,比如更簡單的頁面導航等。