Go语言通过JNI调用java的方法
最近有一个问题,是在golang作为底层,想获取apk的版本号和版本号代码(通俗一点就是versionName和versionCode),如果这时java代码,可以很容易地通过
|
|
来获取,但是,如果你的主要程序都是go语言来写,需要在go语言中获取apk的版本号怎么处理呢?
……清風有情君意愜, 夢徊怡江詩心緣。~
最近有一个问题,是在golang作为底层,想获取apk的版本号和版本号代码(通俗一点就是versionName和versionCode),如果这时java代码,可以很容易地通过
|
|
来获取,但是,如果你的主要程序都是go语言来写,需要在go语言中获取apk的版本号怎么处理呢?
……研究的这个最主要原因是arm平台无法使用delve
工具无法在arm平台上使用,而现实中你的程序不可能没有bug,这时候查起问题来没有debug就太痛苦了~
现实情况是你所开发的程序有可能被意外地多次拉起,而使用文件锁的排他锁功能可以解决这个问题。
文件锁有几个好处:
使用起来也很简单,只需要指定一个lock文件,然后使用syscall.Flock()
去上锁和解锁即可。
govendor
govendor是go语言依赖管理工具,推荐使用 https://github.com/kardianos/govendor 这个版本。
|
|
第一次初始化的时候,只需要govendor init
命令行执行一下就可以了。
……它的使用起来就像nodejs的
yarn
或npm
包管理工具一样简单!
先来讲一下使用Go语言开发Android和iOS底层代码的好处:
libgojni.so
或<PKG>.framework
本文章介绍的内容:
android
和ios
GO语言代码错误表象
|
|
最新的解决方法:
……你还在寻找类似于像C语言的#if defined
条件编译吗?
你的Go程序运行于多个平台上(如Linux和Windows),相同功能有着不同的实现,你知道怎么处理吗?
你的Go程序运行于多代产品上(如一代盒子,二代盒子),相同功能有着不同的实现,你知道怎么解决吗?
阅读本文章,对于解决以上的疑惑,一定有所帮助。
……写一个编译脚本go-mips-build.sh
:
|
|