Yuta Watanabe's Blog

開発周りと、その他諸々

C丼はじめました!Project C-DON

f:id:yuwata:20150116005308j:plain

C# による Project C-DON 「C丼はじめました」 - Microsoft Visual Studio

Visual Studio Tools for Unity 2.0 Preview の新機能等

こんにちは。

マイクロソフトの渡辺です。

2014年11月12日・13日に開催された Microsoft の開発者向けイベント Connect(); にて、Visual Studio Tools for Unity ( UnityVS ) の最新バージョン、Visual Studio Tools for Unity 2.0 Preview が発表されました。Visual Studio 2010, 2012, 2013 にて引き続きご利用頂けると共に、Visual Studio 2015 Preview にも対応しています。

また、Visual Studio Professional 相当の機能を持つ ( つまり拡張機能をインストールできる )、 "無料" のエディション Visual Studio Community 2013 が発表され今後は完全無料で Unity 開発に Visual Studio を利用できるようになりました ( ※ Visual Studio Community 2013 の利用条件は、公式ページをご確認ください ) 。

今回は、この新しい Visual Studio Tools for Unity 2.0 Preview で、新たに追加された機能や改善された点等をご紹介します。

※2015/1/14 追記:Visual Studio Tools for Unity の概要は「 Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう 」をご覧ください

※2015/1/14 追記:スライドでもまとめました適宜ご参照ください

シェーダ ( Shader ) ファイルの編集

追加してほしい機能として要望の多かった、Visual Studio 上でのシェーダ ( Shader ) ファイル、.shader ファイルの編集に対応しました。特に Visual Studio 2015 Preview では、シンタックスハイライトにも対応しています。

f:id:yuwata:20150109123917p:plain

コレクション ( ArrayList, List, Hashtable, Dictionary ) の表示改善

デバッグ時に、よく使われるコレクション ( ArrayList, List, Hashtable, Dictionary ) がより分かりやすく表示されるようになりました。ローカルウィンドウ、またはウォッチウィンドウより値を確認できます。

f:id:yuwata:20150109124126p:plain

f:id:yuwata:20150109124119p:plain

Public でないメンバーや Static なメンバーをカテゴリ分けして表示

ローカルおよびウォッチウィンドウ内で、Public でないメンバーや Static なメンバーは、Public メンバーとは別にカテゴリー分けして表示されるようになりました。外部のライブラリで定義された型を Unity スクリプトから呼び出す際に、その内部的な実装について細かく見ていく機会は少ないと思います。デフォルトでは、Public なメンバーのみ直接表示し、Public でないメンバー、Static なメンバーについては、必要な際にツリーを開いてご確認いただけます。

f:id:yuwata:20150109124147p:plain

ウィザードによる MonoBehaviour の挿入

Visual Studio Tools for Unity には、MonoBehavior ウィザード ( Ctrl + Shift + M ) と クイック MonoBehavior という2つの MonoBehavior 実装支援機能があります。これらの機能を使って挿入されるコードが、ユーザが設定するコーディングスタイルに準拠するようになりました。

コーディングスタイルは、"ツール" メニューのオプション内の、テキスト エディターの項目から設定できます ( もしくは、Visual Studio 右上部の "クイック起動" より直接呼び出せます )。

f:id:yuwata:20150109124508p:plain

クラスと構造体に対する DebuggerDisplayAttribute の実装をサポート

DebuggerDisplayAttribute を使うと、デバッグ時に変数ウィンドウ内でどのように表示されるかを指定できます。単純にプロパティ名や値使うのではなく、それらをカスタマイズして組み合わせた表示もできます。

f:id:yuwata:20150109124605p:plain

また、DebuggerTypeProxyAttribute の実装をサポートもされ、型の表示プロキシを指定することで、より柔軟に開発者が表示をカスタマイズすることができるようになりました。

T4 テキスト テンプレートによるファイルの生成

