阅读 1653

调研: GoMobile SDK 在 iOS 与 Android 上的集成与边界

问题

在手机应用的开发中,通常会将复杂的业务逻辑层实现放在服务端,客户端仅负责表现层。但是对于某些手机应用而言,业务逻辑的实现位于服务端反而是不安全的或是不合理的,而是需要将其逻辑直接在手机端实现。

目的

面对不同系统的手机客户端,单独重复实现相同的业务逻辑,并非最佳实践。如何通过第三方语言 Go 语言将业务逻辑封装成库的形式,并以静态打包的方式提供给不同系统的手机客户端使用,是本次调研的目的。

理想目标图:

具体调研内容包括:

其中关于 gRPC 在 iOS 与 Android 的实现,本身官方就已经提供了样例。本次调研会用到相关内容,所以将其作为调研的一部分记录下来,方便后来者阅读。调研中所有涉及的项目代码均存放于: grpc-apps 仓库中, 需要的朋友可以直接下载测试。

1. 环境安装

1.1 GoMobile 工具安装

首先保证开发环境处于"全球通"状态,保证顺利安装相关依赖包与工具。

注意: GoMobile 不支持最新的 Go Module 包依赖功能,所以建议在开始本教程之前, 执行 export GO111MODULE=off 关闭 Go Module 功能。

通过以下命令直接源码安装

$: go get golang.org/x/mobile/cmd/gomobile 
$: gomobile -h
Usage:

	gomobile command [arguments]

Commands:

	bind        build a library for Android and iOS
	build       compile android APK and iOS app
	clean       remove object files and cached gomobile files
	init        build OpenAL for Android
	install     compile android APK and install on device
	version     print version
复制代码

从命令输出能够看出,gomobile 能够通过子命令build直接构建不同系统的客户端应用,还可以通过子命令bind构建支持不同系统的开发库。基于本次调研的目的,主要使用bind子命令生成相应平台的SDK。

1.2 iOS 工具安装

XCode 安装是必备的,请参考:iOS 应用实现 gRPC 调用

如果使用gomobile生成 iOS SDK,还需要安装Command Line Tools for XCode工具, 直接通过开发者账号登录苹果官网上下载.

安装完成后执行:

$: xcode-select -s /Applications/Xcode.app/
复制代码

1.3 Android 工具安装

Android Studio 安装是必备的,请参考:Android 应用实现 gRPC 调用

如果使用gomobile生成 Android SDK,还需要安装 Android NDK 环境。未安装时会报以下错误:

$: gomobile bind -target=android github.com/liujianping/golib
gomobile: no Android NDK found in $ANDROID_HOME/ndk-bundle nor in $ANDROID_NDK_HOME
复制代码

打开 Android Studio,进入Tools > Android > SDK Manager 勾选安装:

  • LLDB
  • CMAKE
  • NDK

过程有点慢,耐心等待。完成安装后,设置环境变量即可。

export ANDROID_HOME=~/Library/Android/sdk/
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle
复制代码

2. Go SDK 样例实现

在官方的GoMobile/Wiki上,安装包内就已经提供了最简单的样例代码了,可以直接使用。因为是现成的代码,缺少过程,所以这里还是从头开始创建,记录过程。

2.1 Golib 实现

阅读原文: 调研: GoMobile SDK 在 iOS 与 Android 上的集成与边界

关注下面的标签,发现更多相似文章
评论