【笔记】golang开发android app小记
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小记相关推荐
- php android 微信支付,Android_Android实现微信支付功能,开发Android APP微信支付功能, - phpStudy...
Android实现微信支付功能 开发Android APP微信支付功能,需要完成三个步骤:第一步生成预支付订单.第二步生成微信支付参数.第三步调起微信APP支付.除了需要审核通过的APP应用外,还需要 ...
- 用 Golang 开发 Android 应用(五)—— Audio(openAL)使用
用 Golang 开发 Android 应用 -- Audio/openAL 使用 计划按以下的内容更新 Audio(openAL) 使用 Record 代码说明 由 main_windows.go ...
- android studio 开发android app 真机调试
大家都知道开发android app 的时候可以有2种调试方式, 一种是Android Virtual Device(虚拟模拟器) ,另一种就是真机调试. 这里要说的是真机调试的一些安装步骤: 1. ...
- Visual Studio 2015开发Android App问题集锦
Visual Studio 2015开发Android App 启动调试始终无法完成应用部署的解决方案 创建一个Android App项目后,直接启动调试发现Visual Studio Emulato ...
- 巧用第三方快速开发Android App 热门第三方SDK及框架
巧用第三方快速开发Android App 热门第三方SDK及框架 历经大半年的时间,终于是把这门课程给录制出来了,也就在今天,正式在慕课网上上线了 项目地址:巧用第三方快速开发Android App ...
- android studio1.2.6,1.2.2 使用Android Studio开发Android APP | 菜鸟教程
写在前面本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快 ...
- 开发Android app需要掌握的技术
最近一直在忙着工作的事,很久没有更新博客了,今天突发奇想要把自己学到的android方面的知识记录下来,一方面是为了系统的回顾一下知识点自己的学习路线,另一方面希望能帮到更多初学的朋友.学习andro ...
- 带领新手快速开发Android App
第1章 课程介绍与项目准备 如果你从事Android开发,那你一定要学习一些开发技巧和掌握一些开发逻辑,而很不巧,我这里全部都有,最开始我们介绍一下我们这个应用的整体组织架构,通过对各个平台的api进 ...
- ARabbit:一个快速开发Android App的框架
我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.简介 2.项目地址 3.sdk功能 4.app功能 5.主要版 ...
最新文章
- Thinkpad R400 a16驱动安装笔记
- 【转】java中定义二维数组的几种写法
- MFC中模态对话框和非模态对话框的差别
- Spark History Server配置及其启动
- maven项目导出为jar包
- navicat连接批量删除_多连接数据库管理工具:Navicat Premium for Mac
- 怎样在安卓中实现在锁屏状态下弹出对话框,并可以震动和铃声,就像闹钟似的?...
- 【语音合成】基于matlab重叠存储法的信号分帧与还原【含Matlab源码 567期】
- 为什么台湾的Yahoo!叫奇摩 ?
- Redis数据结构-sds
- 平行空间怎么设置32位_10月微信新花样!微信情侣空间怎么解除 情侣空间取消情侣关系设置方法...
- eclipse代码:1到100既是3又是5的倍数
- 2021.1.17-Robocup 2D学习日志
- ADT:Queues
- 根据时间戳生成当前月份第一天和最后一天
- ORALC/HIVE 的STDDEV、STDDEV_POP、STDDEV_SAMP等函数
- 数字金融、智能金融、区块链等关键词都得到热烈讨论
- 基于JAVA甜趣网上蛋糕店订购系统计算机毕业设计源码+数据库+lw文档+系统+部署
- iNFTnews|马斯克接管Twitter对Web3而言意味着什么?
- MEMORY系列之“eMMC”
热门文章
- #微积分#反常积分暇积分
- 永不气馁,用清晰目标换取成功结果 开利网络主题培训会议持续进行中
- 圣彼得堡大帝理工学院有没有计算机专业,【圣彼得堡彼得大帝理工大学-硕士阶段专业一览】...
- vivo2020届春季校园招聘在线编程考试(1)
- python重新安装ssl_Python3.7安装(解决ssl问题)
- python| asyncio、aiohttp、aiofiles下载视频
- java短信验证平台_JAVA实现利用第三方平台发送短信验证码
- C# DataGridView控件设置序号或显示行号
- Windows Server中的 WINS 服务器远程内存损坏漏洞分析
- Windows如何进入BIOS?