Open STFを使用してAndroidデバイスファームを作成する

モバイルトラフィックの割合は毎年増加しています。 現代人はモバイルであり、自分のスマートフォンの画面から情報を取得する方が簡単です。 そのため、モバイルアプリケーションの開発が進んでいます。 開発とテストを行う際には、アプリケーションがあらゆる種類のスマートフォンモデルで正しく実行されるように、さまざまなデバイスにアクセスできることが重要です。 デバイスにアクセスするためのさまざまなオプションを検討してください。

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デバイスの独自のファームは、リモートの従業員のためにオフィスデバイスへのアクセスを構成するのに役立ち、それによって開発されたアプリケーションの品質が向上します。 長所と短所があり、検討する価値があります。

Source: https://habr.com/ru/post/J447236/


All Articles