go及gomobile的環(huán)境配置這里就不介紹了,直接說aar的生成和使用。
成都創(chuàng)新互聯(lián)公司專注于博野企業(yè)網(wǎng)站建設(shè),自適應網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。博野網(wǎng)站建設(shè)公司,為博野等地區(qū)提供建站服務。全流程按需網(wǎng)站建設(shè),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
1. 設(shè)置環(huán)境變量GOPATH
GOPATH的值可以有多個,用半角分號間隔,但不能以其結(jié)束,設(shè)置完成后需要重新做 gomobile init 。
2. 在GOPATH里創(chuàng)建src文件夾,用于存放go的包和源文件
3. 在src中創(chuàng)建hello文件夾(go文件的包名)
4. 在hello中創(chuàng)建hello.go文件,并輸入內(nèi)容
5. 編譯
執(zhí)行命令: gomobile bind -target=android hello
會生成一個hello.aar文件
6. 導入到android工程
將hello.aar文件放入工程的libs中,并配置build.gradle
在根結(jié)點加入:
在dependencies結(jié)點下加入依賴:
7. 在Java中測試
運行后,結(jié)果會輸出 Hello, Android and Gopher
之前寫過了Grpc服務開發(fā)和接口測試初探【Java】,中間耽擱了一些時間,Go版本的gRPC測試開發(fā)實踐才有時間學習使用。其中也是由于自己Go語言不夠熟悉導致的。之前有段時間想暫時放棄Go語言的學習,導致了Go的生疏,原因是從Groovy到Java性能。
回歸正題,Go語言版本的gRPC實踐相對Java來說是比較簡單的,但是總體的工具鏈是比較復雜的,可能是因為Go生態(tài)目前相比Java還是比較匱乏吧。下面我先簡述一下大致的步驟:
以上步驟親自操作可能會遇到一些小問題,我本人搜到的教程什么的也是亂七八糟,踩了一些坑。我沒有整理出一個親自實踐之后的可行的教程,原因有二:
Go語言的gRPC的 proto 編寫跟Java大致一致,只有一個報名的參數(shù)不太一樣。下面是我的 Hello.proto 內(nèi)容:
這里主要 go_package 網(wǎng)上搜到的配置方式有些不一樣,我沒有全都嘗試,大家在搜索的資料時候,盡量先看看 syntax 這個參數(shù)的值,以及文章教程寫作的時間,如果距離現(xiàn)在太久了,我建議直接關(guān)掉。搜索引擎有過濾功能,可以過濾掉過時的教程。
這里Go語言gRPC的一點優(yōu)勢,就是在一個項目中即可實現(xiàn),Java需要先弄一個SDK這樣。Go語言的gRPC的代碼可以通過生成代碼命令中的參數(shù)實現(xiàn)指定路徑。我是放在了和 proto 文件的同級目錄。
服務端代碼也是比較格式化的內(nèi)容,如下:
其中 pb.RegisterHelloServiceServer(s, Ser{}) 如果報錯,請檢查自己安裝的工具 protoc-gen-go 或者 protoc-gen-gofast 版本,一般提取報錯 message 搜索也能得到解決辦法。
下面是客戶端的代碼,由于學藝不精,其中大部分參數(shù)的含義目前我也不是很清楚,特別是基于 stream 的請求響應的方式使用。后面我先把Java的學完,再回過頭來看Go的,按照這個順序?qū)W習和分享。
服務端輸出:
忘記打日志了。沒有輸出
客戶端輸出:
Go語言的gRPC測試開發(fā)實踐已經(jīng)完事兒,大概率上我不會在工作中使用Go作為主力gRPC測試語言,后面測試實踐內(nèi)容還是會以Java為主。
在正常的測試中,當我們需要進行接口測試時,通常使用接口調(diào)試工具,如postman進行接口測試
目前我在嘗試使用Go語言進行接口測試,使用的庫均為Go自帶的庫。
注:當前采用的接口為時事新聞接口,每天可以請求100次,需要的同學,可以自行使用。