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



All Articles