Visual Studio Tools for Unity のプロジェクトにおいて、Visual Studio の T4 テキスト テンプレートの使用がサポートされました。デザイン時 T4 テキスト テンプレートを用いて、入力ファイルから動的にファイルを生成することができます。例えば XML ファイルを入力として、XML ファイルを変更する度にテキストテンプレートを用いてコードを再生成すると、要件が変わった際に構成を素早く変更でき、変更の信頼性も高まります。

f:id:yuwata:20150113111816p:plain

その他の改善

SerializedProperty のデバッグ時の表示

インスペクタのカスタマイズをする際等に使用する SerializedProperty が持つ値の、デバッグ時の表示方法を改善しました。Serialized Property は intValue や floatValue をはじめ様々な型のフィールドを持っていますが、デバッグ時には、これらのフィールドの中で実際に値を持っているフィールドのみを表示します。この改善により、プロパティの値が確認しやすくなったのはもちろんですが、無駄な例外が発生しないので表示速度が向上しています。

ResX リソースの追加

Visual Studio Tools for Unity が生成するプロジェクト内で、ResX リソースがサポートされました。リソースをプロジェクトに追加すると、生成された C# ファイルの名前が .resx ファイルと同じである限り、VSTU が自動的に認識します。

既知の問題への対応

  • Visual Studio から "Attache and Play" が行われた後、Unity Editor 上でゲームが開始される前に、ソケット接続を初期化するように修正しました。これは "Attach to Unity and Play" を行った際の Unity Editor と Visual Studio の接続の安定性を向上のためです。
  • Unity をフリーズさせがちなメソッドの呼び出しを避けるようにしました。これにより、デバッガーをアタッチした際のフリーズを防ぎます。
  • シンボルがない場合のコーススタックの表示を修正しました。
  • 必要なければ、ログコールバックを登録しないようにしました。

関連情報


Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog

Visual Studio Tools For Unity 2.0 Preview

Visual Studio と C++ による Android NDK 開発

こんにちは。

マイクロソフトの渡辺です。

Visual Studio 2015 Preview が 先日 2014年11月12日・13日に開催された Microsoft の開発者向けイベント Connect(); にて公開されました。

Visual Studio 2015 Prview では、C++ によるクロスプラットフォーム開発の機能が強化され、Android NDK 使った C++ による Android アプリ開発がサポートされています。Android Native Development Tools  ( Android NDK ) は、C/C++ で Android のライブラリやアプリを開発するためのツールキットです。

また、Android アプリのデバッグに使用する Android エミュレータ、Visual Studio Emulator for Android も公開され、Visual Studio における Android 開発の環境はますます充実してきています。

この記事では、C++ と Visual Studio による Android 開発の概要をご紹介します。

環境を整える

Visual Studio と C++ による Android 開発は、Visual Studio 2015 Preview よりサポートされている機能です。まずは、Visual Studio 2015 Preview をインストールしましょう。

インストール時にいくつかオプションを選択できますが、 "Visual C++ for cross-platform mobile development" にチェックをいれてください。

f:id:yuwata:20141220192415p:plain

Visual Studio 2015 Preview のインストールは 2つのステップに分かれており、後半に Android SDK、Android NDK、Apache Ant、Oracle Java SDK、Visual Studio Emulator for Android といった Android アプリ開発に必要なライブラリやツールがインストールされます ( 念のためインストール対象のチェックがついているかご確認ください )。

f:id:yuwata:20141220192431p:plain

プロジェクト テンプレート

[ ファイル ] メニューから [ 新規作成 ] をポイントし、[ プロジェクト ] をクリックします。表示された "新しいプロジェクト" ダイアログ ボックスの左側にあるツリーから、Visual C++、Cross Platform と選択してください。すると、いくつかのプロジェクトテンプレートが表示されます。

現在、Visual Studio 2015 Preview で行なえる C++ による Android アプリ開発は、NativeActivity を利用したアプリ開発、Dynamic Shared Library および Static Library の開発です。プロジェクトテンプレートとしては以下の 4つが提供されています。

  • Dynamic Shared Library (Cross Platform)
  • Native-Activity Application (Android)
  • Static Library (Cross Platform)
  • Dynamic Shared Library (Android)

