Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1444)

Unified Diff: docs/android_build_instructions.md

Issue 2536723008: Make some small tweaks to the build instructions. (Closed)
Patch Set: Nits Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | docs/ios_build_instructions.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: docs/android_build_instructions.md
diff --git a/docs/android_build_instructions.md b/docs/android_build_instructions.md
index cc9d42a177b7393724ce11506cb66d54cb863982..5f577ee0b2326e665befbfd399a4cbbbbdb1763f 100644
--- a/docs/android_build_instructions.md
+++ b/docs/android_build_instructions.md
@@ -14,137 +14,163 @@ Google employee? See [go/building-chrome](https://goto.google.com/building-chrom
* You must have Git and Python installed already.
Most development is done on Ubuntu. Other distros may or may not work;
-see the [linux instructions](linux_build_instructions.md) for some suggestions.
+see the [Linux instructions](linux_build_instructions.md) for some suggestions.
Building the Android client on Windows or Mac is not supported and doesn't work.
## Install `depot_tools`
-Clone the depot_tools repository:
+Clone the `depot_tools` repository:
- $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
+```shell
+$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
+```
-Add depot_tools to the end of your PATH (you will probably want to put this
-in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools
-to /path/to/depot_tools:
+Add `depot_tools` to the end of your PATH (you will probably want to put this
+in your `~/.bashrc` or `~/.zshrc`). Assuming you cloned `depot_tools`
+to `/path/to/depot_tools`:
- $ export PATH=$PATH:/path/to/depot_tools
+```shell
+$ export PATH="$PATH:/path/to/depot_tools"
+```
## Get the code
-Create a chromium directory for the checkout and change to it (you can call
+Create a `chromium` directory for the checkout and change to it (you can call
this whatever you like and put it wherever you like, as
long as the full path has no spaces):
- $ mkdir ~/chromium && cd ~/chromium
- $ fetch --nohooks android
+```shell
+$ mkdir ~/chromium && cd ~/chromium
+$ fetch --nohooks android
+```
If you don't want the full repo history, you can save a lot of time by
-adding the `--no-history` flag to fetch.
+adding the `--no-history` flag to `fetch`.
Expect the command to take 30 minutes on even a fast connection, and many
hours on slower ones.
If you've already installed the build dependencies on the machine (from another
-checkout, for example), you can omit the `--nohooks` flag and fetch
+checkout, for example), you can omit the `--nohooks` flag and `fetch`
will automatically execute `gclient runhooks` at the end.
-When fetch completes, it will have created a directory called `src`.
-The remaining instructions assume you are now in that directory:
+When `fetch` completes, it will have created a hidden `.gclient` file and a
+directory called `src` in the working directory. The remaining instructions
+assume you have switched to the `src` directory:
- $ cd src
+```shell
+$ cd src
+```
### Converting an existing Linux checkout
If you have an existing Linux checkout, you can add Android support by
-appending `target_os = ['android']` to your .gclient file (in the
-directory above src):
+appending `target_os = ['android']` to your `.gclient` file (in the
+directory above `src`):
- $ echo "target_os = [ 'android' ]" >> ../.gclient
+```shell
+$ echo "target_os = [ 'android' ]" >> ../.gclient
+```
-Then run gclient sync to pull the new Android dependencies:
+Then run `gclient sync` to pull the new Android dependencies:
- gclient sync
+```shell
+$ gclient sync
+```
-(This is actually the difference between `fetch android` and `fetch chromium`).
+(This is the only difference between `fetch android` and `fetch chromium`.)
### Install additional build dependencies
Once you have checked out the code, run
- build/install-build-deps-android.sh
+```shell
+$ build/install-build-deps-android.sh
+```
-to get all of the dependencies you need to build on Linux *plus* all of the
+to get all of the dependencies you need to build on Linux, *plus* all of the
Android-specific dependencies (you need some of the regular Linux dependencies
-because an Android build builds a bunch of the Linux tools and utilities).
+because an Android build includes a bunch of the Linux tools and utilities).
### Run the hooks
Once you've run `install-build-deps` at least once, you can now run the
-chromium-specific hooks, which will download additional binaries and other
+Chromium-specific hooks, which will download additional binaries and other
things you might need:
- $ gclient runhooks
+```shell
+$ gclient runhooks
+```
-*Optional*: You can also [install API keys](https://www.chromium.org/developers/how-tos/api-keys)
-if you want to talk to some of the Google services, but this is not necessary
-for most development and testing purposes.
+*Optional*: You can also [install API
+keys](https://www.chromium.org/developers/how-tos/api-keys) if you want your
+build to talk to some Google services, but this is not necessary for most
+development and testing purposes.
### Configure the JDK
Make also sure that OpenJDK 1.7 is selected as default:
-`sudo update-alternatives --config javac`
-`sudo update-alternatives --config java`
-`sudo update-alternatives --config javaws`
-`sudo update-alternatives --config javap`
-`sudo update-alternatives --config jar`
-`sudo update-alternatives --config jarsigner`
+```shell
+$ sudo update-alternatives --config javac
+$ sudo update-alternatives --config java
+$ sudo update-alternatives --config javaws
+$ sudo update-alternatives --config javap
+$ sudo update-alternatives --config jar
+$ sudo update-alternatives --config jarsigner
+```
## Setting up the Build
-Chromium uses [Ninja](https://ninja-build.org) as its main build tool, and
-a tool called [GN](../tools/gn/docs/quick_start.md) to generate
-the .ninja files to do the build. To create a build directory configured
-to build Android, run:
+Chromium uses [Ninja](https://ninja-build.org) as its main build tool along
+with a tool called [GN](../tools/gn/docs/quick_start.md) to generate `.ninja`
+files. You can create any number of *build directories* with different
+configurations. To create a build directory which builds Chrome for Android,
+run:
- $ gn gen '--args="target_os="android"' out/Default
+```shell
+$ gn gen '--args="target_os="android"' out/Default
+```
-* You only have to do run this command once, it will self-update the build
- files as needed after that.
-* You can replace `out/Default` with another directory name, but we recommend
- it should still be a subdirectory of `out`.
-* To specify build parameters for GN builds, including release settings,
- see [GN build configuration](https://www.chromium.org/developers/gn-build-configuration).
+* You only have to run this once for each new build directory, Ninja will
+ update the build files as needed.
+* You can replace `Default` with another name, but
+ it should be a subdirectory of `out`.
+* For other build arguments, including release settings, see [GN build
+ configuration](https://www.chromium.org/developers/gn-build-configuration).
The default will be a debug component build matching the current host
operating system and CPU.
* For more info on GN, run `gn help` on the command line or read the
[quick start guide](../tools/gn/docs/quick_start.md).
-Also be aware that some scripts (e.g. tombstones.py, adb_gdb.py)
+Also be aware that some scripts (e.g. `tombstones.py`, `adb_gdb.py`)
require you to set `CHROMIUM_OUTPUT_DIR=out/Default`.
## Build Chromium
Build Chromium with Ninja using the command:
- $ ninja -C out/Default chrome_public_apk
+```shell
+$ ninja -C out/Default chrome_public_apk
+```
+
+You can get a list of all of the other build targets from GN by running `gn ls
+out/Default` from the command line. To compile one, pass the GN label to Ninja
+with no preceding "//" (so, for `//chrome/test:unit_tests` use `ninja -C
+out/Default chrome/test:unit_tests`).
-You can get a list of all of the other build targets from GN by running
-`gn ls out/Default` from the command line. To compile one, pass to Ninja
-the GN label with no preceding "//" (so for `//chrome/test:unit_tests`
-use ninja -C out/Default chrome/test:unit_tests`).
## Installing and Running Chromium on a device
-If the `adb_install_apk.py` script below fails, make sure aapt is in
-your PATH. If not, add aapt's path to your PATH environment variable (it
-should be
+If the `adb_install_apk.py` script below fails, make sure `aapt` is in your
+PATH. If not, add `aapt`'s parent directory to your `PATH` environment variable
+(it should be
`/path/to/src/third_party/android_tools/sdk/build-tools/{latest_version}/`).
Prepare the environment:
```shell
-. build/android/envsetup.sh
+$ . build/android/envsetup.sh
```
### Plug in your Android device
« no previous file with comments | « no previous file | docs/ios_build_instructions.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698