70 lines
2.3 KiB
Plaintext
70 lines
2.3 KiB
Plaintext
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.
|