Visual Studio での C++ によるクロスプラットフォーム開発では、Windows プラットフォーム向けには Visual C++、Android および iOS 向けには Clang/LLVM を使います。

Native-Activity Application プロジェクトの作成

API Level 9 で追加された NativeActivity を使うと、C/C++ のみで Android アプリを開発することが出来ます。この仕組みは、Unreal Engine 4 等のゲーム開発や、OpenGL によるグラフィックを描写するアプリ等で活用されています。

Visual Studio 2015 Preview では、この NativeActivity を使って C/C++ のみで Android アプリ開発を行うプロジェクトテンプレートとして、「 Native-Activity Application (Android) 」が提供されています。

それでは、さっそく新しくプロジェクトを作成してみます。ここでは、FirstNativeActivity という名前にしました。

f:id:yuwata:20141220194612p:plain

生成された Native-Activity Application (Android) のソリューション ( ここでは、FirstNativeActivity ) には、2つのプロジェクトが含まれています。1つは、FirstNativeActivity.NativeActivity、そしてもう1つは FirstNativeActivity.Packaging です。

f:id:yuwata:20141220194710p:plain

FirstNativeActivity.NativeActivity プロジェクトには、アプリを実装するすべての C/C++ コードが含まれます。

ソリューションエクスプローラー から FirstNativeActivity.NativeActivity を右クリックし、プロパティをクリックします。表示されたプロパティ ページのダイアログ ボックスで、構成プロパティ、全般と選択するとプロジェクトに関する一般的な設定が表示されます。

" プラットフォーム ツールセット "を見ると、Clang 3.4 が指定されていることがわかります。また、ターゲット API レベルもここで変更できます。既定は " KitKat 4.4 - 4.4.4, (android-19) " です。

f:id:yuwata:20141220194832p:plain

そして構成プロパティ、C/C++ を選択すると、ビルド時の様々なオプションを設定できることがわかります。コード生成やプリコンパイル、最適化の設定等がここから簡単に行えます。

もう1つの FirstNativeActivity.Packaging プロジェクトの役割は、FirstNativeActivity.NativeActivity プロジェクトで生成されるダイナミック ライブラリ ( Dynamic Shared Library ) を取り込み、Android アプリ ( .apk パッケージ ) を生成することです。.apk ファイルの生成には、Ant ビルドツールが呼び出されます。

その他、FirstNativeAcitvity.Packaging プロジェクトには、パッケージ化の設定を行うマニフェスト ファイル ( AndroidManifest.xml ) や Ant ビルドの設定ファイル ( build.xml ) が含まれます。

また、Visual Studio 2015 Preview では、Android 固有のコードのインテリセンスもサポートされます。リファクタリングやクイックナビゲーションといった他の C++ コーディング支援機能も同様に利用可能です。

f:id:yuwata:20141220195147p:plain

f:id:yuwata:20141220195157p:plain

f:id:yuwata:20141220195204p:plain

C++ で開発された Android アプリのデバッグ

Visual Studio 2015 Preview では、Android 上で動作している C++ コードのデバッグも、もちろんサポートされます。

f:id:yuwata:20141220200024p:plain

デバッグには、Visual Studio が持つ gbd ベースの Android 向けデバッグエンジンを使います。現在サポートされている Visual Studio のデバッグ機能は下記になります。

デバッグにおける現状の制約は下記2点です。

  • デバッグできるのは Android 4.2 以上 ( Jelly Bean API level 17 )
  • デバッグを停止してもアプリは動作し続ける

また、2014/12/20の時点では下記の Visual Studio における C++ のデバッグ機能はサポートされていません。

C++ によるクロスプラットフォーム開発

C++ のコードは、クロスプラットフォーム開発において様々な画面で再利用、共有することが出来ます。Objective-C, Java, C# から C++ で書かれた共通コードを利用する他、例えば Xamarin のようなクロスプラットフォーム開発環境でも利用することができます。

Visual Studio 2015 Preview では、Android および Windows Phone をターゲットとしたライブラリのプロジェクトテンプレートが用意されています。

f:id:yuwata:20141220210600p:plain

