All Projects → gojuno → Swarmer

gojuno / Swarmer

Licence: apache-2.0
Reactive tool to create and start multiple Android Emulators in parallel.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Swarmer

Livesmashbar
An elegant looking and easy to use informative library with LiveData integration for Android.
Stars: ✭ 107 (-47.29%)
Mutual labels:  android-sdk
Appauth Android
Android client SDK for communicating with OAuth 2.0 and OpenID Connect providers.
Stars: ✭ 1,922 (+846.8%)
Mutual labels:  android-sdk
Restcomm Android Sdk
Android Mobile SDK to easily integrate communication features (WebRTC, messaging, presence, voice, video, screensharing) based on RestComm into native Mobile Applications
Stars: ✭ 139 (-31.53%)
Mutual labels:  android-sdk
Android Inappbilling
A sample which uses Google's Play Billing Library and it does InApp Purchases and Subscriptions.
Stars: ✭ 114 (-43.84%)
Mutual labels:  android-sdk
Backdoor Apk
backdoor-apk is a shell script that simplifies the process of adding a backdoor to any Android APK file. Users of this shell script should have working knowledge of Linux, Bash, Metasploit, Apktool, the Android SDK, smali, etc. This shell script is provided as-is without warranty of any kind and is intended for educational purposes only.
Stars: ✭ 1,766 (+769.95%)
Mutual labels:  android-sdk
Instabug Android
In-app feedback and bug reporting tool for apps.
Stars: ✭ 136 (-33%)
Mutual labels:  android-sdk
Chat Sdk Android
Chat SDK Android - Open Source Mobile Messenger
Stars: ✭ 1,496 (+636.95%)
Mutual labels:  android-sdk
Docker Android Sdk
Stars: ✭ 171 (-15.76%)
Mutual labels:  android-sdk
Chucker
🔎 An HTTP inspector for Android & OkHTTP (like Charles but on device)
Stars: ✭ 2,169 (+968.47%)
Mutual labels:  android-sdk
Android Sdk
🔆 Android SDK to use the IBM Watson services.
Stars: ✭ 139 (-31.53%)
Mutual labels:  android-sdk
Action Android
Collection of Android-related GitHub Actions
Stars: ✭ 116 (-42.86%)
Mutual labels:  android-sdk
Here Android Sdk Examples
Java-based projects using the HERE SDK for Android.
Stars: ✭ 127 (-37.44%)
Mutual labels:  android-sdk
Uistatus
一个简单且强大的Ui状态视图控制库!
Stars: ✭ 137 (-32.51%)
Mutual labels:  android-sdk
Cameraxdemo
A sample camera app with CameraX API from Android Jetpack
Stars: ✭ 112 (-44.83%)
Mutual labels:  android-sdk
Vassonic
VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS team, which is intended to speed up the first screen of websites working on Android and iOS platform.
Stars: ✭ 11,466 (+5548.28%)
Mutual labels:  android-sdk
Mediapicker
Easy customizable picker for all your needs in Android application
Stars: ✭ 105 (-48.28%)
Mutual labels:  android-sdk
Openlocate Android
Stars: ✭ 136 (-33%)
Mutual labels:  android-sdk
Qiscus Sdk Android
Qiscus provide everything you need to power up your app with chats. And it's now made simple.
Stars: ✭ 175 (-13.79%)
Mutual labels:  android-sdk
Awesomedialog
A Beautiful Dialog Library for Kotlin Android
Stars: ✭ 163 (-19.7%)
Mutual labels:  android-sdk
Ibackdrop
A library to simply use Backdrop in your project (make it easy). Read more ->
Stars: ✭ 137 (-32.51%)
Mutual labels:  android-sdk

Swarmer — create, start and wait for Android emulators to boot in parallel.

Swarmer is a replacement for such bash scripts but with features like:

  • Start multiple Android Emulators and wait for each to boot in parallel.
  • Pass config.ini that'll be applied to created emulator.
  • Redirect Logcat output of an emulator to a file.

Demo

How to use

Swarmer shipped as jar, so just run it java -jar swarmer.jar options.

Dependencies:

Commands

Start

