mojo_run
allows you to run a Mojo shell either on the host, or on an attached Android device.
mojo_run APP_URL # Run on the host. mojo_run APP_URL --android # Run on Android device. mojo_run "APP_URL APP_ARGUMENTS" # Run an app with startup arguments
Unless running within a Mojo checkout, we need to indicate the path to the shell binary:
mojo_run --shell-path path/to/shell/binary APP_URL
Some applications are meant to be run embedded in a window manager. To run these, you can pass the app url using the --embed
flag. This will run the window manager and pass the given url to it:
mojo_run --embed APP_URL [--android]
By default, mojo_run
uses mojo:kiosk_wm as the window manager. You can pass a different window manager url using the --window-manager
flag to override this.
mojo_run
sets up development servers on fixed ports to facilitate caching between runs and allow the script to work remotely using adb_remote_setup
. This would normally prevent two or more instances of mojo_run
from running simulatenously as the development servers cannot be spawned twice on the same ports.
In order to run the same set of binaries simultaneously one can use the --reuse-servers
switch for second and further instances. This will make the second and further instances assume that development servers are already spawned.
On Android one needs to indicate the id of the device to be targeted in each run. For example, we could run the following in one shell:
mojo_run APP_URL --android --target-device DEVICE_ID
and the following in another:
mojo_run APP_URL --android --target-device ANOTHER_DEVICE_ID --reuse-servers
Device id can be obtained from adb devices
.
On Linux one needs to use a different $HOME directory for each run, to avoid collision of the cache storage. For example, we could run the following in one shell:
mojo_run APP_URL
and the following in another:
mkdir ~/another_home HOME=~/another_home mojo_run APP_URL --reuse-servers