Visual Studio での C++ による iOS アプリ向けライブラリの開発のサポートは  2014/12/20 現在、Comming Soon です。

C++ によるクロスプラットフォーム開発の事例も交えたノウハウについては、Microsoft Office と DropBox の開発チームが CppCon 2014にて紹介しています。Microsoft Office は C++ のコードベースからスタートし現在までクロスプラットフォーム対応してきた流れ、また DropBox は Objective-C, Java での開発から C++ でのクロスプラットフォーム開発に移った立場の内容です。

非常に参考になる、濃い内容ですので、ぜひご覧ください。

このあとは                                   

今回は、Visual Studio と C++ による Android NDK 開発の概要をご紹介しました。まだまだ Preview という状態ですが、個人的には思ったより簡単/快適です。ぜひ一度お試しの上、今後の機能実装についてフィードバックをいただければ幸いです!

関連リソース

 

Xamarin Studio Tips - エディタやデバッグの便利な機能

*「 Xamarin Advent Calendar 2014 」18日目の記事です

こんにちは、マイクロソフトの渡辺です。

秋に開催された Xamarin の開発者向けカンファレンス Xamarin Evolve 2014 および 昨年の Xamairn Evolve 2013 でのセッション動画は既に公開されています。Xamarin Studio に関するセッションは、2年連続で Xamarin Studio の開発をしている Michael Hutchinson さんが担当。

この 2つのセッションで紹介されている Xamarin Studio Tips をまとめます。

グローバル サーチ

Xamarin Studio の右上部にある検索ボックスからは、ファイルやソリューション内のコードだけでなく Xamarin Studio が提供する各種機能までを横断的に探せます。Cmd + .  ( Windows の場合は、Ctrl + . ) で検索ボックスにフォーカスを移して検索を実行し、結果から直接ファイルや機能を呼び出せます。

f:id:yuwata:20141213184831p:plain

ショートカットキーの設定

各コマンドに割り当てられているショートカットキーは、[Xamarin Studio] メニューから [Preferences] をクリックすると表示されるダイアログ ボックスの、Environment > Key Bindings から確認、編集できます。Mac と Windows で同じショートカットキーを使いたい、または他の IDE で使い慣れているものを使いたい場合は、ここで設定しましょう。

f:id:yuwata:20141213184845p:plain

ワークスペース

自分にとっての作業場。関連するソリューションやプロジェクトをまとめて管理しましょう。ワークスペースは親子関係を作ることも可能。[File] メニューから [New] をポイントし、[Workspace] を選択すると作成できます。

f:id:yuwata:20141213184856p:plain

コンテキスト スイッチャー

Shared Project 内のコードを編集している際は、エディタ内のナビゲーション バーから現在有効になっているターゲット プラットフォームを切り替えることができます。選択されたプラットフォームに基づいて、シンタックスハイライトやコード補完等のエディタ機能が働きます。

f:id:yuwata:20141213184906p:plain

定義へ移動 & 参照を検索

コードを右クリック、Go to Declare でその関数、変数が定義された場所に移動します ( もちろん他のファイル内でも OK )。また、Find References で選択したものが参照されている箇所を検索できます。

f:id:yuwata:20141213184922p:plain

コードスタイルの変更

C# をはじめ XML、テキストファイル等 のスタイルを任意に変更できます。[Xamarin Studio] メニューから [Preferences] をクリックすると表示されるダイアログ ボックスの、Source Code > Code Formatting を開いてみましょう。例えば、Visual Studio の C# コードフォーマットに慣れていて、それを使いたいという場合には、プルダウンから " Microsoft Visual Studio " を選択するという具合です。

f:id:yuwata:20141213184937p:plain

注意点は、この設定が新しいプロジェクトを生成する際に有効になるということです。既存のソリューションに対しては、ソリューションの Option から変更しましょう。既に他のフォーマットで書いたコードに対しては、[Edit] メニューから [Format] をポイントし、ドキュメント全体を整形する場合には [Format Document] を、選択範囲のみ整形する際は [Format Selection] を選びます。

f:id:yuwata:20141213184954p:plain

エディタ内でのマーカー & ルーラー

