概述
我们建议将Go语言引入Android平台,重点是用Go语言编写游戏程序,API将在Android
NDK中定义。
背景
Android平台被设定为一个多应用操作系统,一个相对于传统UNIX系统来说更依赖于网络库和服务的操作系统,这意味着我们将为Go运行时开放更多的API。
将Golang带入Android平台是一件非常糟糕的事情,因为Android本身是Java构建的并且拥有巨量的API,任何试图将这些API用Go替代的结果将会导致一个非常糟糕的结果。无论是手工建立包装类还是自动建立都会导致程序运行非常缓慢。
然而如果使用基于C的API,通过AndroidNDK来编写一些游戏类程序可能会带来意想不到的收获。
提议
在Golang
1.4周期中,Android平台的编译将纳入Go的源,并且包含Android支持的cgo(由Elias
Naur贡献)。Dalvik-loadable
.so外部连接文件的支持也会由Android
NDK提供。
在发布上我们仍然提供交叉平台编译,并且支持在Linux主机上adb工具在Android设备上测试程序。
我们将会提供一个名叫go.mobile的子版本,包含:
1、通过Android
NDK对OpenGL,OpenSL和OpenMAX的支持。
2、一个Java->Go的工具,支持通过Java调用Go的Package,所以许多游戏的菜单UI可以通过标准SDK构建。(有可能会支持通过其他语言调用Go,比如Objective-C。)
3、集成AndroidStudio
新特性将会在Go1.4稳定版中提供。
语料库文件以特殊格式编码。这是种子语料库和生成语料库的相同格式。
下面是一个语料库文件的例子:
第一行用于通知模糊引擎文件的编码版本。虽然目前没有计划未来版本的编码格式,但设计必须支持这种可能性。
下面的每一行都是构成语料库条目的值,如果需要,可以直接复制到 Go 代码中。
在上面的示例中,我们在 a []byte后跟一个int64。这些类型必须按顺序与模糊测试参数完全匹配。这些类型的模糊目标如下所示:
指定您自己的种子语料库值的最简单方法是使用该 (*testing.F).Add方法。在上面的示例中,它看起来像这样:
但是,您可能有较大的二进制文件,您不希望将其作为代码复制到您的测试中,而是作为单独的种子语料库条目保留在 testdata/fuzz/{FuzzTestName} 目录中。golang.org/x/tools/cmd/file2fuzz 上的file2fuzz工具可用于将这些二进制文件转换为为[]byte.
要使用此工具:
语料库条目:语料库 中的一个输入,可以在模糊测试时使用。这可以是特殊格式的文件,也可以是对 (*testing.F).Add。
覆盖指导: 一种模糊测试方法,它使用代码覆盖范围的扩展来确定哪些语料库条目值得保留以备将来使用。
失败的输入:失败的输入是一个语料库条目,当针对 模糊目标运行时会导致错误或恐慌。
fuzz target: 模糊测试的目标功能,在模糊测试时对语料库条目和生成的值执行。它通过将函数传递给 (*testing.F).Fuzz实现。
fuzz test: 测试文件中的一个被命名为func FuzzXxx(*testing.F)的函数,可用于模糊测试。
fuzzing: 一种自动化测试,它不断地操纵程序的输入,以发现代码可能容易受到的错误或漏洞等问题。
fuzzing arguments: 将传递给 模糊测试目标的参数,并由mutator进行变异。
fuzzing engine: 一个管理fuzzing的工具,包括维护语料库、调用mutator、识别新的覆盖率和报告失败。
生成的语料库: 由模糊引擎随时间维护的语料库,同时模糊测试以跟踪进度。它存储在$GOCACHE/fuzz 中。这些条目仅在模糊测试时使用。
mutator: 一种在模糊测试时使用的工具,它在将语料库条目传递给模糊目标之前随机操作它们。
package: 同一目录下编译在一起的源文件的集合。
种子语料库: 用户提供的用于模糊测试的语料库,可用于指导模糊引擎。它由 f.Add 在模糊测试中调用提供的语料库条目以及包内 testdata/fuzz/{FuzzTestName} 目录中的文件组成。这些条目默认使用go test运行,无论是否进行模糊测试。
测试文件: 格式为 xxx_test.go 的文件,可能包含测试、基准、示例和模糊测试。
漏洞: 代码中的安全敏感漏洞,可以被攻击者利用。
抓必死是什么开发语言博客园-开发者的网上家园今天,我们来聊一聊测试人员想要进阶,想要做自动化测试,甚至测试开发,如何选择编程语言。前言 自动化测试,这几年行业内的热词,也是测试人员进阶的必备技能,更是软件测试未来发展的趋势。...
博客园
swift语言 必死 现在iOS APP开发,用oc语言的多,还是swift语音的多?酷米网
这门快速发展的语言,很多实际场景无法有效实现功能,尤其是一些复杂的开发需求。另外,手机原生开发的一部分市场份额被H5开发技术所取代,而这种新的原生语言必然很难 1。Swift目前必须用Xcode...
酷米网
python3.0开发语言简介-程序员大本营
python3.0开发语言简介,程序员大本营,技术文章内容聚合第一站。
www.pianshen.com
其他人还搜了
不能作为网页开发语言的是什么
开发手机游戏用什么语言
c语言适合开发什么
安卓系统版本开发语言是什么
学什么开发语言好学
学什么开发语言好就业
各种语言写网络爬虫有什么优点缺点?芝士回答
总之,如果开发一个小规模的爬虫脚本语言是个各方面比较有优势的语言。如果要开发一个复杂的爬虫系统可能 Java 是个增加选项,C++ 我感觉写个模块之类的更加适合。对于一个爬虫系统来说,下载和...
芝士回答2022-07-08
“阿里味”PUA 编程语言火上GitHub热榜,标星1.9K-编程之家
其实,这是一位国内程序员开发的 互联网黑话编程语言,英文名叫PUA Language。这个语言成功将两大部门员工对齐:非技术部门能 快速 掌握编程要领,程序员也能获得每天PPT汇报的快感。看到这么...
编程之家2022-10-15
游戏开发中常见的10种编程语言分别是什么-编程语言-亿速云
游戏开发是非常有经验和熟练的程序员的工作。它可能花费数亿美元。这是一项非常有创意的工作,也需要技术水平。他们需要具有特定需求的编程语言。以下是用于游戏开发的十大编程语言的列表。1、...
亿速云计算2022-01-11
python-编程语言-CSDN开发者互助问答社区_程序员有问必答-CSDN问答
问题遇到的现象和发生背景 各位好,我正在尝试用抓包,获取剑网3推栏的一些信息,但是目前,根据我获得的API,请求过去貌似还缺少一些参数。遇到的现象和发生背景,请写出第一个错误信息 缺少...
CSDN技术社区
十大受欢迎的编程语言你pick哪一个?腾讯新闻
甚至很多家长直接从娃娃抓起,几岁的小孩就开始去学编程!然而现在已有的计算机语言总数总计达9000多种,但是其实只有50种编程语言是较为流行的。在众多的编程语言中,究竟抱团前十的有哪些呢?...
腾讯网2020-07-30
编程语言里的网红 python语言有何优势-起航学习网
人工时代真的来了,为了我们下一代的教育,我们的未来应该从小开始抓起,python编程语言将融入低幼阶段,并逐步普及开来。文章出自:http://www.epx365.cn/peixun/software/201841261.html 文章...
起航学习网2018-07-08
各种语言写网络爬虫有什么优点缺点?
回答:26浏览:23万+赞同:10
[最佳答案]反对@Kenneth,他见过的爬虫太少了首先取决于目的如果是一个站点,单一目的,用习惯的语言写吧,学别的语言用的时间都够重构两遍的了。如果是有100左右的站点,做个框架,把你的爬虫管理起来,...
知乎2017-02-11
相关搜索
学什么开发语言好
学什么开发语言
现在学什么开发语言好
安卓开发语言
开发语言
c语言开发需要学什么
c语言开发环境
开发语言是什么
11-20条
Python开发语言的简介及优缺点-知乎
Python 简单易用,学习成本低,代码优雅干净清爽 Python 标准库和第三方库非常多,多到甚至有些恐怖,太多程序员为之添砖加瓦 Python功能强大,从网站 网抓 数据处理 科学计算 AI 运维都能干,...
知乎2022-07-28
该选择哪个语言开发爬虫?php教程-PHP中文网
我觉得不是说选择哪个语言,主要是看开发者对哪个语言最熟悉。如果是我的话,我会用 Node.js Node.js 有一个 Cheerio 库,用来解析 HTML 效率十分不错。它的 API 风格是类似 jQuery 的。啥都不...
php中文网2016-06-06
机器人研发十大热门编程语言:不死 Java、不朽 C/C+、新贵 Python_CSDN资讯的博客-CSDN博客_机器人编程
阅读:4w+
而回归本文主题,对于首选编程语言的选择,没有最佳的答案,但本文中,我们将介绍程序员在机器人编程中最流行的十大编程语言,并通过对比其优缺点,希望可以给予开发者提供一定的参考方向,做出...
CSDN技术社区2017-11-28
最适合青少年学习的编程语言 – Python-今日头条
高考政策出台在即,国家在抓信息技术教育,即使是今年高考也已经用到计算思维逻辑,未来人工智能必然会用到。10到16岁的孩子,大脑发育尚未完成,这段时间的学习会促进大脑神经元突触的生长以及...
今日头条2018-08-04
各种语言写网络爬虫有什么优点缺点
真正好的系统还包括完善的任务调度:dom.GAE 的支持,如果开发一个小规模的爬虫脚本语言是个各方面比较有优势的语言: 1,好的设计会节约大量的带宽和服务器资源,请求页面时会有较长的延迟,要...
搜狗问问2019-05-03
go语言_证券指标的博客-CSDN博客
背景 在接触Golang以前,我用C/C++、Lua及Python作为主要开发语言。C/C++的问题:开发效率低,对开发者要求高libc只向后兼容,运维难度偏大Lua/Python的问题:动态语言,缺少编译过程,低级错误...
CSDN技术社区2016-01-12
Go语言介绍-码农教程
这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上 https://github.com/google/ ...
码农网2021-10-01
黑客都使用什么编程语言?python|javascript_网易订阅
评论:73
他们的年龄在16到21岁,现已经释放,警方表示调查还在继续,但警方并未透露这位主谋是否被抓。与此同时,自称是欧洲最大的黑客协会Chaos计算机俱乐部做了一份调查,其目的是研究黑客们都使用...
手机网易网2022-03-29
“阿里味”PUA 编程语言火上GitHub热榜,标星1.9K!Wang_AI的博客-CSDN博客
其实,这是一位国内程序员开发的 互联网黑话编程语言,英文名叫PUA Language。这个语言成功将两大部门员工对齐:非技术部门能快速掌握编程要领,程序员也能获得每天PPT汇报的快感。看到这么有趣...
CSDN技术社区2022-01-08
这门语言将成为法国高中官方编程语言,微软也用它做脚本?
作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法。相比于C++或Java,Python让开发者能够用更少的代码表达想法。Python 或将成为法国高中的官方编程教学语言,这将带来...
美篇2018-12-01
相关搜索
学什么开发语言
学什么开发语言好
ai开发用什么语言
开发语言是什么
现在学什么开发语言好
linux开发用什么语言
cshop是什么开发语言
开发手机游戏用什么语言
gis开发用什么语言
windows开发的语言是什么