1. 程式人生 > >Marshmallow(Android 6.0) 簡介

Marshmallow(Android 6.0) 簡介

本文會介紹如何使用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 APIs.
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的核心庫也更新了Android 6.0 的版本,這些更新可以供Android 6.0 以及更老的版本使用。本文會教大家如何建立基於Android 6.0的應用,也會介紹一些重要的新特性。

要求

下面是使用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:
  1. 安裝最新的穩定版本的Xamarin。
  2. 安裝Android 6.0 的SDK及其工具。
  3. 建立一個Xamarin Android專案,並把專案目標設定為Android 6.0。 
  4. 配置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 可穿戴平臺的庫提供了新的功能,比如更簡單的頁面導航等。

總結

這篇文章介紹了Android 6.0,以及如何安裝和配置Xamarin.Android,使其適配Android 6.0,這篇文章也介紹了Xamarin開發者如何使用這些新功能。