go/misc/android
Elias Naur 1aa0fcff46 misc/android: serialize adb commands on android emulators
Android emulator builders are soon to join the trybot set. To avoid
flaky runs, work around a longstanding adb bug where concurrent adb
commands sometimes fail.

I haven't seen the problem on actual devices until recently. It seems
that the recently added "adb wait-for-device" can introduce flakyness
with errors such as:

adb: error: failed to get feature set: protocol fault (couldn't read status): Connection reset by peer

Instead of working around that, give up and serialize use of adb
everywhere.

Fixes #23795
Updates #23824

Change-Id: If347c9981fa32ff8a1e14b7454f122ef682450a6
Reviewed-on: https://go-review.googlesource.com/c/163625
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-26 18:01:06 +00:00
..
README misc/android,cmd/dist: move $GOROOT copying to the exec wrapper 2019-02-26 18:00:48 +00:00
go_android_exec.go misc/android: serialize adb commands on android emulators 2019-02-26 18:01:06 +00:00

README

Android
=======

For details on developing Go for Android, see the documentation in the
mobile subrepository:

	https://github.com/golang/mobile

To run the standard library tests, enable Cgo and use an appropriate
C compiler from the Android NDK. For example,

	CGO_ENABLED=1 \
	GOOS=android \
	GOARCH=arm64 \
	CC=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang \
	./all.bash

To run tests on the Android device, add the bin directory to PATH so the
go tool can find the go_android_$GOARCH_exec wrapper generated by
make.bash. For example, to run the go1 benchmarks

	export PATH=$GOROOT/bin:$PATH
	cd $GOROOT/test/bench/go1/
	GOOS=android GOARCH=arm64 go test -bench=. -count=N -timeout=T