[Xamarin Studio] メニューから [Preferences] をクリックすると表示されるダイアログ ボックスの、Text Editor > Markers and Rulers からは、エディタ内で表示される様々なマーカーの表示・非表示が設定できます。変更した箇所のハイライトや、ルーラー等の表示をオン・オフして快適なコーディング環境を見つけましょう。

f:id:yuwata:20141213185009p:plain

コードの折りたたみ

エディタ内でのコードの折りたたみ機能はデフォルトでオフになっています。使いたい方は、[Xamarin Studio] メニューから [Preferences] をクリックすると表示されるダイアログ ボックスの、Text Editor > General で Enable code folding にちぇっくします。

f:id:yuwata:20141213185021p:plain

エディタ内でのコードの選択

Alt + Shift + up/down ( Windows では Ctrl + Shift + up/down ) で、選択範囲の拡大/縮小ができます。マウスを使わずに、コードを選択するのにとっても便利です。また、Alt ( Windows では Ctrl ) を押しながらマウスでコードを選択すると、コードを縦に選択することができます。例えば行の先頭を縦に選択して、同時に複数行編集する際に便利です。

f:id:yuwata:20141213185039p:plain

変数やオブジェクトの選択とハイライト

[Xamarin Studio] メニューから [Preferences] をクリックすると表示されるダイアログ ボックスの、Text Editor > Markers and Rulers にて Highlight identifier references にチェックします。すると、エディタ内でカーソルを合わせた変数やオブジェクトが、数秒後にハイライトされます。赤は定義されている場所、青は参照されている場所を示します。

f:id:yuwata:20141213224213p:plain

Source Analysis

コードを改善する余地のある部分を教えてくれます ( まだ実験中の機能で完璧ではありません。サジェストしてくれる、という期待値が適当です)。デフォルトでオフになっているので、[Xamarin Studio] メニューから [Preferences] をクリックすると表示されるダイアログ ボックスの、Text Editor > Source Analysis で " Enable source analysis of open files " にチェックします。

f:id:yuwata:20141213223603p:plain

すると、スクロールバーに当該箇所がハイライトされ ○ をクリックすると次の箇所に移れます。黄色のアンダーラインが引かれた箇所を右クリックし [Fix] をポイントすると、改善方法案が提示され、選択するとコードが編集されます。また、Alt + Enter でも呼び出せます。

f:id:yuwata:20141213223518p:plain

Alt + Enter

上記の Source Analysis も含め、Alt + Enter は様々な箇所で呼び出すことができます。コードをリファクタリングしたいな、と思った時はその箇所で Alt + Enter を押してみましょう。例えば、下記のコードで window にカーソルを合わせて Alt + Enter、" Convert to Initializer " を選択すると、

f:id:yuwata:20141213223339p:plain

このように変換してくれます。

f:id:yuwata:20141213223347p:plain

色々試してみてください。

コードジェネレーター

コードジェネレーターを使うと定型でコードを生成可能です。[Edit] メニューから [Show Code Generation Window] を選択すると、ポップアップが表示されます。たとえば、Equality members を選択して、評価に含めるメンバーを選択する、というような流れです。

f:id:yuwata:20141213225934p:plain

実装パターンが決まっているものを手動でコーディングすると、ヒューマンエラーが発生する可能性があります。コードジェネレーターを使うことで、そういったことが原因のバグを防ぐのに役立ちます。

f:id:yuwata:20141213225947p:plain

トレースポイントを置く 

特定の位置でアプリの処理を一時停止させるブレークポイントに対してメッセージを出力するのみで処理は続行するトレースポイントも置けます。ブレークポイントを右クリックし " Breakpoint properties " を選択。ダイアログ ボックス内の Print a message and contine を選び、出力するメッセージを設定します。"{}"の中に変数を入れて出力することができ、そこで使える変数や式は、Immediate ウィンドウで使えるものと同じです。自分の意図したものになっているか、Immediate ウィンドウで確かめることができます。

f:id:yuwata:20141213185116p:plain

条件付きブレークポイント

条件式やヒットカウントの状態次第で処理を一時停止します。ブレークポイントを右クリックし " Breakpoint properties " を選択。ダイアログ ボックス内の Advanced Conditions で条件を設定します。また、設定されたブレークポイントの一覧や、デバッグ中のヒットカウント等は、Breakpoint ウィンドウより確認できます。

f:id:yuwata:20141213185125p:plain

関数のブレークポイント と 例外のキャッチポイント

ある関数が呼び出されたら、という条件でブレークポイントを置くことができます。Function ブレークポイントは、自分が実装したコードだけではなく BCL に含まれる関数等にも設定可能です。

また、Exception Catch Point ある例外が発生したタイミングにブレークポイントを置ける機能です。[Run] メニューから [New Exception Catchpoint] をクリックして作成できます。表示されるダイアログ ボックスは Function Break Point と Exception Catchpoint で同じです。

f:id:yuwata:20141213185139p:plain

このあとは

Xamarin Advent Calendar 2014 、まだまだ続きます!

昨年の Xamarin Advent Calendar 2013 での、 id:atsushieno さんの「 Xamarinの2年半を振り返る 」と、先日の id:ytabuchi さんによる 2日目の記事 「 Xamarin 界隈のここ 1年の (私の) 動きについて 」を読むと、改めて Xamarin の急成長を感じます。

年末は、Xamarin Evolve 2014 のセッション動画を見尽くして、2015年を迎えましょう!

Visual Studio Emulator for Android のインストール方法と使い方

こんにちは。

マイクロソフトの渡辺です。

先日、2014年11月12日・13日に開催された Microsoft の開発者向けイベント Connect(); にて Visual Studio 2015 Preview が公開されました。Visual Studio 2015 Preview では、C#/XamarinJavaScript/Cordova を用いたクロスプラットフォーム開発を始め、C++ による Android アプリ開発もサポートされています。

また同時に、Android アプリのデバッグに使用する Android エミュレータ、Visual Studio Emulator for Android も公開されました。

f:id:yuwata:20141209173440p:plain

この Android エミュレータは以下のような開発者の声を受けて開発されています。

  • 標準のエミュレータが非常に遅い
  • 3rd Party エミュレータが Hyper-V とコンフリクトする
  • IDE とは別にのエミュレータをインストールするのが面倒
  • エミュレータのために追加のコストを払いたくない

Visual Studio Emulator for Android は、

  • 高速
  • Hyper-V 上で動作
  • Visual Studio と一緒ににインストールされる
  • 無料

です。

Visual Studio Emulator for Android そのものは、Visual Studio 2015 Preview だけでなく Visual Studio 2013 や 3rd Party の IDE からも利用することができます。ぜひお手元の環境でお試しください。

この記事では、Visual Studio Emulator for Android のインストール方法および使い方、現時点で実装されている機能、今後実装が検討されている機能等をご紹介します。

Visual Studio Emulator for Android のインストールとアップデート

必要環境

Visual Studio Emulator for Android は、Hyper-V がサポートされる OS 上にインストールすることができます。例えば、Windows 7 や Windows 以外のマシン、仮想マシン上では使用することができないのでご注意ください。

インストール

Visual Studio Emulator for Android は、Visual Studio 2015 Preview インストール時に、"Tools for Apache Cordova" または "Visual C++ for Cros Platform Mobile Development" を選択すると、インストールされます。

f:id:yuwata:20141209173705p:plain

これらのオプションを選択し忘れた場合は、Visual Studio Gallery の 「 Emulator for Android 」よりダウンロード&インストールできます。

Visual Studio Emulator for Android の初回起動時には、 Visual Studio 2015 Preview が必要です。1度起動した後は、Visual Studio 2013 やその他の IDE からも利用可能です。

アップデート

Visual Studio Emulator for Android のアップデートは、Visual Studio または Visual Studio Gallery より取得します。

Visual Studio から取得する際は、Quick Launch ( クイック起動 ) のボックスに Update ( 更新 ) と入力し、"Tools -> Extentions and Updates...( ツール -> 拡張機能と更新プログラム )" をクリックします。

f:id:yuwata:20141209173823p:plain

