Skip to content

diyism/goAndView

 
 

Repository files navigation

goAndView

Build android WebView app with Golang:

#With Android SDK with the NDK bundle installed. Gio currently requires SDK versions >= 31.
#https://developer.android.com/studio#command-tools
wget https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip
unzip commandlinetools-linux-8092744_latest.zip
./cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "platforms;android-31"

#install gofork: https://github.com/gofork-org/goFork
go install gioui.org/cmd/gogio@latest
export PATH=$PATH:$GOPATH/bin
go get -u github.com/diyism/goAndView
cd $GOPATH/src/github.com/diyism/goAndView/apps/hello
go mod tidy

(if you want to add an android permission, for example "android.permission.VIBRATE", "android.permission.WAKE_LOCK",
don't use 'import (_ "gioui.org/app/permission/wakelock")', "go mod tidy" will replace gioui.org v0.0.0-20220414170908-ad7c1eb with v0.3.0, goAndView building will fail.

you can add it just after "android.permission.INTERNET" in $GOPATH/pkg/mod/gioui.org/cmd@v0.0.0-20230822165948-7cb98d0557e7/gogio/permission.go
(or git clone --depth 1 https://git.sr.ht/~eliasnaur/gio-cmd
add it just after "android.permission.INTERNET" in ./gio-cmd/gogio/permission.go
)

if you want add "<receiver>...</receiver>", just after "<activity android:name="org.gioui.GioActivity>...</activity>"
in ./gio-cmd/gogio/androidbuild.go

then "cd ./gio-cmd/gogio/",
then "sudo /usr/local/go/bin/go build ."
then "cp gogio $GOPATH/bin/"
)

gogio --target android ./
//gogio --target android --arch arm64 ./         //the hello.apk is only 5.5MB, if only for your arm64 phone
adb install hello.apk

About

Build android WebView app with Golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 57.7%
  • Java 42.3%