java -jar swarmer.jar start …
Options
Required
  • --emulator-name
    • Name of the emulator, i.e. test_emulator_1.
  • --package
    • Package of the system image for this AVD (e.g.'system-images;android-25;google_apis;x86') to pass to avdmanager create avd --package.
  • --android-abi
    • Android system image abi, i.e. google_apis/x86_64.
  • --path-to-config-ini
    • Path either relative or absolute to the file that will be used as config.ini for created emulator.
    • Easiest way to get config.ini is to create AVD on your machine using Android Studio and then copy config from ~/.android/avd/device_name.avd/config.ini.
    • We recommend to keep config.ini in version control so your team members could review it and builds will be reproducible.
Optional
  • --help, -help, help, -h
    • Print help and exit.
  • --emulator-start-options
    • Options to pass to emulator -avd \$emulatorName command, i.e. --no-window -prop persist.sys.language=en -prop persist.sys.country=US.
  • --emulator-start-timeout-seconds
    • Timeout to wait for emulator to finish boot. Default value is 180 seconds.
  • --redirect-logcat-to
    • Path either relative or absolute to the file that will be used to redirect logcat of started emulator to. No redirection will happen if parameter is not presented.
  • --keep-existing-avds
    • Avoid recreating avds and reuse existing ones whenever possible.
Examples
Start one emulator
java -jar swarmer.jar start \
--emulator-name test_emulator_1 \
--package "system-images;android-25;google_apis;x86" \
--android-abi google_apis/x86_64 \
--path-to-config-ini emulator_config.ini \
--emulator-start-options -prop persist.sys.language=en -prop persist.sys.country=US \
--redirect-logcat-to test_emulator_1_logcat.txt
Start two emulators in parallel
java -jar swarmer.jar start \
--emulator-name test_emulator_1 \
--package "system-images;android-25;google_apis;x86" \
--android-abi google_apis/x86_64 \
--path-to-config-ini emulator_config1.ini \
--emulator-start-options -prop persist.sys.language=en -prop persist.sys.country=US \
--redirect-logcat-to test_emulator_1_logcat.txt \
--emulator-name test_emulator_2 \
--package "system-images;android-23;google_apis;x86" \
--android-abi google_apis/x86_64 \
--path-to-config-ini emulator_config2.ini \
--emulator-start-options -prop persist.sys.language=en -prop persist.sys.country=US \
--redirect-logcat-to test_emulator_2_logcat.txt
Start two emulators sequentially
java -jar swarmer.jar start \
--emulator-name test_emulator_1 \
--android-target android-25 \
--android-abi google_apis/x86_64 \
--path-to-config-ini emulator_config.ini \
--emulator-start-options -prop persist.sys.language=en -prop persist.sys.country=US \
--redirect-logcat-to test_emulator_1_logcat.txt

java -jar swarmer.jar start \
--emulator-name test_emulator_2 \
--package "system-images;android-23;google_apis;x86" \
--android-abi google_apis/x86_64 \
--path-to-config-ini emulator_config2.ini \
--emulator-start-options -prop persist.sys.language=en -prop persist.sys.country=US \
--redirect-logcat-to test_emulator_2_logcat.txt

Stop

java -jar swarmer.jar stop …
Options
Optional
  • --timeout
    • Timeout for emulators to stop in seconds, default is 15 seconds.
Stop all running emulators
java -jar swarmer.jar stop --timeout 10

Download

Swarmer is available on jcenter.

You can download it in your CI scripts or store it in your version control system (not recommended).

SWARMER_VERSION=some-version
curl --fail --location https://jcenter.bintray.com/com/gojuno/swarmer/swarmer/${SWARMER_VERSION}/swarmer-${SWARMER_VERSION}.jar --output /tmp/swarmer.jar

All the releases and changelogs can be found on Releases Page.

Composer

Swarmer works great in combination with Composer — another tool we've built at Juno.

Composer can run Android Instrumentation tests in parallel on multiple connected devices/emulators. In our CI Pipeline we start emulators with Swarmer and then Composer runs tests on them.

How to build

Dependencies: you only need docker and bash installed on your machine.

bash ci/build.sh

License

Copyright 2017 Juno, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].