一、安装

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 开发相关推荐

  1. go语言android开发环境搭建,golang开发android应用(一) - go语言android应用环境搭建...

    基于golang的android动态库开发,很久以前golang就支持开发android上的动态库及应用了,golang的环境搭建就不说了,直接从gomobile开始 软件依赖 golang, gom ...

  2. 基于Golang的简单web服务程序开发——CloudGo

    基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...

  3. Android环境搭建和Android HelloWorld—Android开发环境搭建

    Android_Android开发环境搭建-搭建Android的开发环境 1.我考虑先下载JDK7.0,在JDK的安装中,考虑一般SDK都是向上兼容的,于是选择了最高的版本7.0 这里是我总结的详细的 ...

  4. java安卓开发工具_推荐几个非常实用的Android开发工具

    工欲善其事,必先利其器.我们进行Android开发也要有好的开发工具辅助才能更好更高效的完成各种开发,为用户提供更实用的应用程序.本文就为大家推荐几个非常实用的Android开发工具,及几个常用的编辑 ...

  5. android 网络编程实现,Android开发使用HttpURLConnection进行网络编程详解【附源码下载】...

    本文实例讲述了Android开发使用HttpURLConnection进行网络编程.分享给大家供大家参考,具体如下: --HttpURLConnection URLConnection已经可以非常方便 ...

  6. linux 浏览器源码下载,Android开发:图片浏览器源码

    Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...

  7. 2017-2018-2 20165236 实验四《Android开发基础》实验报告

    2017-2018-2 20165236 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计       班级:1652班       姓名:郭金涛     ...

  8. Android开发权威指南(第2版)新书发布

    <Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...

  9. indows上的android开发环境软件架构5

    (二)实验要求: ? 修改按下button 显示的内容中添加上自己的学号姓名: ? 添加一个按钮,按钮名称为"退出",并且为这个按钮添加事件代码,使得点击这个按钮后退 出程序.事件 ...

最新文章

  1. 计算程序运行时间(.net1.1 于.net2.0的区别)在.net2.0中提供了Stopwatch类,简单例子...
  2. Mozilla 准备让“合格” Linux 用户测试 WebRender
  3. python读取字典元素笔记_python学习笔记:字典的使用示例详解
  4. 保镖机器人作文_我的小保镖作文500字
  5. 案例:无人测量船水库水下地形测量及库容量计算
  6. jquery在线预览PDF文件,打开PDF文件
  7. 解决PHPStudy8.1.1 mySQL服务启动失败 数据库工具报错卡死
  8. Android简易实战教程--第十四话《模仿金山助手创建桌面Widget小部件》
  9. bandicam安装及使用教学
  10. 没有基础的人如何自学裁缝?
  11. 现金流量表模板2020_这位女会计编制现金流量表,一下子唰唰唰的整理好了
  12. javascript中用switch判断今天星期几
  13. 努力是你最幸福的时候
  14. java根据位置信息切割图片
  15. WinEdit 的algorithm2e包自定义一个带竖线的模块代码
  16. Modelsim与debussy联合仿真
  17. Cadence OrCAD Capture CIS 输出带属性的PDF原理图
  18. www.chinaz.com 站长之家
  19. centos 阿帕奇无法解析php_PHP文件包含漏洞利用思路与Bypass总结手册(二)
  20. 史上公认的最好学习方法, 学英语者的福利

热门文章

  1. linux嵌入式在线升级,嵌入式linux Kernel 在线升级参考资料
  2. Druid监控页面配置用户密码、去除Ad
  3. 使用ERP系统管理生产订单的具体流程
  4. char *与char []的区别
  5. 下载了JFLASH安装后还出现The select device is unknown to this version of the J-LINK software
  6. 动作捕捉系统用于机器人关节位移与几何参数标定
  7. 基于社交网络搜索算法的WSN覆盖优化和工程优化
  8. Hive——hive安装
  9. IOS 隐私政策网址 URL MG
  10. Spark架构原理和生态系统