diff options
author | Lukacs Berki <lberki@google.com> | 2015-07-20 08:36:28 +0000 |
---|---|---|
committer | Lukacs Berki <lberki@google.com> | 2015-07-20 13:25:21 +0000 |
commit | 99389fdf85c77f5d9b2eed4223b8a8b55f759b7e (patch) | |
tree | 9c6ed151ad53e49607db34e0bbaceba3565f94fd /examples/android/README.md | |
parent | d6425eaf699f42d0b8b7ab0d1da5595f4b51d16d (diff) |
Add an example Android app and a README.md file that details how to compile it.
--
MOS_MIGRATED_REVID=98621744
Diffstat (limited to 'examples/android/README.md')
-rw-r--r-- | examples/android/README.md | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/android/README.md b/examples/android/README.md new file mode 100644 index 0000000000..004d05f6ae --- /dev/null +++ b/examples/android/README.md @@ -0,0 +1,35 @@ +In order to build these examples, add the following two rules to the top-level `WORKSPACE` file (two directories above this file): + +```python +android_sdk_repository( + name="androidsdk", + path="<path to your Android SDK>", + api_level=21, + build_tools_version="21.1.1") +android_ndk_repository( + name="androidndk", + path="<path to your Android NDK>", + api_level=21) +``` + +Then the following command can be used to build the example app: + +``` +bazel build --android_crosstool_top=@androidndk//:toolchain //examples/android/java/bazel:hello_world +``` + +Yes, we know that this is a little clunky. We are working on the following things (and more): + * Eliminating the need for the `--android_crosstool_top` command line option + * Supporting other architectures than `armeabi-v7a` and compilers other than GCC 4.9 + * Eliminating the big ugly deprecation message from the console output of Bazel + +We also have a nice way to speed up the edit-compile-install development cycle for physical Android devices and emulators: Bazel knows what code changed since the last build, and can use this knowledge to install only the changed code to the device. This currently works with L devices and changes to Java code and Android resources. To try this out, take an `android_binary` rule and: + * Set the `proguard_specs` attribute to `[]` (the empty list) or just omit it altogether + * Set the `multidex` attribute to `native` + * Set the `dex_shards` attribute to a number between 2 and 200. This controls the size of chunks the code is split into. As this number is increased, compilation and installation becomes faster but app startup becomes slower. A good initial guess is 10. + * Connect your device over USB to your workstation and enable USB debugging on it + * Run `bazel mobile-install --android_crosstool_top=@androidndk//:toolchain <android_binary rule>` + * Edit Java code or Android resources + * Run `blaze mobile-install --android_crosstool_top=@androidndk//:toolchain --incremental <android_binary rule>` + +Note that if you change anything other than Java code or Android resources (C++ code or something on the device), you must omit the `--incremental` command line option. Yes, we know that this is also clunky and we are working on improving it. |