「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
SaaS開発で調べたスマホネイティブ/Androidのデバッグについてのメモ。
エミュレータ †
- エミュレータでデバッグできる。
- Android Studio をインストールすればエミュレータがついてくる。
- Android Studio は Windows、Mac、Linuxで動作する。
種類 †
Android Virtual Device (AVD) †
- シミュレートする端末の外観、機能、システムイメージを定義する。
- 参考
- 作成する場合、AVD Manager直ではなく、
Android Studioから作成する方法がサポート効いててやり易い。
Visual Studio Emulator for Android †
- Microsoftの提供するAndroidエミュレータ
- Hyper-V上で動作し、Visual Studioから利用する。
- Genymotion
VirtualBox?で動作。
Ripple Emulator †
- Google Chrome上でCordovaの機能をエミュレーションする。
- 各モバイルの画面サイズや,GPS,コンパス,モーションセンサを再現
- 対応していないプラグインも多々ある。
- Cordova特有のdevicereadyイベントをサポート
ホストOSとの通信 †
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を外部アクセス可能にしておく。
Android Studio環境 †
10.0.2.2 が使われる模様(AVD起動中に以下のShellで設定されているもよう)。
AVD_LOCAL_IP="10.0.2.2"
Visual Studio環境 †
- 基本的に169.254.80.80 が使用される模様。
- AVDから構成したエミュレータを使用した場合は、10.0.2.2が使用される模様。
localhostの書き換え †
- Androidにもhostsファイルがあり、それを書き換えれば、
localhostを、10.0.2.2や、169.254.80.80に変更可能。
- 書き換えツールは、Android\android-sdk\toolsにある。
SDK ManagerからSDKをインストール、インストール・パスを確認し使用可能。
- Androidのhostsファイル書き換え方法については、以下のサイトが参考になるが、できてない。
参考 †
インターネット接続 †
Android Virtual Device (AVD) †
- 既定で接続された(されない時もあった)。
- その際、ホスト側で名前解決できている範囲は、
エミュレータ側でも名前解決できるもよう。
- 接続されない時は、優先DNSに「8.8.8.8」を設定したら解決。
Visual Studio Emulator for Android †
Hyper-Vを使用したVS EmulatorでWiFi?(iphoneデザリング)を使う場合に上手く行っていない。
プロキシ設定 †
エミュレータ内の設定 †
エミュレーター外の設定 †
- プロキシ認証に対応していないアプリケーションがある場合は、
Windows側にHttpProxyAuth?などのツールを使用して認証を通す。
- そもそもスマホはプロキシ環境下で使用しないので、
HttpProxyAuth?などのローカル・プロキシ・ツールを使用したほうが良い。
- HttpProxyAuth?などのローカル・プロキシ・ツールを使用する場合、
エミュレータのAPN ( Access Point Name ) 設定に、
ローカル・ループバック・アドレス(127.0.0.1 or localhost)を指定できないので、
ホストPCのNICのアドレスをプロキシ(のアドレス)として指定するようにする。
アプリケーション・コンポーネント毎の設定 †
Hyper-Vを一時的に無効化する。 †
Docker for WindowsでHyper-Vを使ってしまう。
実機 †
USBで接続した実機デプロイ&デバッグ
接続 †
USBデバッグを許可 †
端末の開発者オプションを有効にし、USBデバッグを許可にする
Google USB ドライバのインストール †
通信 †
Wi-Fi、4G/LTE †
Wi-Fi、4G/LTE通信は可能。
ホストとの通信 †
- 基本的にホストと通信不可の模様。
- 基本的にWifi経由で通信すればイイ。
参考 †
Android Debug Bridge (adb) †
https://developer.android.com/studio/command-line/adb?hl=JA
概要 †
- エミュレータや接続された端末と通信できる
用途の広いコマンドライン ツール
- adbは、android_sdk/platform-tools/ にある。
コンポーネント †
クライアント †
- 開発マシンで実行される。
- adbコマンドを送信する。
サーバー †
- 開発マシンでバックグラウンド プロセスとして実行される。
- クライアントとデーモン間の通信を管理する。
デーモン †
- 端末でコマンドを実行する。
- 各エミュレータ / 端末インスタンスで
バックグラウンド プロセスとして実行される。
仕組 †
以下の順でデバッグが確立する。
adb クライアントを起動する †
- adb クライアントを起動すると、既に実行されている
adb サーバ プロセスがあるかどうかを最初に確認する。
- adb サーバ プロセスがない場合、クライアントはサーバを起動。
クライアント・サーバ間の接続 †
- サーバーが起動すると、サーバはローカル TCP ポート 5037 をリッスン。
- すべての adb クライアントはポート 5037 を使用して adb サーバと通信。
サーバとエミュレータ / 端末インスタンスの接続 †
サーバは、以下の方法でエミュレータ / 端末インスタンスへの接続をセットアップ。
参考 †