「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[スマホのエミュレータ]]
--[[Androidのデプロイ]]

*目次 [#h59a3561]
#contents

*概要 [#g90bc7e9]
-エミュレータでデバッグできる。

-[[IDE>統合開発環境 (IDE)]]をインストールすればエミュレータがついてくるケースが多い。
--[[Android Studio]]
--[[Visual Studio>統合開発環境 (IDE)#j9da19e0]]

*詳細 [#ud23932e]

**種類 [#kbd56851]

***Android Virtual Device (AVD) [#s4012251]
-Googleの提供するAndroidエミュレータ

-[[Android Studio]]、[[Visual Studio>統合開発環境 (IDE)#j9da19e0]]から利用できる。~
([[どうも、この辺と同じ仕組みらしい>Bluestacks#f717484a]](ADB))

-[[シミュレートする端末の外観、機能、システムイメージを定義>#s9f7ba94]]する。

-参考
--作成する場合、AVD Manager直ではなく、~
Android Studioから作成する方法がサポート効いててやり易い。
---[Android] エミュレータ AVD Manager の設定 | Androidアプリ開発~
https://akira-watson.com/android/avd-manager.html

--HAXMで高速化する。
---Android SDK の高速エミュレータ、使ってますか? | OPTPiX Labs Blog~
http://www.webtech.co.jp/blog/os/android/5966/
---Win10 で Xamarin のサンプル動かしたいのにエミュが動かなかった - Qiita~
https://qiita.com/90_jill/items/267b131ce6f41bfc7bf0

***Visual Studio Emulator for Android [#h8757303]
-Microsoftの提供するAndroidエミュレータ
-Hyper-V上で動作し、[[Visual Studio>統合開発環境 (IDE)#j9da19e0]]から利用する。

-どうなんでしょう。

--Visual Studio Emulator for Android も捨てたもんじゃない - Qiita~
https://qiita.com/NakamuraYoichi/items/9a8fce49e725537dbed6

--個人的に、ダメだと思う点

---Hyper-V前提なので、~
VirtualBoxやHAXMと共存不可能。

---[[下記のインターネット接続>#jb04f094]]に課題がある。

***[[Bluestacks]]とGenymotion [#def8e071]
-Genymotion~
VirtualBoxで動作。

-[[Bluestacks]]~
QEMUというプロセッサエミュレータで動作。

-参考
--BluestacksとGenymotionの比較 - 気まぐれSE日記~
http://d.hatena.ne.jp/tak_yah/20131119
--Windows向けAndroidエミュレータまとめ~
http://windows.blogo.jp/emulator/android
--GenymotionとBlueStacksは同じマシンに同居できない - いろいろやってみるにっき~
http://shigeo-t.hatenablog.com/entry/2014/07/14/101036

--Top 9 Best Android Emulators For Windows 10 PC - Andy Tips~
http://andytips.org/top-android-emulators-for-windows/
--Best 10 BlueStacks Alternative To Run Android Apps On PC - Easy Tech Trick~
https://www.easytechtrick.com/best-bluestacks-alternative/

***Ripple Emulator [#ob3dbed2]
-Google Chrome上でCordovaの機能をエミュレーションする。
-各モバイルの画面サイズや,GPS,コンパス,モーションセンサを再現
-対応していないプラグインも多々ある。
-Cordova特有のdevicereadyイベントをサポート

-参考
--第2回 エミュレータ/実機なしで動作確認─Ripple Emulatorを使ったPhoneGapアプリ開発~
HTML5とPhoneGapで作る,iPhone/Androidアプリ開発TIPS|gihyo.jp … 技術評論社~
http://gihyo.jp/dev/serial/01/phonegap_tips/0002

**ホストOSとの通信 [#m9697bc0]
IDEやエミュレータなど環境によって様々

-10.0.2.2や、169.254.80.80などが利用される。~
(詳細不明だが、port指定ができないようなのでlocal loopbackでないもよう)

-上記のアドレスは、localhost(127.0.0.1)ではないので、~
ASP.NETのホスト・プロセスの切り替え or 設定変更が必要になる。

--IIS Express ---> IISホストへ変更するか、
--設定で、IIS Expressを外部アクセス可能にしておく。
---Open 棟梁の使い方(実践編)第2回 - OSSコンソーシアム~
https://www.osscons.jp/jo8zq1hj9-537/#_537


***[[Android Studio]]環境 [#p46a2112]
10.0.2.2 が使われる模様(AVD起動中に以下のShellで設定されているもよう)。
 AVD_LOCAL_IP="10.0.2.2"

***[[Visual Studio>統合開発環境 (IDE)#j9da19e0]]環境 [#f7616ac8]
-基本的に169.254.80.80 が使用される模様。~
-AVDから構成したエミュレータを使用した場合は、10.0.2.2が使用される模様。

***localhostの書き換え [#n8165dd8]
-Androidにもhostsファイルがあり、それを書き換えれば、~
localhostを、10.0.2.2や、169.254.80.80に変更可能。

-書き換えツールは、Android\android-sdk\toolsにある。~
SDK ManagerからSDKをインストール、インストール・パスを確認し使用可能。

-Androidのhostsファイル書き換え方法については、以下のサイトが参考になるが、できてない。
--俺達のAndroid Emulatorでローカルに立てたサーバにアクセスする方法 - Qiita~
https://qiita.com/norisu0313/items/4f24ef4eea5fdac3ad5f
--Android Emulatorのhostsを書き換える方法 - Qiita~
https://qiita.com/kgmyshin/items/9964b9cc2193d1cae985

***参考 [#q3617bc1]
-androidエミュレータからlocalhostのASP.NETサイトに接続してデバッグ - Jiro Laboratory~
http://jirolabo.hatenablog.com/entry/2014/11/02/002133
-AndroidアプリからASP.NET Web APIへの接続方法 その1 - emu雑記~
http://emu717171.hatenablog.com/entry/2013/11/25/001859
-Android Studio AVD (エミュレータ) からデスクトップの~
ローカルホストに接続させる設定 - 長生村本郷Engineers'Blog~
http://kenzo0107.hatenablog.com/entry/2016/03/09/222948

**インターネット接続 [#z5e491e5]
***Android Virtual Device (AVD) [#h4d579e8]
-既定で接続された(されない時もあった)。
-その際、ホスト側で名前解決できている範囲は、~
エミュレータ側でも名前解決できるもよう。
-接続されない時は、優先DNSに「8.8.8.8」を設定したら解決。

-参考
--Set Up Android Emulator Networking | Android Studio~
https://developer.android.com/studio/run/emulator-networking.html
--Android Studio エミュレータのネットワーク設定~
https://android.benigumo.com/20170926/android-studio-emulator-config/
--「8.8.8.8」とか「129.250.35.250」とか、~
おすすめDNSサーバIPを教えてくれる無料なアプリ「namebench」~
https://android.benigumo.com/20110918/%E3%80%8C8-8-8-8%E3%80%8D%E3%81%A8%E3%81%8B%E3%80%8C129-250-35-250%E3%80%8D%E3%81%A8%E3%81%8B%E3%80%81%E3%81%8A%E3%81%99%E3%81%99%E3%82%81dns%E3%82%B5%E3%83%BC%E3%83%90ip%E3%82%92%E6%95%99%E3%81%88/

***Visual Studio Emulator for Android [#jb04f094]
Hyper-Vを使用したVS EmulatorでWiFi(iphoneデザリング)を使う場合に上手く行っていない。

-Hyper-V で無線 LAN のみの PC でもネットワーク接続できるようにする方法: ある SE のつぶやき~
http://fnya.cocolog-nifty.com/blog/2013/08/hyper-v-lan-pc-.html

-Hyper-V and Wireless networking | Ben Armstrong’s Virtualization Blog~
https://blogs.msdn.microsoft.com/virtual_pc_guy/2015/02/02/hyper-v-and-wireless-networking/

-Hyper-V emulator(Android and WP) using the internet does not work — Xamarin Forums~
https://forums.xamarin.com/discussion/71837/hyper-v-emulator-android-and-wp-using-the-internet-does-not-work
--Why can’t the Windows Phone Emulator go online? – Windows Store Developer Solutions~
https://blogs.msdn.microsoft.com/wsdevsol/2013/10/01/why-cant-the-windows-phone-emulator-go-online/

-Android emulator doesn't have an external internet connection - Developer Community~
https://developercommunity.visualstudio.com/content/problem/32538/android-emulator-doesnt-have-an-external-internet.html

**プロキシ設定 [#t3abdc2a]
***エミュレータ内の設定 [#u1f6de17]
-ADT付属のAndroidエミュレータにプロキシ設定をする | | Loverfriend~
http://loverfriend.org/develop/20141224/

***エミュレーター外の設定 [#q8932236]
-プロキシ認証に対応していないアプリケーションがある場合は、~
Windows側にHttpProxyAuthなどのツールを使用して認証を通す。

-そもそもスマホはプロキシ環境下で使用しないので、~
HttpProxyAuthなどのローカル・プロキシ・ツールを使用したほうが良い。

-HttpProxyAuthなどのローカル・プロキシ・ツールを使用する場合、~
エミュレータのAPN ( Access Point Name ) 設定に、~
ローカル・ループバック・アドレス(127.0.0.1 or localhost)を指定できないので、~
ホストPCのNICのアドレスをプロキシ(のアドレス)として指定するようにする。

***アプリケーション・コンポーネント毎の設定 [#pf6ecbe2]
-Chromeなどはプロキシさえ設定すれば、プロキシ認証のダイアログが表示される。
-GoogleMapはプロキシ認証は通ららないもよう。ローカルプロキシツールでクリア。
-[[WebViewなどでプロキシ認証を通す方法>WebView#cb35e1a3]]。

**Hyper-Vを一時的に無効化する。 [#pfe59a21]
[[Docker for Windows>https://techinfoofmicrosofttech.osscons.jp/index.php?Docker%20for%20Windows]]でHyper-Vを使ってしまう。

-他の仮想環境を利用するためにHyper-Vを一時的に無効にする:Tech TIPS - @IT~
http://www.atmarkit.co.jp/ait/articles/1511/13/news032.html

*参考 [#x0af0393]

**AVDエミュレータ作成 [#s9f7ba94]

***ビルド [#n17f382c]
[[Android Studio]]を開き、任意で作成したプロジェクトのビルドを行う。~
(一度ビルドを成功させておかないと、[AVD Manager]が表示されないため )

***AVDを作成する。 [#lddc195f]
ビルド成功後、[Tools]-[AVD Manager]でCreate Virtual Deviceをクリックし、AVDを作成する。~
(AVD Managerが表示されない場合は、[[Android Studio]]を再起動する。)

***ダウンロード [#te929074]
AVD作成プロセスの中で、APIレベルに対応するAVDをダウンロードする。

***VT-X機能の有効化 [#h2500bf2]
必要に応じて、PCのVT-X機能を有効にする。BIOS設定から行う。

***HAXMのインストール [#a847edd0]
必要に応じて、以下のいずれかの方法でHAXMをインストールする。

-[[Android Studio]]の[AVD Manager]で作成したAVDを起動しようとすると、HAXMのインストールを求められるので、指示に従いインストールする。
-「C:\Users\[ユーザ]\AppData\Local\Android\Sdk\extras\intel\Hardware_Accelerated_Execution_Manager」に格納されている「intelhaxm-android.exe」を実行し、インストールする。~
(※) 以下のエラーが出る場合は、https://stackoverflow.com/questions/47631771/emulator-process-finished-with-exit-code-1073741819-0xc0000005
の情報をもとに、AVDを修正する。
 ---------------------------------------------------------------------------------------
 Emulator: Process finished with exit code -1073741819 (0xC0000005)
 ---------------------------------------------------------------------------------------

***AVDの起動 [#l49ee71f]
エミュレートする前に[[Android Studio]]から作成したAVDを起動しておく。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS