Skip to content

Commit

Permalink
Update the Bazel sample app to demonstrate the support library syntax.
Browse files Browse the repository at this point in the history
Also removes some outdated comments in the README.md.

--
PiperOrigin-RevId: 142705870
MOS_MIGRATED_REVID=142705870
  • Loading branch information
aj-michael authored and aehlig committed Dec 22, 2016
1 parent ac00776 commit aa4ca94
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 20 deletions.
30 changes: 14 additions & 16 deletions examples/android/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,20 @@ android_sdk_repository(
name="androidsdk",
path="<full path to your Android SDK>",
api_level=<api level>,
build_tools_version="<build tools version>")
)

android_ndk_repository(
name="androidndk",
path="<path to your Android NDK>",
api_level=<api_level>)
api_level=<api_level>,
)
```
For the `android_sdk_repository` rule, the values of the `api_level` and
`build_tools_version` attributes correspond, respectively, to directories
containing specific versions of the `android.jar` file and build tools. For
example, if `path=/Users/xyzzy/Library/Android/sdk`,
`api_level=21`, and `build_tools_version="21.1.1"` (note that
quotes are required in the second case), then your SDK must contain the
directories
`/Users/xyzzy/Library/Android/sdk/platforms/android-21` and
`/Users/xyzzy/Library/Android/sdk/build-tools/21.1.1`.

For the `android_sdk_repository` rule, the value of `api_level` corresponds to
a directory in the SDK containing the specific version of `android.jar` to
compile against. For example, if `path = "/Users/xyzzy/Library/Android/sdk"` and
`api_level = 21`, then the directory
`/Users/xyzzy/Library/Android/sdk/platforms/android-21` must exist.

Similarly, for the `android_ndk_repository` rule, the value of the `api_level`
attribute corresponds to a directory containing the NDK libraries for that
Expand All @@ -29,17 +27,17 @@ API level. For example, if
`api_level=21`, then you your NDK must contain the directory
`/Users/xyzzy/Library/Android/android-ndk-r10e/platforms/android-21`.

The example `android_binary` depends on
`@androidsdk//com.android.support:appcompat-v7-25.0.0`, so you will need to
install the Google Support Libraries version 25.0.0 from the Android SDK
Manager.

The following command can be used to build the example app:

```
bazel build //examples/android/java/bazel:hello_world
```

Yes, we know that this is a little clunky. We are working on the following things (and more):

* 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
Expand Down
3 changes: 2 additions & 1 deletion examples/android/java/bazel/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
android:targetSdkVersion="21" />

<application
android:label="Bazel App" >
android:label="Bazel App"
android:theme="@style/MyTheme" >
<activity
android:name="bazel.MainActivity"
android:label="Bazel" >
Expand Down
3 changes: 2 additions & 1 deletion examples/android/java/bazel/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@ android_binary(
"MainActivity.java",
"Jni.java",
]),
legacy_native_support = 0,
manifest = "AndroidManifest.xml",
resource_files = glob(["res/**"]),
deps = [
":jni",
":lib",
"@androidsdk//com.android.support:appcompat-v7-25.0.0",
],
)

Expand Down
4 changes: 2 additions & 2 deletions examples/android/java/bazel/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package bazel;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

/**
* Main class for the Bazel Android "Hello, World" app.
*/
public class MainActivity extends Activity {
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand Down
4 changes: 4 additions & 0 deletions examples/android/java/bazel/res/values/colors.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="primary" type="color">#FF99CC00</item>
</resources>
6 changes: 6 additions & 0 deletions examples/android/java/bazel/res/values/styles.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="Theme.AppCompat">
<item name="colorPrimary">@color/primary</item>
</style>
</resources>

0 comments on commit aa4ca94

Please sign in to comment.