golang如何使用gomobile进行Android开发

 更新时间:2023年01月28日 11:41:12   作者:striveQiao  
golang可以开发android,使用golang开发android需要下载安装gomobile,下面这篇文章主要给大家介绍了关于golang如何使用gomobile进行Android开发的相关资料,需要的朋友可以参考下

一、安装

go get golang.org/x/mobile/cmd/gomobile

二、编译gomobile

build gomobile成功后会在$GOPATH/bin目录生成gomobile可执行程序

go build golang.org/x/mobile/cmd/gomobile

三、初始化

初始化环境,自动下载安装依赖

gomobile init

若提示未找到ndk,根据提示的路径把ndk包复制过去即可

四、bind 生成arr包和jar包

执行bind命令,后面跟上go代码所在的目录

 gomobile bind .\bind\test\
# 或者cd到test目录直接执行命令
 gomobile bind

目录结构如下图(包名分别为test和tree)

执行完命令后会在当前目录下生成一个arr包和jar包

五、在android项目中导入.arr包和jar包

一、创建android项目,选择basic Activity

创建完后将项目目录结构从android切换成project,如图:

切换成project目录结构后即可看见app目录下有一个libs目录

二、将gomobile bin命令生成的arr包和jar包导入到libs目录下

然后再app目录下build.gradle文件中的dependencies中增加加一行内容:

implementation(fileTree("libs"))

如图

选择jar包点击Add As Library或者点击左上角File后点击Sync Project with Gradle Files

现在就已经可以在项目中导入go中定义的包名并使用其方法了

六、总结

Gomobile 编译生成arr包和jar并没有类似main函数的入口,只要是在执行gomobile bind命令目录下的go文件都会被编译,然后在android中通过包名调用方法。

需要注意的是:

1、gomobile bind命令只会编译当前目录下的go文件,而不会编译当前目录下的子目录下的go文件,需要go内部自己调用子目录的方法。

2、在android中需要调用的方法名首字母必须大写。

使用gomobile build 也可以直接生成全部由go开发的apk文件,但是目前仅支持OPEN GL绘制界面。

总结

到此这篇关于golang如何使用gomobile进行Android开发的文章就介绍到这了,更多相关golang gomobile开发Android内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • golang使用mapstructure解析json

    golang使用mapstructure解析json

    mapstructure 是一个 Go 库,用于将通用映射值解码为结构,这篇文章主要来和大家介绍一下golang如何使用mapstructure解析json,需要的可以参考下
    2023-12-12
  • golang hack插件开发动态链接库实例探究

    golang hack插件开发动态链接库实例探究

    这篇文章主要为大家介绍了golang hack插件开发动态链接库实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Go语言学习网络编程与Http教程示例

    Go语言学习网络编程与Http教程示例

    这篇文章主要为大家介绍了Go语言学习网络编程与Http教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Go 高效截取字符串的一些思考

    Go 高效截取字符串的一些思考

    这篇文章主要介绍了Go 高效截取字符串的一些思考,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Go利用反射reflect实现获取接口变量信息

    Go利用反射reflect实现获取接口变量信息

    反射是通过实体对象获取反射对象(Value、Type),然后可以操作相应的方法。本文将利用Go语言中的反射reflect实现获取接口变量信息,需要的可以参考一下
    2022-05-05
  • golang使用bcrypt包对密码进行加密的方法实现

    golang使用bcrypt包对密码进行加密的方法实现

    本文主要介绍了golang使用bcrypt包对密码进行加密的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Go Asynq异步任务处理的实现

    Go Asynq异步任务处理的实现

    Asynq是一个新兴的异步任务处理解决方案,它提供了轻量级的、易于使用的API,本文主要介绍了Go Asynq异步任务处理的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-06-06
  • Go语言基础go接口用法示例详解

    Go语言基础go接口用法示例详解

    这篇文章主要为大家介绍了Go语言基础关于go接口的用法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,在日升职加薪
    2021-11-11
  • Golang操作excel的方法

    Golang操作excel的方法

    这篇文章主要介绍了Golang操作excel的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 浅谈golang 中time.After释放的问题

    浅谈golang 中time.After释放的问题

    这篇文章主要介绍了浅谈golang 中time.After释放的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05

最新评论