Index: blimp/docs/running.md |
diff --git a/blimp/docs/running.md b/blimp/docs/running.md |
index 97c6f061d8b373c5f22c9f71c858bdd570af71d8..99d94d7bb10d45556118007063ff195499c07cad 100644 |
--- a/blimp/docs/running.md |
+++ b/blimp/docs/running.md |
@@ -1,11 +1,47 @@ |
# Running Blimp |
+[TOC] |
See [build](build.md) for instructions on how to build Blimp. |
-## Running the client |
+## Android Client |
-There are both Android and Linux clients. The Android client is the shipping |
-client while the Linux client is used for development purposes. |
+### Installing the client |
+ |
+Install the Blimp APK with the following: |
+ |
+```bash |
+./build/android/adb_install_apk.py $(PRODUCT_DIR)/apks/Blimp.apk |
+``` |
+ |
+This is equivalent to just running: |
+ |
+```bash |
+adb install $(PRODUCT_DIR)/apks/Blimp.apk |
+``` |
+ |
+### Setting up command line flags |
+ |
+Set up any command line flags with: |
+ |
+```bash |
+./build/android/adb_blimp_command_line --your-flag-here |
+``` |
+ |
+To see your current command line, run `adb_blimp_command_line` without any |
+arguments. |
+ |
+The Blimp client reads command line arguments from the file |
+`/data/local/blimp-command-line` and the above script reads/writes that file. |
+Typical format of the file is `chrome --your-flag-here`. So one can use `adb` |
+directly to create the file: |
+ |
+```bash |
+echo 'chrome --engine-ip=10.0.2.2 --engine-port=25467 --engine-transport=tcp' \ |
+ '--blimp-client-token-path=/data/data/org.chromium.blimp/blimp_client_token' \ |
+ '--vmodule="*=1""' > /tmp/blimp-command-line |
+adb push /tmp/blimp-command-line /data/local/blimp-command-line |
+adb shell start chmod 0664 /data/local/blimp-command-line |
+``` |
### Instructing client to connect to specific host |
@@ -13,15 +49,16 @@ To have the client connect to a custom engine use the `--engine-ip`, |
`--engine-port`, and `--engine-transport` flags. The possible valid |
values for `--engine-transport` are 'tcp' and 'ssl'. |
An example valid endpoint would be |
-`--engine-ip=127.0.0.1 --engine-port=1234 --engine-transport=tcp`. |
+`--engine-ip=127.0.0.1 --engine-port=25467 --engine-transport=tcp`. |
SSL-encrypted connections take an additional flag |
`--engine-cert-path` which specifies a path to a PEM-encoded certificate |
-file (e.g. `--engine-cert-path=/path/to/file.pem`.) |
+file (e.g. `--engine-cert-path=/path_on_device_to/file.pem`). Remember to also |
+copy the file to the device when using this option. |
### Requesting the complete page from the engine |
-The engine sends partially rendered content to the client. To request the complete |
-page from the engine, use the `--download-whole-document` flag on the client. |
+The engine sends partially rendered content to the client. To request the |
+complete page from the engine, use the `--download-whole-document` flag on the client. |
### Specifying the client auth token file |
The client needs access to a file containing a client auth token. One should |
@@ -40,47 +77,19 @@ To have the client use the given client auth token file, use the |
An example of a client token file is |
[test_client_token](https://code.google.com/p/chromium/codesearch#chromium/src/blimp/test/data/test_client_token). |
-### Android Client |
- |
-Install the Blimp APK with the following: |
- |
-```bash |
-./build/android/adb_install_apk.py $(PRODUCT_DIR)/apks/Blimp.apk |
-``` |
- |
-Set up any command line flags with: |
- |
-```bash |
-./build/android/adb_blimp_command_line --your-flag-here |
-``` |
- |
-To see your current command line, run `adb_blimp_command_line` without any |
-arguments. |
- |
+### Start the Client |
Run the Blimp APK with: |
```bash |
./build/android/adb_run_blimp_client |
``` |
- |
-### Linux Client |
- |
-The blimp client is built as part of the `blimp` target. To run it with local |
-logging enabled, execute: |
+The script under the cover uses adb to start the application: |
```bash |
-./out-linux/Debug/blimp_shell \ |
- --user-data-dir=/tmp/blimpclient \ |
- --enable-logging=stderr \ |
- --vmodule="*=1" |
+adb shell am start -a android.intent.action.VIEW -n org.chromium.blimp/org.chromium.blimp.BlimpRendererActivity |
``` |
-## Running the engine |
- |
-### In a container |
-For running the engine in a container, see [container](container.md). |
- |
-### On a workstation |
+### Connecting to an Engine running on a workstation |
To run the engine on a workstation and make your Android client connect to it, |
you need to forward a port from the Android device to the host, and also |
instruct the client to connect using that port on its localhost address. |
@@ -105,7 +114,46 @@ also start a new shell and keep the following command running: |
./build/android/adb_reverse_forwarder.py --debug -v 25467 25467 |
``` |
-### Required engine binary flags |
+### Running the client in an Android emulator |
+Running the client using an Android emulator is similar to running it on device. |
+Here are a few gotchas: |
+ |
+1. Build apk matching the emulator cpu type. Emulator cpu type is most likely |
Kevin M
2016/06/28 22:31:53
an APK
The emulator
Sriram
2016/06/28 23:22:38
Done.
|
+ x86 while the default Android build cpu type is ARM. Follow Android build |
Kevin M
2016/06/28 22:31:53
x86, while
Kevin M
2016/06/28 22:31:53
Follow the
Sriram
2016/06/28 23:22:38
Done.
Sriram
2016/06/28 23:22:38
Done.
|
+ instructions to change the CPU type. |
+ |
+2. Ensure that the emulator is running at least Android Marshmallow so that |
+ fonts are rendered correctly and also you have latest Play services binaries. |
Kevin M
2016/06/28 22:31:53
Too long of a sentence- ". Also ensure that you ha
Sriram
2016/06/28 23:22:38
Done.
|
+ |
+3. Some of scripts under `build/android` will fail to run as it uses `adb scp`. |
Kevin M
2016/06/28 22:31:53
This detail seems like it should be more of an add
Sriram
2016/06/28 23:22:38
This is a gotcha list and not steps and I am incli
|
+ Follow the instruction above to use `adb` directly. |
+ |
+4. To connect to an Engine running on the host machine, you would have to use |
Kevin M
2016/06/28 22:31:53
would have to => should
Sriram
2016/06/28 23:22:38
Done.
|
+ `10.0.2.2` as `engine-ip` instead of `127.0.0.1` as `127.0.0.1` will refer to |
+ the emulator itself. There is no need of setting up |
Kevin M
2016/06/28 22:31:53
no need to set up
Sriram
2016/06/28 23:22:38
Done.
|
+ [port forwarding](#Port-forwarding) when this approach is used. |
+ |
+## Linux Client |
+ |
+The Linux client is used for development purpose while the Android client is |
+shipped. The Linux client is built as part of the `blimp` target. |
+To run it with local logging enabled, execute: |
+ |
+```bash |
+./out-linux/Debug/blimp_shell \ |
+ --user-data-dir=/tmp/blimpclient \ |
+ --enable-logging=stderr \ |
+ --vmodule="*=1" |
+``` |
+ |
+## Running the engine |
+ |
+### In a container |
+For running the engine in a container, see [container](container.md). |
+ |
+### On a workstation |
+The following flags are required to start an Engine instance: |
+ |
* `--blimp-client-token-path=$PATH`: Path to a file containing a nonempty |
token string. If this is not present, the engine will fail to boot. |
* `--use-remote-compositing`: Ensures that the renderer uses the remote |