golang开发android app小记

Google和Oracle打过Java的官司以后就开始慢慢转kotlin了。从JVM虚拟机打官司,改成android用JVM从堆栈平衡转寄存器模式,再到语言更新kotlin,够折腾。kotlin,勉强可以接受吧,就是开发的时候各种stackoverflow/google oriented programming。最近写了不少go了,想起来以前有本书是说skype的android应用是怎么用c++开发的;前些年也看到过android的ruby sdk;还有cordova和phonegap用js一套全开发;于是想着,go可以开发android app吗?琢磨着go的wasm的支持,google一下,我去,果然android已经可以用go开发了。

其实gomobile什么都封装好了,就往里写业务代码就好了,它不但可以generate android app,连ios和macosx都一并包揽了。我们按照教程做就好了:

go get golang.org/x/mobile/cmd/gomobile
go get -d golang.org/x/mobile/example/basic
# 先搞个android sdk+ndk
# export ANDROID_HOME=/path/to/sdk # (ndk=/path/to/sdk/ndk-bundle)
./bin/gomobile build -target=android golang.org/x/mobile/example/basic

弄完了,它就不停报错:

"Unexpected unclosed action in template clause"

但是我直接 go build golang.org/x/mobile/example/basic 然后 ./bin/basic 这个程序是可以跑在我的mac上的。

android build里,哪个template出问题了?版本不兼容?搜索了一下 template.New 没有几个地方,在 Execute 的地方都加个 fmt.Println 然后啥都没有打印出来;于是就从 main.go 顺藤摸瓜,在函数入口一个一个加 fmt.Println,最后发现,这个错误是从 cmd/gomobile/env.go 里抛出来的;go list 的错误,好像网上不少人遇到了 go list 的问题,这里是 go list -e -f '{{range context.ReleaseTags}}{{if eq . "go1.14"}}{{.}}{{end}}{{end}}' runtime 报错。我只想让它pass,不求甚解。所以看了一眼,这不就是如果有 go1.14 这项把这个string输出来么,干嘛这么复杂,直接 out := "go1.14" 就好了。改完,再跑一遍build,好了,出了个apk文件。 adb install 到模拟器上,哔哔,可以运行了。虽然用OpenGL这个UI得自己画,JNI也可以调标准UI库,后面就是一点点积累go的android代码库了。

【笔记】golang开发android app小记相关推荐

  1. php android 微信支付,Android_Android实现微信支付功能,开发Android APP微信支付功能, - phpStudy...

    Android实现微信支付功能 开发Android APP微信支付功能,需要完成三个步骤:第一步生成预支付订单.第二步生成微信支付参数.第三步调起微信APP支付.除了需要审核通过的APP应用外,还需要 ...

  2. 用 Golang 开发 Android 应用(五)—— Audio(openAL)使用

    用 Golang 开发 Android 应用 -- Audio/openAL 使用 计划按以下的内容更新 Audio(openAL) 使用 Record 代码说明 由 main_windows.go ...

  3. android studio 开发android app 真机调试

    大家都知道开发android app 的时候可以有2种调试方式, 一种是Android Virtual Device(虚拟模拟器) ,另一种就是真机调试. 这里要说的是真机调试的一些安装步骤: 1. ...

  4. Visual Studio 2015开发Android App问题集锦

    Visual Studio 2015开发Android App 启动调试始终无法完成应用部署的解决方案 创建一个Android App项目后,直接启动调试发现Visual Studio Emulato ...

  5. 巧用第三方快速开发Android App 热门第三方SDK及框架

    巧用第三方快速开发Android App 热门第三方SDK及框架 历经大半年的时间,终于是把这门课程给录制出来了,也就在今天,正式在慕课网上上线了 项目地址:巧用第三方快速开发Android App ...

  6. android studio1.2.6,1.2.2 使用Android Studio开发Android APP | 菜鸟教程

    写在前面本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快 ...

  7. 开发Android app需要掌握的技术

    最近一直在忙着工作的事,很久没有更新博客了,今天突发奇想要把自己学到的android方面的知识记录下来,一方面是为了系统的回顾一下知识点自己的学习路线,另一方面希望能帮到更多初学的朋友.学习andro ...

  8. 带领新手快速开发Android App

    第1章 课程介绍与项目准备 如果你从事Android开发,那你一定要学习一些开发技巧和掌握一些开发逻辑,而很不巧,我这里全部都有,最开始我们介绍一下我们这个应用的整体组织架构,通过对各个平台的api进 ...

  9. ARabbit:一个快速开发Android App的框架

    我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.简介 2.项目地址 3.sdk功能 4.app功能 5.主要版 ...

最新文章

  1. Thinkpad R400 a16驱动安装笔记
  2. 【转】java中定义二维数组的几种写法
  3. MFC中模态对话框和非模态对话框的差别
  4. Spark History Server配置及其启动
  5. maven项目导出为jar包
  6. navicat连接批量删除_多连接数据库管理工具:Navicat Premium for Mac
  7. 怎样在安卓中实现在锁屏状态下弹出对话框,并可以震动和铃声,就像闹钟似的?...
  8. 【语音合成】基于matlab重叠存储法的信号分帧与还原【含Matlab源码 567期】
  9. 为什么台湾的Yahoo!叫奇摩 ?
  10. Redis数据结构-sds
  11. 平行空间怎么设置32位_10月微信新花样!微信情侣空间怎么解除 情侣空间取消情侣关系设置方法...
  12. eclipse代码:1到100既是3又是5的倍数
  13. 2021.1.17-Robocup 2D学习日志
  14. ADT:Queues
  15. 根据时间戳生成当前月份第一天和最后一天
  16. ORALC/HIVE 的STDDEV、STDDEV_POP、STDDEV_SAMP等函数
  17. 数字金融、智能金融、区块链等关键词都得到热烈讨论
  18. 基于JAVA甜趣网上蛋糕店订购系统计算机毕业设计源码+数据库+lw文档+系统+部署
  19. iNFTnews|马斯克接管Twitter对Web3而言意味着什么?
  20. MEMORY系列之“eMMC”

热门文章

  1. #微积分#反常积分暇积分
  2. 永不气馁,用清晰目标换取成功结果 开利网络主题培训会议持续进行中
  3. 圣彼得堡大帝理工学院有没有计算机专业,【圣彼得堡彼得大帝理工大学-硕士阶段专业一览】...
  4. vivo2020届春季校园招聘在线编程考试(1)
  5. python重新安装ssl_Python3.7安装(解决ssl问题)
  6. python| asyncio、aiohttp、aiofiles下载视频
  7. java短信验证平台_JAVA实现利用第三方平台发送短信验证码
  8. C# DataGridView控件设置序号或显示行号
  9. Windows Server中的 WINS 服务器远程内存损坏漏洞分析
  10. Windows如何进入BIOS?