1つの方法はモバイルクラウドファームです。
SAMSUNG Developres:リモートテストラボ
Firebaseテストラボ
Browserstack
AWSデバイスファーム
アプリセンター
ソースラボ
それらのいくつかは無料です-限られた数のデバイスで、他は-多数のデバイスで支払われます。 それらを介して、実際のデバイスへのリモートアクセスを取得し、デバイスで発生するがエミュレータでは再現されないバグを追跡できます。
別の方法は、Androidスマートフォンの独自のファームを作成することです。これにより、さまざまな都市や国の従業員がオフィスデバイスに接続できるようになります。 Open STFプロジェクトを使用して、独自のAndroidデバイスファームを作成する方法を見てみましょう。
Ubuntu 18.04へのインストール:
apt-getを更新します。
sudo apt-get update
OpenSTFの依存関係(Node.js、NPM、GraphicsMagick、ZeroMQ、プロトコルバッファー、yasm、pkg-config、adb)をインストールします。
sudo apt-get install nodejs npm graphicsmagick libzmq3-dev protobuf-compiler libprotobuf-dev yasm pkg-config android-tools-adb
debパッケージRethinkDBをダウンロードします(パッケージはUbuntu 18.04ではaptを介して利用できません):
wget https://github.com/srh/rethinkdb/releases/download/v2.3.6.srh.1/rethinkdb_2.3.6.srh.1.0bionic_amd64.deb sudo dpkg -i rethinkdb_2.3.6.srh.1.0bionic_amd64.deb
OpenSTFをインストールします。
npm install -g stf
インストール中にnpmが/ usr / local / libまたは/ usr / local / binにアクセスできないというエラーが発生した場合は、アクセスを許可します。
sudo chown -R $USER /usr/local/lib sudo chown -R $USER /usr/local/bin
そして再起動
npm install -g stf
MacOS Xでのインストール:
homebrewをインストールします。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
すべての依存関係をダウンロードしてインストールします。
brew install node rethinkdb graphicsmagick zeromq protobuf yasm pkg-config homebrew/cask/android-platform-tools
protobufのインストール時に次のエラーが発生した場合:
Error: An unexpected error occurred during the `brew link` step The formula built, but is not symlinked into /usr/local Permission denied @ dir_s_mkdir - /usr/local/Frameworks Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
次に、/ usr / local / Frameworksフォルダーを作成し、書き込み権限を付与する必要があります。
sudo mkdir /usr/local/Frameworks sudo chown $USER /usr/local/Frameworks
OpenSTFをインストールします。
npm install -g stf
Windowsインストール:
Cygwinを介して可能ですが、開発者によって公式にサポートされていません。
打ち上げ
OpenSTFが機能するには、最初にRethinkDBを実行する必要があります。
rethinkdb
次にopenstf自体を実行します
stf local --public-ip <ip- >
デバイスの接続:
デフォルトでは、OpenSTFは、モバイルデバイスをマシンに接続するときに、再起動せずにデバイスを個別に検出して接続します。
しかし、Ubuntuには問題があるかもしれません。
モバイルデバイスがopenstfで表示されず、openstfログに次のメッセージが表示される場合:
Unhandled rejection Error: Illegal value for Message.Field .DeviceIntroductionMessage.status of type enum: undefined (not a valid enum value)
また、adb devicesコマンドは次の出力を生成します。
List of devices attached ??????? no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
デバイスを手動で追加する必要があります。
これを行うには、実行します
lsusb
判断できなかったデバイスを見つけます。
例えば
Bus 001 Device 010: ID 2e04:c026 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
USBデバイスIDは、メーカーID(IDの最初の部分は上記の例のように「:」、2e04まで)とデバイスモデルID(c026)の2つの部分で構成されています。
次に、誤って検出されたデバイスのIDに応じて、パラメーターATTR {idVendor}およびATTR {idProduct}が入力されるコマンドを実行します。
echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="2e04", ATTR{idProduct}=="c026", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules sudo udevadm control --reload-rules sudo udevadm trigger --verbose --action=add --subsystem-match=usb
別個の電源(たとえば、 これ )を備えた別個のUSBハブを介してデバイスを接続することをお勧めします。
ファームの機能の1つは、常時充電のため、モバイルデバイスのバッテリ寿命が2〜3年に制限されることです。したがって、デバイスでバッテリを取り外し可能な場合は、事前に購入することをお勧めします。 端末では、充電中に端末の画面が常にオンになるモードをオフにできます(30秒間操作がないと自動的に画面をオフにする設定のままにしてください) OpenSTFは、必要なときに画面をオンにすることができます。これにより、デバイスの寿命が延びます。 OpenSTFには通常の許可がないため、VPNを介した場合を除き、企業ネットワークの外部からアクセスできないようにすることが重要です。
実行中のプログラムのスクリーンショット
OpenSTFを起動します。
OpenSTFでのGoogle Playアプリの起動
OpenSTFの接続デバイスのリスト
OpenSTFでのデバイス情報の構成
したがって、Androidデバイスの独自のファームは、リモートの従業員のためにオフィスデバイスへのアクセスを構成するのに役立ち、それによって開発されたアプリケーションの品質が向上します。 長所と短所があり、検討する価値があります。