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

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

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 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

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真香

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/990351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存