Go 语言对 Android 原生应用开发的支持情况
Google工程师和独立开发人员提出了几份不同的提案,旨在让Go语言支持开发原生的Android应用。这项工作无法让Go语言编写的应用使用Android NDK的全部接口,但有可能使用其中的一个子集。
David Crawshaw是Google的工程师,他写了一份提案,旨在让Go语言部分支持编写Android应用。根据他的说法,“用Go语言来实现整个Android平台非常困难。Android平台是用Java写的,并拥有庞大的API层。”
但是,Crawshaw说,一部分Android应用——比如游戏——使用了精简得多的C语言API编写代码,这些API由Android NDK提供。这样,使用Go语言来开发和NDK一样的功能,提供对Android的支持是有可能实现的。
Crawshaw建议在Go 1.4的开发周期中,Go语言的代码库引入一个叫GOOS=android的选项,这个选项可以提供以下功能:
- 为Android NDK中导出的OpenGL、OpenSL和OpenMAX接口,提供Go语言的绑定(binding)。
- 从Java语言到Go语言的绑定生成器(binding generator)。如果我们有一个Go语言编写的软件包,那么这个生成器可以帮助Java代码调用它,所以游戏菜单界面就可以直接使用标准的SDK来编写了。
- 集成到Android Studio的编译系统中。
不止Crawshaw一个人提出了把Go语言和Android结合起来的想法。Elias Naur建议扩 展Go语言的工具链来支持创建动态库。这样我们就可以在Android应用中使用Go语言编写的库,它们被Android应用加载和运行,并打包在apk 中发行。要把这个想法变为现实,有一个重要的前提条件:加入对交叉编译的支持,而Go 1.3已经实现了它。交叉编译是必需的,因为NDK本身并不能在Android上运行,只有使用NDK编译和(或)链接的可执行程序和动态库才能在 Android设备上运行。
上面这个提案基于已有的开源项目goandroid,作者就是Elias Naur。Goandroid修改了Go语言的工具链和运行时库,使之能编写动态库,在原生的Android应用中运行,而Google官方并不支持这个功能。
最后,还有一个叫Mandala的项目,它是一个更全面的框架,它的目标是使Go语言能编写Android原生应用。Mandala利用了Goandroid的工具链,它的作者Andrea Fazzi说,感谢Goandroid,“你可以在桌面环境中开发、测试和运行你的应用,然后再把它部署到Android设备上。它鼓励大家以Go语言独特的方式来编写Android应用:使用通道(channels)来实现通讯,而不是回调函数(callbacks)”
在功能方面,Mandala项目跟Crawshaw的提案很接近,它的目标也主要是为游戏提供解决方案:“我们不应该把Mandala框架看作是一 个上层的游戏引擎,而是应该在它基础之上构建游戏引擎,或者把已有的游戏引擎移植到它上面。” Fazzi 提醒道,Google并不支持用Go语言来开发原生的Android应用,但他也表达了他的期望“当前这些工作可以起到某种激励作用,促使Go语言开发团 队从官方层面支持Android。”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
苹果再次重申全面禁止热更新,不移除相关代码就下架
苹果在今年 3 月份的时候就曾向所有开发者推送警告邮件,宣布未来将禁用 APP 内部的“动态分发”功能。并要求开发者在自家 APP 中删除 JSPatch 相关框架,否则 APP 将面临下架或禁止上架。 6 月 1 日,苹果再次重申:要求当前含有热更新功能的 App,在 6 月 12 日前移除相关代码,否则这些 App 可能会下架。 由于软件热更新绕过了苹果的审核,黑客开发者有可能会通过提交正常的版本之后,通过热更新的方式修改 APP 导致安全隐患,这违反了苹果的安全隐私政策。另外苹果此举既能改善部分使用混编语言的 App 的流畅性,也能重新掌握一些渠道的 App 审核权限。可以料想,从 6 月 12 日开始,iOS 可能会出现一次 APP 下架的小高潮。 其实无论是安卓还是 iOS,规则上都是不允许“热更新”的。只不过以前 iOS 并没有特别严格的限制,安卓是由于开源且其服务在国内不能使用,所以形同虚设。 禁止热更新有利有弊。有利的是,禁止热更新,更能够保证用户的安全性。不利的是,每次都需要下载一个完整的应用,耗费流量。而对于开发者来说,有“热更新 ”能够非常迅速解决一些小 bug ...
- 下一篇
Gmail 活跃用户数量超 10 亿
谷歌CEO Sundar Pichai在日前举行的Alphabet电话财报会议上称,谷歌邮箱服务Gmail现已经拥有10亿多名活跃用户。去年5月,该服务活跃用户数量为9亿。Gmail是谷歌在2004年推出的一项邮箱服务,不过直到2009年,它的beta标签才被拿掉。2014年,谷歌又为Gmail推出了Inbox(收件箱)邮箱客户端。 去年,谷歌为Inbox带来了一个有趣的功能:智能回复,即为用户提供快速、简单的回复信息。根据最近的统计数据显示,在Inbox回复的邮件中有10%都是来自这项功能。 据悉,Alphabet另外活跃用户数量超过10亿的服务有Google Search、YouTube、Google Maps、Android、Chrome。 ====================================分割线================================文章转载自 开源中国社区[http://www.oschina.net]
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题