すると Extensions and Update ( 拡張機能と更新プログラム ) のダイアログ ボックスが表示されます。左側のツリーより Updates ( 更新プログラム ) 、Visual Studio Gallery ( Visual Studio ギャラリー ) と選択すると、更新があれば Emulator for Android が表示されます。Update ( 更新 ) ボタンを押してアップデートを取得しましょう。

f:id:yuwata:20141209173832p:plain

また、Visual Studio Gallery の 「 Emulator for Android 」からもアップデートを取得することができます。

Visual Studio Emulator for Android の起動

デバッグ

Visual Studio 2015 Preview でのデバッグ時に、ターゲットとして VS Emulator Android Phone および VS Emulator Android Tablet が選択できます。もちろん、C#/Xamarin, JavaScript/Cordova, C++/Android それぞれで利用できます。

f:id:yuwata:20141209174016p:plain

ここでは、JavaScript/Cordova アプリのプロジェクトから Visual Studio Emulator for Android を起動してみましょう。

[ File ] ( [ ファイル ] ) メニューから [ New ] ( [ 新規作成 ] ) をポイントし、[ Project ] ( [ プロジェクト ] ) をクリックします。表示された New Project  ( 新しいプロジェクト ) のダイアログ ボックス左側のツリーより、JavaScript、Apache Cordova Apps と選択すると " Blank App ( Appache Cordova ) " テンプレートが表示されます。適当に名前を付けてプロジェクトを作成しましょう。

f:id:yuwata:20141209174050p:plain

プロジェクトの作成された後は、デバッグ ターゲットを " VS Emulator Android Phone " に変更し、実行します。Visual Studio Emulator for Android が起動されます。

f:id:yuwata:20141209174148p:plain

他の IDE からの利用

残念ながら現在は エミュレータを上記以外の方法から"起動"する方法がありません。現状の一時的な回避策は、上記の手順でエミュレータを起動した後そのままの状態にしておくことです ( 起動の際に使用したプロジェクトは閉じてしまって構いません )。エミュレータが起動されていれば ADB ( Android Debug Bridge ) を通じて、他の IDE からも Visual Studio Emulator for Android をデバッグ ターゲットして利用できます。

Visual Studio Emulator for Android の機能

ここからは、Visual Studio Emulator for Android で現在提供されている、様々なエミュレータとしての機能をご紹介してきます。

ズーム

ズームボタンを押すと、エミュレータのサイズを変更できます。また、その上のボタンは、エミュレータのサイズを、画面のサイズに合わせる機能です。

f:id:yuwata:20141209175611p:plain

画面の向き、ローテーション

ローテーションボタンを押すと、エミュレータが回転します。デバイスの向きに応じたデバッグにご利用ください。

f:id:yuwata:20141209175618p:plain

ネットワーク情報

エミュレータはホストマシンのネットワークを利用するので、追加で必要な設定はありません。">>" ボタンを押すと " Additional Tools " ウィンドウが表示されます。その中の " Network " タブにて、エミュレータのネットワーク情報を確認できます。

f:id:yuwata:20141209175631p:plain

位置情報 ( GPS )

" Location " タブでは、位置情報や移動のシミュレートを設定できます。シミュレートのモードは、

  • Live: ピンを置くとすぐに、位置情報がエミュレータに送られる
  • Pin: 一番右の再生ボタン ( Play all points ) を押すと、" Seconds per pin " で指定された間隔で、配置した各ピンの位置情報がエミュレータに送られる
  • Route: 配置したピンからシミュレータが自動的にルートを計算し、一番右の再生ボタン ( Play all points ) を押すと、指定された速さで移動をシミュレートする

の 3つです。
Route モード時、選択できる速度は以下の 4つ。

  • Speed Limit: ルートの制限速度
  • Walking: 自然な歩行ペース ( 5km/時 )
  • Biking: 自転車移動 ( 25 km/時 )
  • Fast: 制限速度より高速

 また、Accuracy profile として位置情報の精度を選択できます。

  • Pinpoint: 完全に正確 ( 現実的ではないが、デバッグには便利 )
  • Urban: 都市を想定。位置情報取得のための基地局や Wi-Fi アクセスポイントが高密度で存在する状態。
  • Suburban: Urban と比較して Wi-Fi のアクセスポイントの密度は高くない
  • Rural: 基地局の密度が低く、WiFi アクセスポイントはほとんどない

