重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
go 可以开发桌面应用,但并不是很舒适。
成都创新互联,专注为中小企业提供官网建设、营销型网站制作、响应式网站设计、展示型网站建设、网站设计等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。
可以使用的GUI库有:
1、goqt,LiteIDE作者出品,Go和QT的绑定,还未发布
2、go.uik,纯Go实现的并发UI工具
3、walk,Windows Application Library Kit
4、gform,Windows GUI framework
目前的话walk用得比较多
不过go的GUI库用起来没有C#、C/C++的那么顺手。
这个问题不久之后应该会有所改善,毕竟用Go开发桌面的需求在不断增加。
目前我采用的是用go http 做后端,Webkit+HTML5 做界面,表现力很好,前端不需要学习新知识,一般的管理类应用都能搞定。
如何Golang开发Android应用:
一丶准备
1.一台Linux 64的机器
2.一个带有AndroidStudioIDE的开发机器
因为环境配置实在复杂,所以引入的docker。
docker pull codeskyblue/docker-goandroid
docker run --rm -ti codeskyblue/docker-goandroid bash
cd example; echo "view example projects
docker起来之后,什么就都配置好了,NDK,java,GO的环境变量了,等等,并且还预装了vim,gradle,tmux,git,syncthing,svn
二丶代码
1.写代码之前,先约定下目录结构
go的代码都放在src/golib下,编译使用make.bash编译脚本,看下这个文件树
.
|-- app.iml
|-- build.gradle
|-- libs/armeabi-v7a # go编译生成的so文件
| `-- libgojni.so
|-- main.go_tmpl # 一个模板文件,先不用管它
|-- make.bash # 编译脚本,用来生成.so和Java代码
`-- src
|-- golib
| |-- hi
| | |-- go_hi#1438;#1438;#1438; # 自动生成的代码
| | | `-- go_hi.go
| | `-- hi.go # 需要编写的代码
| `-- main.go
`-- main
|-- AndroidManifest.xml
|-- java
| |-- go # 自动生成的代码
| | |-- Go.java
| | |-- Seq.java
| | `-- hi
| | `-- Hi.java
| `-- me/shengxiang/gohello # 主要的逻辑代码
| `-- MainActivity.java#1438;#1438;#1438;
`-- res
2.写了一个例子
git clone
3.编译下,试试行不行(就算不行问题应该也不大,因为大问题都被消灭了)
cd GoHello/app
./make.bash
../gradlew build
4.一切顺利的话在build/outputs/apk下应该可以看到app-debug.apk这个文件。
编译好的放到qiniu上了,可以点击下载看看
下面可以尝试改改
打开hi.go这个文件
hi.go的内容,比较简单,写Go代码主要就是这部分
// Package hi provides a function for saying hello.
package hi
import "fmt"
func Hello(name string) {
fmt.Printf("Hello, %s!\n", name)
return "(Go)World"
}
5.文件末尾添加下面这行代码
func Welcome(name string) string {
return fmt.Sprintf("Welcome %s to the go world", name)
}
使用./make.bash重新编译下
6.打开MainActivity.java 修改下OnClickListener事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String message = Hi.Welcome("yourname");
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
}
});
编译运行下,把生成的apk安装到手机上试试。
Go 语言是一个试图结合动态类型和静态类型,编译效率和安全性以及语言的易用性等众多特性与一体的一种尝试。他的另一个目标是支持现代的基于网络的、基于多核的计算。最后,Go 还是非常快的,他可以在单个计算机上仅仅花费几秒时间构建一个庞大的应用程序。使用GO语言开发android语言步骤如下:
1. 下载安装Go语言(版本1.5+)
Golang链接
回到顶部
2. 下载安装 gomobile
下载
$ go get golang.org/x/mobile/cmd/gomobile
安装(需要等待几分钟)
gomobile init
回到顶部
3. Golang开发手机应用有两种方式
a. 原生应用开发
$ go get -d golang.org/x/mobile/example/basic
主要应用领域:
应用控制管理与配置
OpenGL ES 2 绑定
Asset 管理
Event 管理
试验中的包,含有OpenAL 绑定、音频、字体、图形以及运动传感器
Android开发
$ gomobile build -target=android golang.org/x/mobile/example/basic
此命令会生成名为basic的apk安装包
$ gomobile install golang.org/x/mobile/example/basic
此命令将安装apk包到已连接的android设备
Go语言由Google公司开发,并于2009年开源,相比Java/Python/C等语言,Go尤其擅长并发编程,性能堪比C语言,开发效率肩比Python,被誉为“21世纪的C语言”。
Go语言在云计算、大数据、微服务、高并发领域应用应用非常广泛。BAT大厂正在把Go作为新项目开发的首选语言。
Go语言应用范围:
1、服务端开发:以前你使用C或者C++做的那些事情,用Go来做很合适,例如日志处理、文件系统、监控系统等;
2、DevOps:运维生态中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go语言开发;
3、网络编程:大量优秀的Web框架如Echo、Gin、Iris、beego等,而且Go内置的 net/http包十分的优秀;
4、Paas云平台领域:Kubernetes和Docker Swarm等;
5、分布式存储领域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;
6、区块链领域:区块链里面有两个明星项目以太坊和fabric都使用Go语言;
7、容器虚拟化:大名鼎鼎的Docker就是使用Go语言实现的;
8、爬虫及大数据:Go语言天生支持并发,所以十分适合编写分布式爬虫及大数据处理。
python可以开发出Windows平台的EXE程序,需要打包即可,但是打包后exe软件本身有点大。
很多朋友可能知道Go语言的优势在哪,却不知道Go语言适合用于哪些地方。
1、 Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面。Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。
2、 其实Go语言主要用作服务器端开发。其定位是用来开发"大型软件"的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。
3、 Go语言成功案例。Nsq:Nsq是由Go语言开发的高性能、高可用消息队列系统,性能非常高,每天能处理数十亿条的消息;
4、 Docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。
5、 Packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者
6、 Skynet:分布式调度框架。
7、 Doozer:分布式同步工具,类似ZooKeeper。
8、 Heka:mazila开源的日志处理系统。
9、 Cbfs:couchbase开源的分布式文件系统。
10、 Tsuru:开源的PAAS平台,和SAE实现的功能一模一样。
11、 Groupcache:memcahe作者写的用于Google下载系统的缓存系统。
12、 God:类似redis的缓存系统,但是支持分布式和扩展性。
13、 Gor:网络流量抓包和重放工具。
以上的就是关于go语言能做什么的内容介绍了。