go語言生成so go語言生成word模板

如何Golang開發Android應用

如何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語言 生成iOS SDK

brew install go

輸入 brew info go 或者 go env 即可查看當前安裝的golang版本信息

注意:千萬不要把GOPATH設置成go的安裝路徑,可以自己在用戶目錄下創建一個目錄,例如mygo

一般安裝好go之后,使用go env查看一下當前環境。此時顯示出來的GOROOT就是你使用brew安裝go的安裝目錄,這個路徑要記下來。接下來要在bash_profile文件中進行配置。

使用vim ~/.bash_profile

然后在這個文件中進行編輯,下面以我的電腦為例,路徑這種要根據不同人的情況而定

GOROOT=/usr/local/Cellar/go/1.10.1/libexec (改成自己的go安裝目錄 go env命令可查看)

export GOROOT (不用動)

export GOPATH=/Users/jiangqiaowei/mygo (創建一個自己的文件夾 管理go相關內容)

export GOBIN=$GOPATH/bin (不用改)

export PATH=$PATH:$GOBIN:$GOROOT/bin (不用改)

$ go get golang.org/x/mobile/cmd/gomobile (需要墻)

gomobile init

$ go get -d golang.org/x/mobile/example/bind/...

$ cd $GOPATH/src/golang.org/x/mobile/example/bind

$ gomobile bind -target=ios golang.org/x/mobile/example/bind/hello

此命令在ios/路徑下生成bind.xcodeprojxcode項目以及 在bind/目錄下生成一個 hello.framework

拖入項目即可使用

golang調用so庫同步函數停止

測試動態庫步驟:

1、test_so.h

2、test_so.c

3、生成so

4、復制so文件到Go項目目錄

Go項目目錄

1、load_so.h

2、load_so.c

3、test.go

4、Go項目目錄要放在$GOPATH/src/目錄下,這也是正常操作。

test目錄為Go項目,里邊是上述創建的所有源碼文件。

在$GOPATH/src/test/里直接使用gobuild編譯生成test二進制文件,此處需要注意執行路徑。

問題

1、/**/注釋的代碼下一行一定是import“C”,中間不能有空行

2、importC必須單獨一行,不能和其它庫一起導入

3、有人編譯的時候會報錯:

這個主要是執行目錄問題,一定要在$GOPATH/src/項目/目錄下,用gobuild執行,gobuild后邊不要有任何文件名。

或者用gorun.運行,或者goruntest,test是項目名。不能用goruntest.go。

4、還有人報這個錯:test.go文件里的cgoLDFLAGS:-ldl這一行不要刪掉。

go怎么調用自己用c/c++寫的so中的方法

直接調用so的函數cgo應該繞不開吧,我寫過一個銀行的應用程序調用其特色業務接口,因為接口只支持c和java,我就封裝了一個c的so,然后用cgo調用后寫了一個RPC供遠程的go語言調用,因為RPC只負責信息交互不負責業務邏輯,所以寫了不到百行,以后基本不用再改。記住雖然go語言自帶gc,但cgo還是要手工釋放內存哦。

本文題目:go語言生成so go語言生成word模板
網站鏈接:http://m.kartarina.com/article46/hiiseg.html

成都網站建設公司_創新互聯,為您提供網站設計電子商務服務器托管軟件開發網站收錄全網營銷推廣

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司
主站蜘蛛池模板: 国产a v无码专区亚洲av| 久久人妻无码一区二区| 宅男在线国产精品无码| 永久免费AV无码网站在线观看| 日韩专区无码人妻| 色爱无码AV综合区| 五月婷婷无码观看| 久久久久久精品无码人妻| 蕾丝av无码专区在线观看| 亚洲国产a∨无码中文777| 无码中文2020字幕二区| 亚洲午夜无码久久久久| 人妻少妇精品无码专区动漫| 伊人久久综合无码成人网| 中文字幕亚洲精品无码| 日韩精品无码人成视频手机| 亚洲国产成人无码AV在线影院| 亚洲爆乳无码一区二区三区| 韩国免费a级作爱片无码| 免费无码A片一区二三区| 国产精品免费无遮挡无码永久视频| 九九在线中文字幕无码| 日韩av无码中文字幕| 中文字幕无码第1页| 无码激情做a爰片毛片AV片| 亚洲国产成人精品无码区花野真一 | 亚洲的天堂av无码| 亚洲中文字幕久久精品无码APP| 狠狠久久精品中文字幕无码 | 日韩人妻无码精品专区| 免费无码肉片在线观看| 无码人妻一区二区三区免费手机| 亚洲AV无码国产精品麻豆天美| 久99久无码精品视频免费播放| 无码av不卡一区二区三区| 亚洲av无码成人精品区在线播放 | 国产V亚洲V天堂A无码| 亚洲国产精品无码久久久久久曰| 无码人妻精品一区二区三区99不卡 | 国产精品一区二区久久精品无码| 国产午夜鲁丝片AV无码|