README.md: rewrite to describe Dockerfile builds
Change-Id: Ibfdd36f306d9a52f226904aa99653dc1b932410b Reviewed-on: https://go-review.googlesource.com/1289 Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
This commit is contained in:
parent
32030f7750
commit
ce2d014f4a
69
README
69
README
|
@ -1,69 +0,0 @@
|
||||||
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.
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
# Go support for Mobile devices
|
||||||
|
|
||||||
|
The Go mobile repository holds packages and build tools for using Go on Android.
|
||||||
|
|
||||||
|
This is early work and the build system is a bumpy ride. Building a binary for
|
||||||
|
Android requires using a Go cross compiler and an external linker from the NDK.
|
||||||
|
|
||||||
|
For now, the easiest way to setup a build environment is using the provided
|
||||||
|
Dockerfile:
|
||||||
|
|
||||||
|
go get -d golang.org/x/mobile/...
|
||||||
|
docker build -t mobile $GOPATH/src/golang.org/x/mobile
|
||||||
|
|
||||||
|
In your app directory under your `$GOPATH`, copy the following files from either
|
||||||
|
the [golang.org/x/mobile/basic](https://github.com/golang/mobile/tree/master/example/basic)
|
||||||
|
or [golang.org/x/mobile/libhello](https://github.com/golang/mobile/tree/master/example/libhello)
|
||||||
|
apps:
|
||||||
|
|
||||||
|
AndroidManifest.xml
|
||||||
|
all.bash
|
||||||
|
build.xml
|
||||||
|
jni/Android.mk
|
||||||
|
make.bash
|
||||||
|
|
||||||
|
Start with `basic` if you are writing an all-Go application (that is, an OpenGL game)
|
||||||
|
or libhello if you are building a `.so` file for use from Java via
|
||||||
|
[gobind](https://godoc.org/golang.org/x/mobile/cmd/gobind). Edit the files to change
|
||||||
|
the name of your app.
|
||||||
|
|
||||||
|
To build, run:
|
||||||
|
|
||||||
|
docker run -v $GOPATH/src:/src mobile /bin/bash -c 'cd /src/your/project && ./make.bash'
|
||||||
|
|
||||||
|
When working with an all-Go application, this will produce a binary at
|
||||||
|
`$GOPATH/src/your/project/bin/name-debug.apk`. You can use the adb tool to install
|
||||||
|
and run this app. See all.bash for an example.
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
APIs are currently very limited, but under active development. Package
|
||||||
|
documentation serves as a starting point:
|
||||||
|
|
||||||
|
- [mobile/app](http://godoc.org/golang.org/x/mobile/app)
|
||||||
|
- [mobile/gl](http://godoc.org/golang.org/x/mobile/gl)
|
||||||
|
- [mobile/sprite](http://godoc.org/golang.org/x/mobile/sprite)
|
||||||
|
- [mobile/cmd/gobind](http://godoc.org/golang.org/x/mobile/cmd/gobind)
|
||||||
|
|
||||||
|
Contributions to Go are appreciated. See https://golang.org/doc/contribute.html.
|
Loading…
Reference in New Issue