0
点赞
收藏
分享

微信扫一扫

GO 交叉编译打包AAR并将Android应用变成web服务

梦想家们 2022-04-02 阅读 134

文章目录


GO 编译打包AAR

最近在用go写高并发web接口,发现其强大的交叉编译功能可以编译成Android AAR,用go来做native层的工作简直不要太香,告别繁琐的JNI调用,效率瞬间提升上来。下面简单在Android应用中启用web服务。


GO、AndroidSDK、AndroidNDK安装与环境配置略过

一、gomobile

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服务

添加编译后的AAR到项目中
Android调用代码,子线程中运行gin相关web接口

			lifecycleScope.launch(Dispatchers.IO) {
                Test.run()
            }
            val sum = Test.add(2,2)
            Log.e("main","$sum")

运行结果运行结果
浏览器访问Android web接口
浏览器访问Android web接口


结尾

go真香

举报

相关推荐

0 条评论