The go.mobile repository holds libraries and build tools for Go on Android.

This is early stage work. The build system integration is not ready.
For now,

1. Install the Android SDK, either standalone or via Android Studio.

2. Install the Android NDK.

3. Pick a home for the standalone NDK toolchain and set an environment variable:
	NDK_ROOT=$HOME/android/ndk-toolchain

4. Confiure the NDK toolchain:
	ndk/build/tools/make-standalone-toolchain.sh \
		--platform=android-9 --install-dir=$NDK_ROOT

5. Install a Go cross-compiler from the unstable development branch:
	hg clone https://code.google.com/p/go
	cd go/src
	CC_FOR_TARGET=$NDK_CC GOOS=android GOARCH=arm GOARM=7 ./make.bash

   More details about installing from source are available at
   https://golang.org/doc/install/source.

6. Use the Go tool installed in the go/bin created above.
   For simplicity, put it on your path.

From here, there are two kinds of Android projects you can build,
Android apps written in Java with Go libraries, and Android apps
built entirely in Go. The first lets you use standard Android UI
libraries from Java, the second gives you only OpenGL, but an
entirely Go development environment.


Go library in an Android app - via ant/build.xml
-------------

Apps are written in Java, developed using the standard Android
tools, that include a Go library for added functionality. There is an
example of such a library in go.mobile/example/libhello.

Use the all.bash script in the libhello directory to build and run it.
More details on the build process are in libhello/README.


Go library in an Android app - via gradle
-------------

Coming soon.

For now, create an app in Android Studio, build the .so file in the
same way it is in the ant/build.xml examples and copy it into
YourApp/src/main/jniLibs/armeabi/libgojni.so.


Go Android apps (games)
-------------

Go Android apps are built on top of the NDK's NativeActivity. These apps
are written entirely in Go. An example of such an app, with touch events
and OpenGL, is in go.mobile/example/basic.

To build and deploy the app to the device currently attached to adb,
use the all.bash script in the example's directory. It requires
ndk-build, ant, and adb on your PATH.

APIs are currently very limited, but under active development.

To submit changes to this repository, see http://golang.org/doc/contribute.html.
