It’s good to write Golang for producing binary file, then use it everywhere Cython could do the same thing by convert python to c, then c to binary. First, you should write a program at ~/go/github/yingshaoxo/hi/main.go package greeting func SayHi() string { return "Hi!" } Capitalize the function name, so golang would treat that function as public. Then, compile it to a binary file go get golang.org/x/mobile/cmd/gomobile gomobile init gomobile bind -target=android If it ask for NDK, install it and make sure the Environmental-Variable was set right. #add the following to your `~/.bashrc`: export ANDROID_HOME= $HOME /Android/Sdk export ANDROID_NDK_HOME= $ANDROID_HOME /ndk/ 21.3 . 6528147 export PATH= $PATH : $GOPATH /bin: $ANDROID_HOME /platform-tools/ If everything was right, you’ll get two files: greeting.aar and greeting-sources.jar Let’s import it to Android Studio Project Let’s assume you have a project which was named A