.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

SaaS開発で調べたスマホネイティブ/Androidのデバッグについてのメモ。

エミュレータ

  • エミュレータでデバッグできる。
  • Android Studio をインストールすればエミュレータがついてくる。
  • Android Studio は Windows、Mac、Linuxで動作する。

種類

Android Virtual Device (AVD)

  • Googleの提供するAndroidエミュレータ
  • シミュレートする端末の外観、機能、システムイメージを定義する。
  • 参考
    • 作成する場合、AVD Manager直ではなく、
      Android Studioから作成する方法がサポート効いててやり易い。

Visual Studio Emulator for Android

  • Microsoftの提供するAndroidエミュレータ
  • Hyper-V上で動作し、Visual Studioから利用する。

BluestacksとGenymotion

  • Genymotion
    VirtualBox?で動作。
  • Bluestacks
    QEMUというプロセッサエミュレータで動作。

Ripple Emulator

  • 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との通信

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 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のアドレスをプロキシ(のアドレス)として指定するようにする。

アプリケーション・コンポーネント毎の設定

  • Chromeなどはプロキシさえ設定すれば、プロキシ認証のダイアログが表示される。
  • GoogleMap?はプロキシ認証は通ららないもよう。ローカルプロキシツールでクリア。
  • WebViewなどでプロキシ認証を通す方法

Hyper-Vを一時的に無効化する。

Docker for WindowsでHyper-Vを使ってしまう。

実機

USBで接続した実機デプロイ&デバッグ

接続

USBデバッグを許可

端末の開発者オプションを有効にし、USBデバッグを許可にする

Google USB ドライバのインストール

通信

Wi-Fi、4G/LTE

Wi-Fi、4G/LTE通信は可能。

ホストとの通信

基本的にホストと通信不可の模様。

参考

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 サーバと通信。

サーバとエミュレータ / 端末インスタンスの接続

サーバは、以下の方法でエミュレータ / 端末インスタンスへの接続をセットアップ。

  • サーバは、エミュレータ / 端末が使用する ポートをスキャンしインスタンスを見つける。
  • サーバは adb デーモンを見つけると、そのポートへの接続をセットアップする。
  • 各エミュレータ / 端末インスタンスはサーバへの連続ポート+1の接続をセットアップする。
  • 以下その例。
    エミュレータ 1、コンソール: 5554
    エミュレータ 1、adb: 5555
    エミュレータ 2、コンソール: 5556
    エミュレータ 2、adb: 5557

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-18 (火) 12:11:00 (32d)