|
|
před 11 roky | |
|---|---|---|
| .. | ||
| go_psi | před 11 roky | |
| java_golang | před 11 roky | |
| java_psi | před 11 roky | |
| libpsi | před 11 roky | |
| psi | před 11 roky | |
| README.md | před 11 roky | |
Psiphon Library for Android enables you to easily embed Psiphon in your Android app. The Psiphon Library for Android is implemented in Go and follows the standard conventions for using a Go library in an Android app.
Follow Go Android documentation:
/AndroidLibrary
README.md - this file
libgojni.so - build binary output
/psi
psi.go - main library source
/go_psi
go_psi.go - gobind output
/java_psi/go/psi
Psi.java - gobind output
/java_golang/go
Go.java - fork of Go/Java integration file
Seq.java - fork of Go/Java integration file
/libpsi
main.go - stub main package for library
NOTE: may change after Go 1.4 is released.
$GOPATH/bin/gobind -lang=go github.com/Psiphon-Labs/psiphon-tunnel-core/AndroidLibrary/psi > go_psi/go_psi.go$GOPATH/bin/gobind -lang=java github.com/Psiphon-Labs/psiphon-tunnel-core/AndroidLibrary/psi > java_psi/go/psi/Psi.java/libpsi CGO_ENABLED=1 GOOS=android GOARCH=arm GOARM=7 go build -ldflags="-shared" and copy output file to gojni.sojava_golang/go/*.java to your $src/gojava_psi/go/psi/Psi.java to your $src/go/psilibgojni.so to your Android appNOTE: may change to Psiphon-specific library name and init.
See sample usage in Psiphon.java. Uses gobind conventions for data passing.
Go.init(getApplicationContext()); in Application.onCreate()Psi.Listener.Stub to receive messages in Message(String line)Psi.Start(configFile, Psi.Listener) to start Psiphon. Catch Exception to receive errors.Psi.Stop() to stop Psiphon.NOTE: may add more explicit interface for state change events.