导航:首页 > 操作系统 > go语言android开发环境搭建

go语言android开发环境搭建

发布时间:2022-08-18 22:05:40

⑴ 如何Golang开发android应用

环境配置好复杂,我不得不唠叨几句。
需要下载golang1.4rc版,下载ndk,然后编译。 然后用go get 下载gobind这个工具, 然后,将写好的代码用gobind转化下,然后使用特殊的编译命令,将代码编译成.so文件,将生成的相关文件,放到android studio的项目中。然后java代码中,利用jni调用引用的代码。
... 好,接着往下看吧。
环境准备
一台linux 64的机器
一个带有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
开始写代码
写代码之前,先约定下目录结构
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�0�2�0�2�0�2 # 自动生成的代码
| | | `-- go_hi.go
| | `-- hi.go # 需要编写的代码
| `-- main.go
`-- main
|-- AndroidManifest.xml
|-- java
| |-- go # 自动生成的代码
| | |-- Go.java
| | |-- Seq.java
| | `-- hi
| | `-- Hi.java
| `-- me/shengxiang/gohello # 主要的逻辑代码
| `-- MainActivity.java
`-- res

我已经写了一个例子,先直接搞下来

编译下,试试行不行(就算不行问题应该也不大,因为大问题都被我消灭了)
cd GoHello/app
./make.bash
../gradlew build

一切顺利的话在build/outputs/apk下应该可以看到app-debug.apk这个文件。(剧透下,这个文件只有800多K)
编译好的我放到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"
}

文件末尾添加下面这行代码
func Welcome(name string) string {
return fmt.Sprintf("Welcome %s to the go world", name)
}

使用./make.bash重新编译下
打开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安装到手机上试试。
原理解读(有兴趣的接着看)
首先说下gobind这个工具。
go_hi/go_hi.go这个文件时通过gobind这个工具生成的,用来配合一个简单的程序,生成.so文件
// go_hi.go
package go_hi

import (
"golang.org/x/mobile/bind/seq"
"example/hi"
)

func proxy_Hello(out, in *seq.Buffer) {
param_name := in.ReadUTF16()
hi.Hello(param_name)
}

func init() {
seq.Register("hi", 1, proxy_Hello)
}

这个简单的程序内容是这样的
// main.go
package main

import (
"golang.org/x/mobile/app"

_ "golang.org/x/mobile/bind/java"
_ "example/hi/go_hi"
)

func main() {
app.Run(app.Callbacks{})
}

src/MyActivity.java文件内容是这样的
import ...
import go.Go; // 引入Go这个包
import go.hi.Hi; // gobind生成的代码

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Go.init(getApplicationContext()); // 初始化两个线程
Hi.Hello("world");
}
}

其中有一句Go.init(...)这里再看go.Go这个包是什么样子的
public final class Go {
// init loads libgojni.so and starts the runtime.
public static void init(Context context) {
... 判断该函数是否该执行的代码 -- 省略 --
System.loadLibrary("gojni"); // gojni需要这句

new Thread("GoMain") {
public void run() {
Go.run(); // run()是一个native方法
}
}.start();

Go.waitForRun(); // 这个也是一个native方法

// 这部分可以理解为,启动了一个后台线程不断的接收结果到缓存中。
new Thread("GoReceive") {
public void run() { Seq.receive(); }
}.start();
}

private static boolean running = false;

private static native void run();
private static native void waitForRun();
}

MyActivity.java中还有段代码是 Hi.Hello("world");,打开Hi.java路径在src/go/hi/Hi.java,这个文件也是gobind生成的,是用来给java方便的调用.so文件
// Hi.java
// File is generated by gobind. Do not edit.
package go.hi;

import go.Seq;

public abstract class Hi {
private Hi() {} // uninstantiable

public static void Hello(String name) {
go.Seq _in = new go.Seq();
go.Seq _out = new go.Seq();
_in.writeUTF16(name);
Seq.send(DESCRIPTOR, CALL_Hello, _in, _out); // 下面接着说
}

private static final int CALL_Hello = 1;
private static final String DESCRIPTOR = "hi";
}

Seq.send这部分实际上最终调用的是一段go代码
func Send(descriptor string, code int, req *C.uint8_t, reqlen C.size_t, res **C.uint8_t, reslen *C.size_t) {
fn := seq.Registry[descriptor][code]
in := new(seq.Buffer)
if reqlen > 0 {
in.Data = (*[maxSliceLen]byte)(unsafe.Pointer(req))[:reqlen]
}
out := new(seq.Buffer)
fn(out, in)
seqToBuf(res, reslen, out)
}

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

⑵ 怎么搭建安卓开发环境

Eclipse搭建Android开发环境,搭建方法如下:

⑶ 如何安装一个完整的android开发环境

1. 安装JDK 下载 jdk-6u24-windows-i586.exe 然后双击安装,选择默认位置安装即可 默认安装C:\Program Files\Java\jdk1.6.0_24 2. 配置jdk 安装完成以后,在桌面右键点击“我的电脑”,选择“属性” 然后选择“高级系统设置”,选择“环境变量”新建系统变量: 变量名(N):JAVA_HOME 变量值(V):C:\Program Files\Java\jdk1.6.0_24 变量名和变量值按照上面的,对于路径的选择最好打开电脑中的路径后复制过去,防止输入有误: 找到安装路径复制地址栏的路径,然后黏贴到变量值即可。对于这一点,下面凡是涉及到路径的必须如此,否则因为人为输入造成的痛苦自负O(∩_∩)O~ 选择path变量,如果没有的话请自己新建,一般会有path变量 对于添加的路径(变量值):对于不同的路径务必加上:“;”这个分号是不同路径的隔开符号,如果缺少的话,jdk配置也许可以成功,但是后面的jar调用将面临灾难O(∩_∩)O~ 这里要添加的路径为: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre6\bin; 如果在添加前 已经有别的路径 那么前面一个;必须要有,对于最后一个; 可有可无。 新建变量:CLASSPATH 这里的变量值如下: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 注意这里的每一个符号 最前面的 . 代表当前目录,不能缺少 到此为止,我们已经完成jdk配置前期工作 接下来需要验证是否配置成功 Win7 下 输入cmd 回车后会出现DOS界面 然后 输入javac 如果出现如下界面 那么恭喜你,jdk配置成功 这里提醒一下,虽然在这里jdk配置成功,但是我们在最后编写helloworld程序的时候还需要验证这一步环节。 如何出现其他情况,请你仔细检查上面的环节是否出现问题,核实之。 1. 安装Android SDK 下载android-sdk-windows_3.3.1-all.rar然后直接解压到以上目录下 点击"我的电脑" ->"属性"->"系统属性"->"高级"->"环境变量"(这步跟配置JDK环境类似)->"系统变量" 然后点击下方的"新建" 然后在对话框中的"变量名"中输入SDK_HOME,在"变量值"中舒服刚才目录.也就是 D:\sdx\jobInstall\android 这个目录 3.找到path的变量.然后点"编辑".在变量最前端中加"%SDK_HOME%tools;" 记得分号一定要加上!相对于一个完结符号!其实 这个路径指的也就是D:\sdx\jobInstall\android\tools 一样!(我个人理解) 4.选择[开始]|[运行]命令. 在[运行]中输入cmd 并按回车键 然后在窗口输入android -h 如果出现下面的图一样的数据.那恭喜你.已经配置完成了,并成功了! 反之! 下载eclipse-SDK-3.5.2-win32.zip,解压到D:\android下,下载 ADT10.0。 然后运行eclipse,接着离线安装ADT10.0 选择help-----install new software 选择add 然后出现一下对话框 路径选择好了以后 接下来安装,选择下一步安装即可 创建子目录d:\android\workspace,用于保存Eclipse的工程。在第一次启动Eclipse时,将此目录设置为workspace的默认目录。 配置ADT插件:启动Eclipse,点菜单Windows-->Preferences-->Android,在SDK Location中添加上一步的Android SDK的存储路径d:\android\android-sdk-windows 现在Eclipse工具栏中多了一些东西: ,这就是我们安装插件的效果。点击模拟器(向下箭头的按钮)的按钮,出现配置界面,今后的软件更新也可以在此处进行: 选择Virtual Devices-->New就可以新建一个新的Android模拟器,因为手机版本不同,版本提供的服务也不同,所以要建立多个模拟器来测试: 然后Create AVD就可以了。随后选中模拟器的版本,点击Start就会出现模拟出来的手机界面了

⑷ 如何配置go语言开发环境

1、下载go的zip文件。并且一定要把文件解压到c:\go目录下。
2、配置windows的高级环境变量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path变量里面把c:\go\bin加入。以便可以在命令行直接运行go命令。
举例:我的机器:
GOPATH= c:\go;c:\go\src;F:\workspace\goSample01;
GOBIN=c:\go\bin;F:\workspace\goSample01\bin;
其中,c:\go是go的安装路径;
F:\workspace\goSample01是我写的go语言项目的工程目录;
F:\workspace\goSample01\bin是go语言项目的工程目录下的可执行文件路径;

3、在完成环境变量配置后,打开一个命令行窗口,直接输入go,然后回车,看看是否出现go的帮助信息。如果出现,那么go的基本环境就OK了。
注意:这个基本环境不包含开发工具,也不能直接编译带C代码的go程序。
4、(可选)为了支持Import远程包,最好装个gomingw。下载地址:http://code.google.com/p/gomingw/downloads/list。如果下的是压缩包,请把它解压到C盘。例如,C:\gowin-env。里面有个Console.bat是以后使用go get的环境。举例:有个文件a.go,里面import(
"fmt"
"github.com/astaxie/beedb"
_ "github.com/ziutek/mymysql/godrv"
为了编译该a.go文件,需要启动Console.bat,然后在该命令行窗口,进入c:\go\src目录下,执行go getgithub.com/astaxie/beedb
Go get github.com/ziutek/mymysql/godrv .
Go会自动下载该远程包并编译和安装这些包。
配置goclipse(可选)
(如果不喜欢eclipse开发工具,请跳过这个配置。)
1、下载并安装goclipse插件。Goclipse是go语言for eclipse的插件,下载地址:http://code.google.com/p/goclipse/
2、启动eclipse并创建go项目。然后写个最简单的helloworld.go文件,并运行。代码如下:
packagemainimport"fmt"func main(){ fmt.Printf("hello, world")}
配置gocode(可选)
如果不需要go语法辅助和eclipse里面的(按ALT+/)弹出go语言自动辅助功能,请跳过这个配置。
1、下载gocode的zip文件,解压后放在go的bin目录下。
2、下载并安装Git软件。并且在path里面配置git的执行路径。例如c:\git\bin
3、在命令行执行:go build .\gocode。如果一切正常,那么将会编译生成一个gocode.exe文件在go的bin目录下。如果编译失败,那么就转第4步。
4、如果第3步直接编译gocode源文件成功,那就直接到第5步。否则,就需要通过git下载gocode源文件,然后再编译。在命令行执行:go get -u github.com/nsf/gocode 。就会生成gocode.exe文件。
5、在goclipse插件里面指定gocode的路径。就可以在elcipse里面调用gocode来帮助写编码了。
从开发工具这块看,go语言还不够成熟,开发工具都还不完善,有待改进。
下载go-tour教程源代码(可选)
Google有个在线运行go语言的教程(http://tour.golang.org/#2),很不错。支持在web上直接运行大部分的go程序,想了解这个教程的源代码的朋友可以通过以下方式获取。如果没兴趣,可以跳过这个步骤。

⑸ 如何用Go语言开发Android应用

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设备

⑹ 简述如何搭建android开发环境

如果你有一定的发展,一定得方法就可以的呀。

⑺ 如何搭建go语言编程环境

如果你有linux安装盘,直接从安装盘找到相关的安装程序就行了,如果是rhel系列的,可以从add/remove software中找到开发相关的一些程序,比如开发工具、开发库等,选中,安装上就可以了。安装后可用的是gnu下的一套开发环境,包括gcc、gnu-make等。

⑻ 如何搭建android sdk环境

方法/步骤

1、在网站上下载android-sdk的最新版本, 然后直接解压到磁盘目录下面。

⑼ 如何搭建android开发环境

我的第一个Android程序
今天给大家分享一下我的第一个Android项目:helloword
首先我们开发Android程序需要一个开发环境,下面先分享一下环境搭建的方法
Android开发环境搭建非常简单,google为我们提供了一套完整的开发工具包下载

点击Download the SDK就会出现下面的页面,选择同意以上条款,并根据自己的系统选择对应的版本,我的电脑是32位的所以就选择了32-bit的,然后点击下面蓝色的按钮就可以开始下载啦~~


下载好了之后呢是一个510M的压缩文件,选择好目录解压缩之后能我们会得到


这三个东西,这里呢我们看到了我们熟悉的Eclipse文件夹了,没错,这个文件夹下呢就是我们的开发工具啦,但是不要着急,但开始之前呢,我们需要先配置一下我们的环境变量
将SDK下的platform-tools和tools两个文件夹的完整路径呢配置到我们的环境变量PATH中

我的系统是window7的,配置环境变量的方法呢:右击我的电脑->属性->高级设置->环境变量->双击Path将连个文件夹的路径追加进去,注意中间要用分号隔开,点击确定。

配置好所有的环境变量后,打开我们的Eclipse文件夹下的eclipse.exe,


第一次打开会弹出一个对话框,设置我们的工作路径,也就是我们保存项目的地方


经过加载之后呢,我们就看到操作界面了。
首先先创建一个Android的虚拟机,点击window下的Android Virtual Devices Manager选项
就可以看到我们的Android虚拟机管理界面了

点击new新建一个虚拟机

选择好后点击确定,一个虚拟机就创建好了,选择我们创建好,选中我创建好的虚拟机,start

加载界面

完成后就能看到我们的虚拟机啦~经过漫长的启动终于看到虚拟机界面了。

准备工作都做好了,下面开始创建一个Android项目啦,万能的helloword,哈哈!
虚拟机最小化,进入Eclipse界面,菜单栏File->new->Android application project,新建一个Android项目
接着会出现一个界面,选择一些参数


接下来就是一路next然后finish,一个新的Android项目就建好了
接着在界面会看到Eclipse的界面了

右击我们的项目,run as -> 选择Android application,就可以运行到我们的虚拟机上

⑽ 如何搭建安卓开发环境需要学习哪些

工具/原料
JDK
Eclipse
Android SDK
ADT
AVD
搭建android开发环境流程
首先先看装 JDK。
安装步骤就是安装提示一步一步走。设置环境变量步骤如下: 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOME值为: D:\Program Files\Java\jdk1.6.0_18(你安装JDK的目录) CLASSPATH值为:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin; Path: 在开始追加 %JAVA_HOME%\bin; NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。 安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java –version 查看JDK的版本信息。出现类似下面的画面表示安装成功了:

安装Eclipse:
如果你还么有Eclipse的话,可以去下载,下载如下图所示的Eclipse IDE for Java Developers(92M)的win 32bit版:

安装Android SDK
在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https://..."这项,再点击Available Packages 。 选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包 在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:\AndroidDevelop\android-sdk-windows\tools)。

安装ADT
打开 Eclipse IDE,进入菜单中的 "Help" -> "Install New Software" 点击Add...按钮,弹出对话框要求输入Name和Location:如下图所示:

创建AVD
为使Android应用程序可以在模拟器上运行,必须创建AVD。1、在Eclipse中。选择Windows > Android SDK and AVD Manager 2、点击左侧面板的Virtual Devices,再右侧点击New 3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创建AVD

望采纳

阅读全文

与go语言android开发环境搭建相关的资料

热点内容
php邮箱验证代码 浏览:404
光猫伪装命令 浏览:175
安卓高端机为什么都用曲屏 浏览:419
老电影大全 战争片 浏览:971
有没有小电影得网址网站 浏览:378
奥特曼电影排行榜前十名 浏览:580
安卓光遇账号过期怎么找回 浏览:476
现金宝宝app在哪里能下载 浏览:277
二战女教师慰安妇电影 浏览:270
传说对决录像在哪个文件夹 浏览:136
不用充钱就能看电视剧的网站 浏览:562
卧式空气压缩机 浏览:137
合川排课管理系统源码 浏览:439
女主被用铁链囚禁的小说 浏览:196
两个小时的爱情电影 浏览:864
php电商下单并发处理 浏览:242
送牛奶女电影名 浏览:468
港片有功物名的别片有哪些 浏览:246
s8安卓9如何开启多屏应用 浏览:39