La proporción del tráfico móvil aumenta cada año. Una persona moderna es móvil y es más fácil para él obtener información de la pantalla de su propio teléfono inteligente. Por lo tanto, el desarrollo de aplicaciones móviles es tendencia. Al desarrollar y probar, es importante tener acceso a una variedad de dispositivos, para que la aplicación se ejecute correctamente en todo tipo de modelos de teléfonos inteligentes. Considere varias opciones para acceder a los dispositivos.
Una forma es
las granjas de nubes móviles :
SAMSUNG Developres: Laboratorio de prueba remotaLaboratorio de pruebas de FirebasePila de navegadorAWS Device FarmCentro de aplicacionesLaboratorios de salsaAlgunos de ellos son gratuitos, con un número limitado de dispositivos, otros, de pago, con una gran flota de dispositivos. A través de ellos, puede obtener acceso remoto a dispositivos reales y rastrear errores que ocurren en dispositivos pero que no pueden reproducirse en emuladores.
Otra forma es crear su propia granja de teléfonos inteligentes Android, gracias a la cual los empleados de diferentes ciudades y países pueden conectarse a dispositivos de oficina. Veamos cómo puede hacer
su propia granja de dispositivos Android a través del proyecto Open STF .Instalación en Ubuntu 18.04:
Actualizar apt-get:
sudo apt-get update
Instale dependencias para OpenSTF (Node.js, NPM, GraphicsMagick, ZeroMQ, Protocol Buffers, yasm, pkg-config, adb).
sudo apt-get install nodejs npm graphicsmagick libzmq3-dev protobuf-compiler libprotobuf-dev yasm pkg-config android-tools-adb
Descargue el paquete deb RethinkDB (el paquete no está disponible para Ubuntu 18.04 a través de 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
Instalar OpenSTF:
npm install -g stf
Si durante la instalación aparecen errores que npm no puede acceder / usr / local / lib o / usr / local / bin, entonces proporcione acceso a ellos:
sudo chown -R $USER /usr/local/lib sudo chown -R $USER /usr/local/bin
Y reiniciar
npm install -g stf
Instalación en MacOS X:
Instalar homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Descargue e instale todas las dependencias:
brew install node rethinkdb graphicsmagick zeromq protobuf yasm pkg-config homebrew/cask/android-platform-tools
Si se produce el siguiente error al instalar 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
Luego debe crear la carpeta / usr / local / Frameworks y otorgarle permisos de escritura:
sudo mkdir /usr/local/Frameworks sudo chown $USER /usr/local/Frameworks
Instalar OpenSTF:
npm install -g stf
Instalación de Windows:
Posible a través de Cygwin, pero no es oficialmente compatible con los desarrolladores.
Lanzamiento
Para que OpenSTF funcione, primero debe ejecutar RethinkDB.
rethinkdb
Siguiente ejecución openstf sí mismo
stf local --public-ip <ip- >
Dispositivos de conexión:
De forma predeterminada, OpenSTF detecta y conecta de forma independiente el dispositivo sin reiniciar cuando conecta dispositivos móviles a la máquina.
Pero en Ubuntu puede haber problemas:
Si el dispositivo móvil no está visible en openstf y se muestra el siguiente mensaje en los registros de openstf:
Unhandled rejection Error: Illegal value for Message.Field .DeviceIntroductionMessage.status of type enum: undefined (not a valid enum value)
y el comando adb devices produce el siguiente resultado:
List of devices attached ??????? no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
Deberá agregar el dispositivo manualmente:
Para hacer esto, ejecuta
lsusb
y encuentre un dispositivo que no pudo determinar.
Por ejemplo
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
La ID del dispositivo USB consta de dos partes: la ID del fabricante (la primera parte de la ID es hasta ':', 2e04, como en el ejemplo anterior) y la ID del modelo del dispositivo (c026).
A continuación, ejecute los comandos donde los parámetros ATTR {idVendor} y ATTR {idProduct} se completan de acuerdo con la ID del dispositivo encontrado incorrectamente:
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
Vale la pena considerar que se recomienda conectar dispositivos a través de un concentrador USB separado con una fuente de alimentación separada (por ejemplo,
esta ).
Una de las características de la granja es que, debido a la carga constante, la duración de la batería de los dispositivos móviles se limitará a 2-3 años, por lo que si la batería es extraíble en el dispositivo, tiene sentido comprarla por adelantado. En los dispositivos, puede desactivar el modo en el que la pantalla del dispositivo está constantemente encendida durante la carga (simplemente deje la configuración para apagar la pantalla automáticamente después de 30 segundos de inactividad), porque OpenSTF puede encender la pantalla de forma independiente cuando sea necesario; esto aumentará la vida útil del dispositivo. Es importante decir que OpenSTF no debe ser accesible desde fuera de la red corporativa, excepto a través de una VPN, ya que no existe una autorización normal para ello.
Capturas de pantalla del programa en ejecución
Lanzamiento de OpenSTF:

Iniciar la aplicación Google Play en OpenSTF

Lista de dispositivos conectados en OpenSTF

Configurar información del dispositivo en OpenSTF

Por lo tanto, su propia granja de dispositivos Android ayuda a configurar el acceso a dispositivos de oficina para empleados remotos, mejorando así la calidad de las aplicaciones desarrolladas. Tiene sus pros y sus contras, que vale la pena considerar.