add linux .so and windows .dll sdk support,
Signed-off-by: arraykeys@gmail.com <arraykeys@gmail.com>
This commit is contained in:
@ -1,12 +1,18 @@
|
|||||||
|
|
||||||
# Proxy SDK 使用说明
|
# Proxy SDK 使用说明
|
||||||
|
|
||||||
proxy使用gombile实现了一份go代码编译为android和ios平台下面可以直接调用的sdk类库,
|
支持以下平台:
|
||||||
|
- Android,.arr库
|
||||||
|
- IOS,
|
||||||
|
- Windows,.dll库
|
||||||
|
- Linux,.so库
|
||||||
|
|
||||||
|
proxy使用gombile实现了一份go代码编译为android和ios和windows平台下面可以直接调用的sdk类库,
|
||||||
基于这些类库,APP开发者可以轻松的开发出各种形式的代理工具.
|
基于这些类库,APP开发者可以轻松的开发出各种形式的代理工具.
|
||||||
|
|
||||||
### 下面分平台介绍SDK的用法
|
# 下面分平台介绍SDK的用法
|
||||||
|
|
||||||
#### Android SDK
|
## Android SDK
|
||||||
|
|
||||||
[](https://github.com/snail007/goproxy/) []() [](https://github.com/snail007/goproxy/releases) [](https://github.com/snail007/goproxy/releases)
|
[](https://github.com/snail007/goproxy/) []() [](https://github.com/snail007/goproxy/releases) [](https://github.com/snail007/goproxy/releases)
|
||||||
|
|
||||||
@ -53,12 +59,61 @@ Proxy.stop(args);//这里传递http也可以,最终使用的就是args里面的
|
|||||||
//停止完毕
|
//停止完毕
|
||||||
|
|
||||||
```
|
```
|
||||||
|
## IOS SDK
|
||||||
|
|
||||||
|
[](https://github.com/snail007/goproxy/) []() [](https://github.com/snail007/goproxy/releases) [](https://github.com/snail007/goproxy/releases)
|
||||||
|
|
||||||
|
[点击下载IOS-SDK](https://github.com/snail007/goproxy-sdk-ios/releases)
|
||||||
|
在IOS系统提供的sdk形式是一个后缀为.framework的类库文件夹,开发的时候只需要把类库文件引入项目,然后调用方法即可.
|
||||||
|
|
||||||
### IOS-SDK使用实例
|
### IOS-SDK使用实例
|
||||||
|
|
||||||
#### todo
|
#### todo
|
||||||
|
|
||||||
|
## Windows SDK
|
||||||
|
[](https://github.com/snail007/goproxy/) []() [](https://github.com/snail007/goproxy/releases) [](https://github.com/snail007/goproxy/releases)
|
||||||
|
|
||||||
|
[点击下载Windows-SDK](https://github.com/snail007/goproxy-sdk-windows/releases)
|
||||||
|
在Windows系统提供的sdk形式是一个后缀为.dll的类库文件,开发的时候只需要把dll类库文件加载,然后调用方法即可.
|
||||||
|
|
||||||
|
### Windows-SDK使用实例
|
||||||
|
|
||||||
|
#### todo
|
||||||
|
|
||||||
|
## Linux SDK
|
||||||
|
[](https://github.com/snail007/goproxy/) []() [](https://github.com/snail007/goproxy/releases) [](https://github.com/snail007/goproxy/releases)
|
||||||
|
|
||||||
|
[点击下载Linux-SDK](https://github.com/snail007/goproxy-sdk-linux/releases)
|
||||||
|
在Linux系统提供的sdk形式是一个后缀为.so的类库文件,开发的时候只需要把so类库加载,调用方法即可.
|
||||||
|
|
||||||
|
### Linux-SDK使用实例
|
||||||
|
Linux下面使用的sdk是so文件即proxy-sdk.so,下面写一个简单的C程序示例,调用so库里面的方法.
|
||||||
|
|
||||||
|
`vi test-proxy.c`
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "proxy-sdk.h"
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
printf("This is demo application.\n");
|
||||||
|
char *str = "http -t tcp -p :38080";
|
||||||
|
//启动服务,返回空字符串说明启动成功;返回非空字符串说明启动失败,返回的字符串是错误原因
|
||||||
|
printf("start result %s\n",Start(str));
|
||||||
|
//停止服务,没有返回值
|
||||||
|
Stop(str);
|
||||||
|
//服务是否在运行,返回0是没有运行,返回1正在运行
|
||||||
|
printf("is running result %d\n",IsRunning(str));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 编译test-proxy.c ####
|
||||||
|
`export LD_LIBRARY_PATH=./ && gcc -o test-proxy test.c proxy-sdk.so`
|
||||||
|
|
||||||
|
#### 执行 ####
|
||||||
|
`./test-proxy`
|
||||||
|
|
||||||
|
|
||||||
### 关于服务
|
### 关于服务
|
||||||
proxy的服务有11种,分别是:
|
proxy的服务有11种,分别是:
|
||||||
|
|||||||
@ -5,11 +5,17 @@ rm -rf ios
|
|||||||
mkdir android
|
mkdir android
|
||||||
mkdir ios
|
mkdir ios
|
||||||
|
|
||||||
#all-in-one
|
#android
|
||||||
gomobile bind -v -target=android -javapkg=snail007 -ldflags="-s -w"
|
gomobile bind -v -target=android -javapkg=snail007 -ldflags="-s -w"
|
||||||
mv proxy.aar android/snail007.goproxy.sdk.aar
|
mv proxy.aar android/snail007.goproxy.sdk.aar
|
||||||
mv proxy-sources.jar android/snail007.goproxy.sdk-sources.jar
|
mv proxy-sources.jar android/snail007.goproxy.sdk-sources.jar
|
||||||
cp README.md android
|
cp ../README.md android
|
||||||
tar zcfv sdk-android-${VER}.tar.gz android
|
tar zcfv sdk-android-${VER}.tar.gz android
|
||||||
rm -rf android
|
rm -rf android
|
||||||
|
|
||||||
|
#ios XCode required
|
||||||
|
#gomobile bind -v -target=ios -ldflags="-s -w"
|
||||||
|
#proxy
|
||||||
|
|
||||||
|
|
||||||
echo "done."
|
echo "done."
|
||||||
BIN
sdk/windows-linux/ieshims.dll
Normal file
BIN
sdk/windows-linux/ieshims.dll
Normal file
Binary file not shown.
26
sdk/windows-linux/release.sh
Executable file
26
sdk/windows-linux/release.sh
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#/bin/bash
|
||||||
|
VER="v4.7"
|
||||||
|
|
||||||
|
rm -rf *.tar.gz
|
||||||
|
rm -rf proxy-sdk.so proxy-sdk.h proxy-sdk.a proxy-sdk.dll
|
||||||
|
|
||||||
|
#windows
|
||||||
|
#apt-get install gcc-multilib
|
||||||
|
#apt-get install gcc-mingw-w64
|
||||||
|
#32bit CC=i686-w64-mingw32-gcc-win32 GOARCH=386
|
||||||
|
#64bit CC=x86_64-w64-mingw32-gcc GOARCH=amd64
|
||||||
|
CC=i686-w64-mingw32-gcc-win32 GOARCH=386 CGO_ENABLED=1 GOOS=windows go build -buildmode=c-shared -ldflags "-s -w" -o proxy-sdk.dll sdk.go
|
||||||
|
cp ../README.md .
|
||||||
|
tar zcf sdk-windows-${VER}.tar.gz README.md proxy-sdk.dll proxy-sdk.h ieshims.dll
|
||||||
|
rm -rf proxy-sdk.h proxy-sdk.dll
|
||||||
|
|
||||||
|
|
||||||
|
#linux
|
||||||
|
CGO_ENABLED=1 GOARCH=amd64 GOOS=linux go build -buildmode=c-archive -ldflags "-s -w" -o proxy-sdk.a sdk.go
|
||||||
|
CGO_ENABLED=1 GOARCH=amd64 GOOS=linux go build -buildmode=c-shared -ldflags "-s -w" -o proxy-sdk.so sdk.go
|
||||||
|
cp ../README.md .
|
||||||
|
tar zcf sdk-linux-${VER}.tar.gz README.md proxy-sdk.so proxy-sdk.a proxy-sdk.h
|
||||||
|
|
||||||
|
rm -rf README.md proxy-sdk.so proxy-sdk.h proxy-sdk.a
|
||||||
|
|
||||||
|
echo "done."
|
||||||
26
sdk/windows-linux/sdk.go
Normal file
26
sdk/windows-linux/sdk.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"C"
|
||||||
|
sdk "snail007/proxy/sdk/android-ios"
|
||||||
|
)
|
||||||
|
|
||||||
|
//export Start
|
||||||
|
func Start(argsStr *C.char) (errStr *C.char) {
|
||||||
|
return C.CString(sdk.Start(C.GoString(argsStr)))
|
||||||
|
}
|
||||||
|
|
||||||
|
//export Stop
|
||||||
|
func Stop(service *C.char) {
|
||||||
|
sdk.Stop(C.GoString(service))
|
||||||
|
}
|
||||||
|
|
||||||
|
//export IsRunning
|
||||||
|
func IsRunning(service *C.char) C.int {
|
||||||
|
if sdk.IsRunning(C.GoString(service)) {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
func main() {
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user