想一个好点的标题
事情是这样的: 一次Android项目开发过程中,要用到数据的加密解密,因为数据运算量比较大,所以需要用到native进行开发,但是又极不情愿去写C/C++那种既耽误时间又不好调试的语言,所以想方设法的寻找替代方案,正好最近在用Golang,寻思着,Golang不是号称速度接近C++又能快速开发的吗,所以琢磨着能不能用Golang来写Android的native部分,然后就有了一系列的踩坑过程 (这坑我踩了,剩下的你看着办吧)
想不到好标题怎么办啊
既然是用Golang开发,当然就需要用到Golang的开发环境,至于怎么搭建,你自己去找吧 (烂大街的玩意)
大致列一下需要用到的环境和SDK:
Golang SDK 1.8+
Android SDK
Android NDK
Android Studio
想个标题真麻烦
开搞
首先是写一份Golang的源码,打个比方说 hello.go
package main
import "C"
//export SayHello
func SayHello(name *C.char) *C.char{
return C.CString("Hello : " + name)
}
//export Sum
func Sum(a int, n int) int {
return a + n
}
func main(){
// 这个主方法一定要写,不然不给编译
}
是不是觉得一脸懵逼,那么有必要解释一下
import "C" 这个是要告诉CGO