[mirror] Go on Mobile
Перейти к файлу
David Crawshaw 8b708def2f cmd/gomobile: use stripped NDK tarballs
Change-Id: Iaaf72a06cc64e50e62c9282c95ab28317e4c915a
Reviewed-on: https://go-review.googlesource.com/4740
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2015-02-13 18:13:24 +00:00
app Revert "app: repalce JavaInit with RegisterAndroidInit" 2015-02-10 19:28:17 +00:00
audio mobile/audio: add a basic audio player 2015-02-12 17:24:23 +00:00
bind bind/java: pin java byte array elements until Seq send is done. 2015-01-14 19:06:28 +00:00
build build/androidtest.bash: script to run all tests in a repository on an 2014-12-18 00:48:16 +00:00
cmd cmd/gomobile: use stripped NDK tarballs 2015-02-13 18:13:24 +00:00
event mobile: add import comments. 2014-12-10 01:59:04 +00:00
example example/sprite: make example lives 2014-12-22 13:10:48 +00:00
f32 mobile: add import comments. 2014-12-10 01:59:04 +00:00
font mobile: add extra build tags. 2015-01-20 15:15:48 +00:00
geom mobile: add import comments. 2014-12-10 01:59:04 +00:00
gl gl: fix func name in doc comment for GetRenderbufferParameteri 2015-02-06 09:33:13 +00:00
sprite sprite/glsprite: add very basic package docs 2014-12-12 14:44:04 +00:00
testdata example/sprite: make example lives 2014-12-22 13:10:48 +00:00
.gitattributes mobile: copying .gitattributes to all subrepositories 2014-12-23 23:23:25 +00:00
.gitignore convert .hgignore to .gitignore. 2014-12-08 10:43:03 +11:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
CONTRIBUTORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
Dockerfile mobile: add go 1.4 for bootstrap & pin the revision of Go. 2015-01-23 16:07:06 +00:00
LICENSE LICENSE: add 2012-03-17 15:20:58 +11:00
PATENTS go.empty: add PATENTS file to the subrepo. 2012-04-16 11:24:04 +10:00
README.md mobile: use the fully qualified Docker image name 2015-01-16 17:55:11 +00:00

README.md

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:

docker pull golang/mobile

Get the sample applications.

go get -d golang.org/x/mobile/example/...

In your app directory under your $GOPATH, copy the following files from either the golang.org/x/mobile/example/basic or golang.org/x/mobile/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. Edit the files to change the name of your app.

To build, run:

docker run -v $GOPATH/src:/src golang/mobile /bin/bash -c 'cd /src/your/project && ./make.bash'

Note the use of -v option to mount $GOPATH/src to /src of the container. The above command will fail if the -v option is missing or the specified volume is not accessible from the container.

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:

Contributions to Go are appreciated. See https://golang.org/doc/contribute.html.