f:id:yuwata:20141209175650p:plain

加速度

デバイスの動きに応じたアプリを開発する際は、このシミュレーション機能を利用しましょう。" Accelerometer "タブから利用できます。

Recorded data のプルダウンより " shake " を選択し " Play " を押すと、シェイクをシミュレートできます。

f:id:yuwata:20141209175703p:plain

バッテリーのシミュレーション

Battery タブより、バッテリーの残量をシミュレートできます。

f:id:yuwata:20141209175713p:plain

スクリーンショットを取る

スクリーンショットタブにて、エミュレータのスクリーンショットが撮れます。

f:id:yuwata:20141209175726p:plain

ドラッグ&ドロップ

APK ファイルは、エミュレータ上にドラッグ&ドロップすることでインストール可能です。また、その他のファイルをドラッグ&ドロップすると、SD カードに保存されます。

f:id:yuwata:20141209175741p:plain

SD カード

SD カードの読み書きもシミュレート可能です。エミュレータは、別途 SD カードサポートのための VHD を使っています。なので、SD カードにアクセスする場合は、この VHD を一旦停止した上で、Windows からマウントします。

ということで、SD カードにアクセスする手順は

  1. エミュレータを停止 ( 閉じる )
  2. SD カードの VHD を開く。デフォルトでは下記パスにあります。
    C:\Users\%username%\AppData \Local\Microsoft\XDE\Android
  3. エクスプローラで開くと自動的にマウントされて、ファイルが確認できる
  4. 再び エミュレータを使う際は、先にマウントした SD カードを " 取り出し " する ( 右クリック -> 取り出し )

という流れです。

f:id:yuwata:20141209175758p:plain

カメラ

カメラを起動すると、テスト用のアニメーションが表示されます。これを用いてカメラでの写真撮影をシミュレートすることができます。

f:id:yuwata:20141209175811p:plain

エミュレータの機能のいくつかは Windows Phone のエミュレータと同じです。Windows Phone エミュレータのドキュメントも合わせてご参照ください。

Visual Studio Emulator for Android の詳細

最後に Visual Studio Emulator for Android について、少々詳し目なトピックをご紹介します。

エミュレータの設定

現在サポートされている Android デバイスの設定は、

  • Android phone, 5" screen, 720x1280, KitKat 4.4.2 API Level 19
  • Android tablet, 7" screen, 1080x1920, KitKat 4.4.2 API Level 19

の 2つです。デバイスのメモリサイズやコア数は、Hyper-V Manager から変更することができます。

f:id:yuwata:20141209180047p:plain

現状の制約

Visual Studio Emulator for Android は今後のアップデートでさらに進化していきますが、現状下記の制約があります。

  • OpenGL ES 2+ は現在サポートされていません
  • KitaKat API 19 以外のバージョンは追って公開予定です
  • GMS パッケージがイメージに含まれていないため、Google Play Services と連携したアプリは動作しません
  • エミュレータ上でアプリを動作させるには、x86 向けにコンパイルする必要があります

参考情報

Visual Studio Emulator for Android に関する情報は下記の記事、動画も合わせてご覧ください。

Visual Studio Emulator for Android

Introducing Visual Studio's Emulator for Android

 Visual Studio Emulator for Android | Connect(); Microsoft Visual Studio vNext & Azure | Channel 9

このあとは

この記事では、Visual Studio Emulator for Android のインストール方法から各種機能、現状の制約等をご紹介しました。今後も新しい機能がリリースされ次第、アップデートをお知らせしていきます。

このあとはぜひ、iOS/Android アプリ開発にも対応した Visual Studio で、JavaScript/Cordova アプリや C#/Xamarin、C++/Android アプリ開発をお試しください。

Visual Studio 2015 Preview のダウンロード & インストール