文章目录 GO 编译打包AAR一、gomobile二、使用步骤1.GO Code2.编译GO Code 生成so到AAR3.添加AAR到Android项目并开启web服务 结尾提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
GO 编译打包AAR
最近在用go写高并发web接口,发现其强大的交叉编译功能可以编译成Android AAR,用go来做native层的工作简直不要太香,告别繁琐的JNI调用,效率瞬间提升上来。下面简单在Android应用中启用web服务。
GO、AndroidSDK、AndroidNDK安装与环境配置略过
gomobile 可以让golang在移动设备中使用,这里我们用到的是bind 动态库方式native开发
下载安装gomobile
go get golang.org/x/mobile/cmd/gomobile
如果被墙了可以把gomobile项目clone到$GOPATH/src/golang.org/x下面
初始化
gomobile init
二、使用步骤
1.GO Code
代码如下(示例):
package test
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
)
func Add(x int, y int) int {
fmt.Println(x, y)
return x + y
}
var r *gin.Engine
func Run() {
r = gin.Default()
r.GET("/hello", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"name": "zhangsan"})
})
r.Run(":8080")
}
2.编译GO Code 生成so到AAR
gomobile bind -target=android test
3.添加AAR到Android项目并开启web服务
Android调用代码,子线程中运行gin相关web接口
lifecycleScope.launch(Dispatchers.IO) {
Test.run()
}
val sum = Test.add(2,2)
Log.e("main","$sum")
运行结果
浏览器访问Android web接口
结尾
go真香
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)