Marshmallow の機能
この記事は、Xamarin.Android を使用して Android 6.0 Marshmallow 用アプリの開発を始める場合に役立ちます。
この記事では、Android 6.0 Marshmallow の新機能の概要、Android Marshmallow での開発用に Xamarin.Android を準備する方法について説明し、Xamarin.Android アプリで新しい Android Marshmallow 機能を使用する方法を示すサンプル アプリケーションへのリンクを提供します。
概要
Android 6.0 Marshmallow は、Android Lollipop の後継の主要な Android リリースです。 Xamarin.Android では Android Marshmallow がサポートされ、次のものが含まれます。
- API 23 および Android 6.0 のバインド – Android 6.0 では、後述する新機能用の新しい API が多数追加されました。API レベル 23 をターゲットにすると、これらの API を Xamarin.Android アプリで使用できるようになります。 Android 6.0 API の詳細については、Android 6.0 API に関するページを参照してください。
Marshmallow リリースは主に "光沢と品質" に焦点を当てていますが、Xamarin.Android 開発者にとって興味深い多くの新機能も提供しています。 次のような機能が含まれています。
実行時アクセス許可 – この機能強化により、ユーザーは実行時に状況に応じてセキュリティ アクセス許可を承認できるようになりました。
認証の改善 – Android Marshmallow 以降、アプリでは指紋センサーを使用してユーザーを認証できるようになりました。また、新しい "資格情報の確認" 機能によりパスワードを入力する必要性が最小限に抑えられます。
アプリ リンク – この機能を使用して、アプリを Web ドメインに自動的に関連付けることで、App Chooser をポップアップ表示する必要がなくなります。
直接共有 – ユーザーがすばやく直感的に共有できるようになる "直接共有ターゲット" を定義できます。ユーザーはこの機能を使って他のアプリとコンテンツを共有できます。
音声操作 – この新しい API を使用すると、会話音声機能をアプリに組み込むことができます。
4K ディスプレイ モード – Android Marshmallow では、アプリから、サポートするハードウェアに対して 4K ディスプレイ解像度を要求できます。
新しいオーディオ機能 – Marshmallow 以降、Android では MIDI プロトコルがサポートされるようになりました。 また、デジタル オーディオのキャプチャおよび再生オブジェクトを作成するための新しいクラスも用意され、オーディオと入力デバイスを関連付けるための新しい API フックが追加されました。
新しいビデオ機能 – Marshmallow には、アプリでオーディオ ストリームとビデオ ストリームを同期してレンダリングできるようになる新しいクラスが追加されました。このクラスでは、動的な再生レートもサポートされています。
Android for Work – Marshmallow には、企業所有のシングルユーザー デバイス向けに強化されたコントロールが含まれています。 デバイス所有者によるアプリのサイレント インストールとアンインストール、システム更新プログラムの自動受け入れ、証明書管理の向上、データ使用状況の追跡、アクセス許可の管理、および作業状態の通知をサポートしています。
マテリアル デザイン サポート ライブラリ – 新しい "デザイン サポート ライブラリ" には、マテリアル デザインの外観をアプリに簡単に組み込むことができるデザイン コンポーネントとパターンが用意されています。
さらに、多くの Android ライブラリのコア更新プログラムが Android M と共にリリースされました。これらの更新プログラムによって Android M と以前のバージョンの Android の両方に新機能が提供されます。
さらに、多くの Android ライブラリのコア更新プログラムが Android Marshmallow と共にリリースされました。これらの更新プログラムによって Android Marshmallow と以前のバージョンの Android の両方に新機能が提供されます。 この記事では、Android Marshmallow を使用してアプリの構築を開始する方法を説明します。また、Android 6.0 の新機能の概要についても説明します。
要件
Xamarin ベースのアプリで新しい Android Marshmallow の機能を使用するには、次のものが必要です。
Xamarin.Android – Visual Studio または Xamarin Studio に Xamarin.Android 5.1.7.12 以降をインストールして、構成する必要があります。
Visual Studio for Mac または Visual Studio – Visual Studio for Mac を使用している場合は、バージョン 5.9.7.22 以降が必要です。 Visual Studio を使用している場合は、バージョン 3.11.1537 以降の Visual Studio 用 Xamarin ツールが必要です。
Android SDK - Android SDK マネージャーを介して、Android SDK 6.0 (API 23) 以降をインストールする必要があります。
Java Developer Kit – API レベル 24 以降向けに開発する場合、Xamarin.Android に JDK 1.8 以降が必要です (JDK 1.8 では、Marshmallow を含め、24 より前の API レベルもサポートされています)。 カスタム コントロールまたは Forms プレビューアーを使用する場合は、64 ビット版の JDK 1.8 が必要です。
API レベル 23 以下専用に開発している場合は、JDK 1.7 を引き続き使用することができます。
はじめに
Android Marshmallow と Xamarin.Android を使い始めるには、Android Marshmallow プロジェクトを作成する前に、最新のツールと SDK パッケージをダウンロードしてインストールする必要があります。
[安定] チャネルから最新の Xamarin 更新プログラムをインストールします。
Android 6.0 Marshmallow SDK パッケージとツールをインストールします。
Android 6.0 Marshmallow (API レベル 23) をターゲットとする新しい Xamarin.Android プロジェクトを作成します。
Android Marshmallow 用のエミュレーターまたはデバイスを構成します。
これらの各手順を以下のセクションで説明します。
Xamarin の更新プログラムをインストールする
Android 6.0 Marshmallow のサポートが含まれるように Xamarin を更新するには、更新チャネルを [安定] に変更し、すべての更新プログラムをインストールします。 更新チャネルから更新プログラムをインストールする方法の詳細については、更新チャネルの変更に関するページを参照してください。
Android 6.0 SDK をインストールする
Android Marshmallow 用の Xamarin.Android プロジェクトを作成するには、まず Android SDK マネージャーを使用して Android 6.0 SDK をインストールする必要があります。
Android SDK マネージャーを起動し (Visual Studio for Mac では [ツール] > [SDK マネージャー] を使用し、Visual Studio では [ツール] > [Android] > [Android SDK マネージャー] を使用します)、最新の Android SDK Tools をインストールします。
また、最新の Android 6.0 SDK パッケージをインストールします。
Android SDK Tools リビジョン 24.3.4 以降をインストールする必要があります。 Android SDK マネージャーを使用した Android 6.0 SDK のインストールの詳細については、SDK マネージャーに関するページを参照してください。
Xamarin.Android プロジェクトを開始する
新しい Xamarin.Android プロジェクトを作成する。 Xamarin を使用した Android の開発を初めて行う場合は、「Hello, Android」を参照して、Android プロジェクトの作成について学習してください。
Android プロジェクトを作成するときは、Android 6.0 MarshMallow 以降をターゲットとするようにバージョン設定を構成する必要があります。 プロジェクトのターゲットを Marshmallow にするには、プロジェクトを [API level 23 (Xamarin.Android v6.0 Support)]\(API レベル 23 (Xamarin.Android v6.0 のサポート)\) に構成する必要があります。 Android API レベルの構成の詳細については、「Android API レベルの理解」を参照してください。
エミュレーターまたはデバイスを構成する
エミュレーターを使用している場合は、Android AVD マネージャーを開始し、次の設定を使用して新しいデバイスを作成します。
- デバイス: Nexus 5、6、または 9。
- ターゲット: Android 6.0 - API レベル 23
- ABI: x86
たとえば、次の仮想デバイスは、Nexus 5 をエミュレートするように構成されています。
Nexus 5、6、または 9 などの物理デバイスを使用している場合は、Android Marshmallow のプレビュー イメージをインストールできます。 デバイスを Android Marshmallow に更新する方法の詳細については、ハードウェアのシステム イメージに関するページを参照してください。
新機能
Android Marshmallow で導入された変更の多くは、Android ユーザー エクスペリエンスの向上、パフォーマンスの向上と、バグの修正に重点を置いています。 一方、Marshmallow では、Android プラットフォームの基礎にいくつかの広範な変更も導入されました。 以下のセクションでは、これらの機能強化について説明します。また、アプリで新しい Android Marshmallow 機能を使い始める際に役立つリンクを提供します。
実行時アクセス許可
Android のアクセス許可システムは、Android Lollipop 以降、大幅に最適化され、簡素化されています。 Android Marshmallow では、ユーザーはインストール時ではなく実行時に個別にアクセス許可を付与します。 Android Marshmallow 以降でこの機能をサポートするには、実行時に (アクセス許可が必要な場所のコンテキストで) ユーザーにアクセス許可を求めるようにアプリを設計します。 この変更により、アプリのインストールとアップグレードのプロセスが合理化されるため、ユーザーはすぐにアプリを使い始めることができます。
Xamarin.Android アプリで実行時アクセス許可を実装する方法の詳細 (コード例を含む) については、Android Marshmallow での実行時アクセス許可の要求に関するページを参照してください。
Android Marshmallow の新しい実行時アクセス許可機能の詳細については、システム アクセス許可の使用に関するページを参照してください。
認証の機能強化
Android Marshmallow には、パスワードの必要性をなくすために役立つ 2 つの認証拡張機能が用意されています。
指紋認証 – 指紋スキャンを使用してユーザーを認証します。
資格情報の確認 – デバイスのロックが解除された期間に基づいてユーザーを認証します。
次に説明するリンクとサンプル アプリは、これらの新機能を理解するために役立ちます。
指紋認証
指紋スキャン ハードウェアをサポートするデバイスでは、新しい FingerPrintManager
クラスを使用してユーザーを認証できます。
Android Marshmallow の指紋認証機能の詳細については、指紋認証に関するページを参照してください。
音声操作
Android Marshmallow で導入された新しい音声操作機能により、アプリのユーザーは音声を使用してアクションを確認し、オプションの一覧から選択できるようになります。 音声操作の詳細については、「Overview of the Voice Interaction API (Voice Interaction API の概要)」を参照してください。
Xamarin.Android アプリに音声操作を実装する方法の詳細 (コード例を含む) については、音声操作を使用した Android アプリへの会話の追加に関するページを参照してください。 Xamarin.Android アプリで Voice Interaction API を使用する方法を示すサンプル アプリ Voice Interactions を使用できます。
資格情報の確認
Android Marshmallow の新しい "資格情報の確認" 機能を使用すると、デバイスのロックが解除された期間に基づいて認証することにより、ユーザーがアプリ固有のパスワードを記憶して入力する必要がなくなります。
これを行うには、KeyGenerator
の新しい SetUserAuthenticationValidityDurationSeconds
メソッドを使用します。 KeyGuardManager
の CreateConfirmDeviceCredentialIntent
メソッドを使用して、アプリ内からユーザーを再認証します。 Android Marshmallow のこの新機能の詳細については、資格情報の確認に関するページを参照してください。
Chrome のカスタム タブ
アプリ開発者には、ユーザーが URL をタップしたときに、WebView
に基づいてアプリでブラウザーを起動するか、アプリ内ブラウザーを使用するか、という選択肢の問題があります。 いずれの方法にも課題があります。ブラウザーの起動は、カスタマイズできない高負荷のコンテキスト スイッチですが、WebView
は状態をブラウザーと共有しません。 また、WebView
を使用すると、追加のメンテナンスのオーバーヘッドが生じる可能性があります。
"Chrome のカスタム タブ" を使用すると、ユーザーがアプリを離れることなく、Chrome の機能を使用して Web サイトを簡単かつエレガントに表示できます。 この機能により、アプリでユーザーの Web エクスペリエンスをより詳細に制御できるようになります。WebView
に頼ることなく、ネイティブ コンテンツと Web コンテンツ間の移行をよりシームレスに実行できます。 また、アプリで以下をカスタマイズして、Chrome の外観に影響を与えることもできます。
ツールバーの色
アニメーションの開始と終了
Chrome ツールバーとオーバーフロー メニューのカスタム アクション
Chrome のプリスタートとコンテンツのプリフェッチ (読み込みを高速化するため)
Xamarin.Android アプリでこの機能を使用するには、Android Support Custom Tabs ライブラリをダウンロードしてインストールします。 この機能の詳細については、Chrome のカスタム タブに関するページを参照してください。
マテリアル デザイン サポート ライブラリ
Android Lollipop では、Android のエクスペリエンスを更新する新しいデザイン言語として "マテリアル デザイン" を導入しました (Xamarin.Android アプリでのマテリアル デザインの使用については、「素材のテーマ」を参照してください)。 Google は、Android Marshmallow で "Android デザイン サポート ライブラリ" を導入し、アプリ開発者がマテリアル デザインの外観を採用しやすくなりました。 このライブラリには、次のコンポーネントが含まれています。
CoordinatorLayout – 新しい
CoordinatorLayout
ウィジェットはFrameLayout
に似ていますが、より強力です。CoordinatorLayout
を子ビューのコンテナーまたは最上位のレイアウトとして使用できます。また、他のビューとの相対位置にビューを固定するために使用できるlayout_anchor
属性が用意されています。折りたたみツールバー – 新しい
CollapsingToolbarLayout
は、Toolbar
のラッパーである折りたたみアプリ バーです。 ("アプリ バー" は、以前は "アクション バー" と呼ばれていたものです)。フローティング アクション ボタン – アプリのインターフェイスの主要なアクションを示す丸いボタン。
テキスト編集用のフローティング ラベル – (
EditText
をラップする) 新しいTextInputLayout
ウィジェットを使用して、ユーザーがテキストを入力するときにヒントが非表示の場合は、フローティング ラベルを表示します。ナビゲーション ビュー – 新しい
NavigationView
ウィジェットは、ユーザーが操作しやすい方法でナビゲーション ドロワーを使用するために役立ちます。スナックバー – 新しい
SnackBar
ウィジェットは、画面の下部に短いメッセージが表示される軽量のフィードバック メカニズムです (トーストに似ています)。画面上の他のすべての要素の上に表示されます。マテリアルのタブ – 新しい
TabLayout
ウィジェットには、アプリで最上位のナビゲーションを実装する方法としてタブを表示するための水平レイアウトが用意されています。
Xamarin.Android アプリでデザイン サポート ライブラリを活用するには、Xamarin Xamarin Support Library Design NuGet パッケージをダウンロードしてインストールします。
Xamarin.Android アプリでのマテリアル デザイン サポート ライブラリ の使用の詳細 (コード例を含む) については、Android サポート デザイン ライブラリを使用した美しいマテリアル デザインに関するページを参照してください。
デザイン ライブラリの詳細については、Android 開発者ブログの「Android Design Support Library (Android デザイン サポート ライブラリ)」を参照してください。
その他のライブラリの更新
Android Marshmallow に加えて、Google はいくつかのコア Android ライブラリに関連する更新プログラムを発表しました。 Xamarin では、プレビュー リリースのいくつかの NuGet パッケージでこれらの更新プログラムに対する Xamarin.Android のサポートを提供しています。
Google Play 開発者サービス – Google Play 開発者サービスの最新バージョンには、新しい App Invites 機能が追加され、ユーザーは自分のアプリを友人と共有できます。 この機能の詳細については、Google の App Invites を使用したアプリのリーチの拡張に関するページを参照してください。
Android サポート ライブラリ – これらの NuGet には、ライブラリ API にのみ使用できる機能だけでなく、Android フレームワーク API の下位互換バージョンが用意されています。
Android Wearable ライブラリ – この NuGet には Google Play 開発者サービスのバインディングが含まれています。 最新バージョンの Wearable ライブラリでは、Android Wear プラットフォームに新機能 (カスタム アプリの操作の簡易化を含む) が追加されました。
まとめ
この記事では、Android Marshmallow について紹介し、Android Marshmallow での Xamarin.Android 開発用に最新のツールとパッケージをインストールして構成する方法について説明しました。 また、Xamarin.Android 開発用の最も魅力的で新しい Android Marshmallow 機能の概要についても説明しました。