go語(yǔ)言寫安卓應(yīng)用的坑 golang寫安卓

如何Golang開發(fā)Android應(yīng)用

如何Golang開發(fā)Android應(yīng)用:

站在用戶的角度思考問題,與客戶深入溝通,找到共青城網(wǎng)站設(shè)計(jì)與共青城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋共青城地區(qū)。

一丶準(zhǔn)備

1.一臺(tái)Linux 64的機(jī)器

2.一個(gè)帶有AndroidStudioIDE的開發(fā)機(jī)器

因?yàn)榄h(huán)境配置實(shí)在復(fù)雜,所以引入的docker。

docker pull codeskyblue/docker-goandroid

docker run --rm -ti codeskyblue/docker-goandroid bash

cd example; echo "view example projects

docker起來(lái)之后,什么就都配置好了,NDK,java,GO的環(huán)境變量了,等等,并且還預(yù)裝了vim,gradle,tmux,git,syncthing,svn

二丶代碼

1.寫代碼之前,先約定下目錄結(jié)構(gòu)

go的代碼都放在src/golib下,編譯使用make.bash編譯腳本,看下這個(gè)文件樹

.

|-- app.iml

|-- build.gradle

|-- libs/armeabi-v7a # go編譯生成的so文件

| ? ? ? ? ? ? ? `-- libgojni.so

|-- main.go_tmpl # 一個(gè)模板文件,先不用管它

|-- make.bash # 編譯腳本,用來(lái)生成.so和Java代碼

`-- src

|-- golib

| ? |-- hi

| ? | ? |-- go_hi#1438;#1438;#1438; # 自動(dòng)生成的代碼

| ? | ? | ? `-- go_hi.go

| ? | ? `-- hi.go # 需要編寫的代碼

| ? `-- main.go

`-- main

? ?|-- AndroidManifest.xml

? ?|-- java

? ?| ? |-- go # 自動(dòng)生成的代碼

? ?| ? | ? |-- Go.java

? ?| ? | ? |-- Seq.java

? ?| ? | ? `-- hi

? ?| ? | ? ? ? `-- Hi.java

? ?| ? `-- me/shengxiang/gohello # 主要的邏輯代碼

? ?| ? ? ? ? ? ? ? ? ? ? ?`-- MainActivity.java#1438;#1438;#1438;

? ?`-- res

2.寫了一個(gè)例子

git clone

3.編譯下,試試行不行(就算不行問題應(yīng)該也不大,因?yàn)榇髥栴}都被消滅了)

cd GoHello/app

./make.bash

../gradlew build

4.一切順利的話在build/outputs/apk下應(yīng)該可以看到app-debug.apk這個(gè)文件。

編譯好的放到qiniu上了,可以點(diǎn)擊下載看看

下面可以嘗試改改

打開hi.go這個(gè)文件

hi.go的內(nèi)容,比較簡(jiǎn)單,寫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();

? ?}

});

編譯運(yùn)行下,把生成的apk安裝到手機(jī)上試試。

go語(yǔ)言可以開發(fā)安卓嗎?

可以。

Go 是一個(gè)新的并沒有多少用戶的語(yǔ)言,但是 Obective-C同樣。Google 是 Go 語(yǔ)言的奠基人,可以完全控制 Go 語(yǔ)言的發(fā)展。Go 是在 BSD 協(xié)議下發(fā)布的開源語(yǔ)言,這意味著所有的開發(fā)者可以在任何地方使用它。另外,Go 是一個(gè)操作系統(tǒng)級(jí)的語(yǔ)言。這里有一些關(guān)于 Go 的信息。

Go 語(yǔ)言在現(xiàn)有的系統(tǒng)編程語(yǔ)言環(huán)境遇到困難時(shí)誕生了。程序設(shè)計(jì)變得如此的困難,而選擇語(yǔ)言就是其中很大的一個(gè)原因。開發(fā)者不得不選擇一個(gè)高效編譯、高效執(zhí)行且開發(fā)簡(jiǎn)單的語(yǔ)言,而這三種特性在現(xiàn)代的語(yǔ)言中并不會(huì)同時(shí)存在。程序開發(fā)者如果想選擇簡(jiǎn)單勝過安全的語(yǔ)言,可能轉(zhuǎn)向動(dòng)態(tài)類型的語(yǔ)言,例如 Python、JavaScript 而不是C++、Java。Go 語(yǔ)言是一個(gè)試圖結(jié)合動(dòng)態(tài)類型和靜態(tài)類型,編譯效率和安全性以及語(yǔ)言的易用性等眾多特性與一體的一種嘗試。他的另一個(gè)目標(biāo)是支持現(xiàn)代的基于網(wǎng)絡(luò)的、基于多核的計(jì)算。最后,Go 還是非??斓?,他可以在單個(gè)計(jì)算機(jī)上僅僅花費(fèi)幾秒時(shí)間構(gòu)建一個(gè)龐大的應(yīng)用程序。為了達(dá)到這些目標(biāo)需要解決這些語(yǔ)言問題:靈活的類型系統(tǒng)、并發(fā)的垃圾回收、強(qiáng)制的依賴規(guī)范等等。這些東西不是舊的語(yǔ)言一些庫(kù)或者工具可以處理的,這也就是他被稱為新的編程語(yǔ)言的原因。

為什么蘋果可以用兩種編程語(yǔ)言開發(fā)應(yīng)用?而安卓只能用JAVA。不能用其他呢?Go語(yǔ)言不支持安卓?

蘋果公司允許開發(fā)人員使用 Objective-C 和 Swift 兩種編程語(yǔ)言開發(fā) iOS 應(yīng)用,因?yàn)檫@兩種語(yǔ)言已經(jīng)緊密地與蘋果的開發(fā)環(huán)境和工具集整合在一起。

安卓操作系統(tǒng)原生支持 Java 語(yǔ)言,因此它是安卓應(yīng)用開發(fā)的首選語(yǔ)言。但是,安卓也支持使用其他語(yǔ)言(如 Kotlin)來(lái)開發(fā)應(yīng)用,并且使用其他語(yǔ)言的開發(fā)人員可以通過 Java Native Interface (JNI) 訪問安卓的底層系統(tǒng) API。

Go語(yǔ)言不是安卓操作系統(tǒng)原生支持的語(yǔ)言,因此需要使用其他方法才能在安卓上開發(fā) Go 語(yǔ)言應(yīng)用。

具體的方法有:

gomobile: Go 語(yǔ)言官方支持的工具,用于在安卓和 iOS 上編譯 Go 代碼為本地應(yīng)用。

go-android: 一個(gè)開源庫(kù),用于在安卓上運(yùn)行 Go 語(yǔ)言代碼。

go-gtk: 一個(gè)庫(kù),用于在安卓上使用 GTK+ 構(gòu)建 GUI 應(yīng)用。

這些項(xiàng)目允許開發(fā)人員在安卓上使用 Go 語(yǔ)言開發(fā)應(yīng)用,但請(qǐng)注意,目前這些項(xiàng)目可能仍然處于試驗(yàn)階段,不保證穩(wěn)定性和性能。

網(wǎng)站欄目:go語(yǔ)言寫安卓應(yīng)用的坑 golang寫安卓
轉(zhuǎn)載源于:http://muchs.cn/article36/ddcepsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)公司、Google品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)