Using Golang + Gomobile To Build Android Application (with code) Building Your Simple Android Application Integrating Go and Android Using Go Functions in Your Android Application Building and Testing Your Application

2025-06-07

使用 Golang + Gomobile 构建 Android 应用程序(附代码)

构建简单的 Android 应用程序

集成 Go 和 Android

在 Android 应用程序中使用 Go 函数

构建和测试您的应用程序

阅读完以下文章后,我想对 Go 进行更深入的研究:


无论您对开发计算器还是笔记应用程序感兴趣,本教程都将帮助您使用 Go 创建一个简单的 Android 应用程序。

假设我们的读者对 Go 有基本的了解,我们可以直接深入研究如何利用这种强大的语言进行移动应用程序开发,特别是针对 Android 平台。

部署工具

为了简化 Android 应用程序开发流程,我们将采用一套工具,每种工具在我们的开发过程中都有特定的用途。

  1. 去:

    • 一种静态类型的编译编程语言,因其简单性、高效性和对并发编程的强大支持而备受赞誉。
    • 在包括移动应用程序开发在内的各种项目中迅速获得关注。
  2. Gomobile:

    • 一套强大的工具集,有助于使用 Go 创建移动应用程序。
    • 提供编写更高效、更有弹性的代码的机会,特别是在移动环境中利用 Go 的速度和简单性时。
  3. Android SDK:

    • 提供构建、测试和调试 Android 应用程序所需的基本 API 库和开发人员工具。
  4. Go 模块:

    • 在 Go 1.11 中引入,作为 Go 中依赖管理的标准。
    • 提供增强的版本跟踪和包分发功能。
  5. Android Studio:

    • Android 开发的官方集成开发环境 (IDE)。
    • 用于创建用户界面和实现由 gomobile 生成的 Java 绑定。

通过遵循本指南,您将对 Go 移动开发有基本的了解,并获得实用技能,这些技能将在您作为使用 Go 和 gomobile 的移动开发人员的旅程中大有裨益。

先决条件

在开始这项工作之前,必须完成一些准备步骤。确保 Go 和 gomobile 的正确设置以及验证 Android SDK 的设置是实现无缝 Go 移动开发体验的关键先决条件。

验证 Go 和 Gomobile 的设置是否正确

  1. 确保 Go 安装:

    • 在终端中执行以下命令:
     go version
    
  • 验证是否显示已安装的 Go 版本。
  1. 安装Gomobile:

    • 使用以下命令安装:
     $ go install golang.org/x/mobile/cmd/gomobile@latest
    
  • 使用以下命令初始化 gomobile:

     gomobile init
    
  • 注意:初始化可能需要一些时间,因为它会编译移动平台的标准库。

Android SDK 设置的验证

  1. 确认 Android Studio 安装:

    • 确保安装了 Android Studio,包括必要的 Android SDK。
    • 如果尚未安装,请从官方 Android 开发者网站下载。
  2. 验证 SDK 工具:

    • 确认 Android SDK Build-Tools、SDK Platform-Tools 和 SDK Tools 都是最新的。
    • 导航到 Android Studio 中的 SDK 管理器来检查已安装的软件包。
    • 在 SDK 管理器顶部验证 Android SDK 位置。

满足这些先决条件后,您就可以放心地进行 Go 移动开发了,因为您知道您的工具已正确配置,可以使用 Go 和 gomobile 构建 Android 应用程序。在接下来的章节中,我们将深入探讨项目设置、探索 gomobile 工具集等。敬请期待!

项目初始化

确认 Go、gomobile 和 Android SDK 设置完成后,就可以开始用 Go 构建 Android 应用程序了。第一步是设置项目,包括创建新的 Go 模块和构建基本的 Go 包。

创建新的 Go 模块

在 Go 中,模块表示存储在文件树中的 Go 包的集合,其根目录是 go.mod 文件。go.mod 文件定义了模块的模块路径(作为其导入路径前缀),并概述了其依赖关系要求。

要创建新的 Go 模块,请导航到您的工作区并通过执行以下操作来启动新模块:

go mod init <module-name>
Enter fullscreen mode Exit fullscreen mode

替换<module-name>为您想要的模块名称。例如,如果开发一个计算器应用程序,模块可能名为“calculator”。命令将类似于:

go mod init calculator
Enter fullscreen mode Exit fullscreen mode

此命令在您的项目目录中生成一个 go.mod 文件,作为您逐步添加的所有依赖项的存储库。

创建基本 Go 包

一旦我们的 Go 模块初始化完毕,Go 移动开发的下一步就是创建一个基本的 Go 包。在 Go 中,包是同一目录中一起编译的源文件的集合。

  1. 创建新的包目录:

    • 为您的包生成一个新目录。
    • 创建一个新的.go文件,例如main.go。
  2. 基本 Go 包示例:

   package main
   import "fmt"

   func Hello() string {
       return "Hello, World!"
   }

   func main() {
       fmt.Println(Hello())
   }
Enter fullscreen mode Exit fullscreen mode
  • 此代码片段说明了一个简单的 Go 包,其中的 Hello 函数返回“Hello, World!”字符串。

按照以下步骤,您将创建一个 Go 模块和一个基础的 Go 包,作为使用 Go 和 gomobile 构建 Android 应用程序的起点。后续部分将探索 gomobile 工具集,并开始构建我们的 Android 应用程序。

了解 Gomobile 工具集

使用 Go 构建 Android 应用程序的关键方面之一是理解 gomobile 工具集。随着 Go 移动开发的不断深入,深入了解 gomobile 工具集在 Android 应用开发中的作用并掌握 gomobile bind 变得至关重要。

Gomobile 在 Android 应用开发中的作用

gomobile 工具集包含一系列强大的工具,可简化 Go 移动应用的开发。它充当 Go 编程语言与移动环境之间的桥梁,使开发者能够在 Android 应用中充分发挥 Go 的简洁性和高效性。

gomobile 的一个核心特性是它能够创建通过绑定调用 Go 代码的移动应用。这些绑定提供了一种在 Android 和 iOS 环境中使用 Go 函数的方法,从而将 Go 的影响力扩展到了它广为人知的后端服务器端开发领域之外。

此外,gomobile 还支持生成语言绑定,允许在 Android 系统中从 Java 调用 Go 包。此功能至关重要,它使开发者能够将 Go 的高性能和简洁性无缝地融入到他们的 Android 应用程序中。

使用 Gomobile Bind

在 gomobile 工具集提供的各种命令中,gomobile bind 尤为重要,该命令用于生成 Go 包在 Java 中调用的语言绑定。

例如,使用前面部分中的 Hello 函数:

package main
import "fmt"

func Hello() string {
    return "Hello, World!"
}
Enter fullscreen mode Exit fullscreen mode

要生成 Java 绑定,请导航到包目录并运行:

gomobile bind -target=android
Enter fullscreen mode Exit fullscreen mode

此命令会生成一个 .aar 文件,即 Android 库项目的二进制发行版。该文件包含 Java 类、清单以及编译后的 Go 代码,并以原生 .so 库的形式呈现。集成到 Android Studio 项目中后,即可使用 Java 调用 Go 函数。

了解 gomobile bind 的用法是 Go 移动开发的基础,也是使用 Go 和 gomobile 构建 Android 应用程序的关键。接下来,我们将探索如何将这些 Java 绑定集成到我们的 Android 应用程序中,充分利用我们创建的 Go 包。

构建简单的 Android 应用程序

在了解了 gomobile 工具集之后,我们开始使用 Go 开发 Android 应用程序。本节介绍应用程序界面的设计和用 Go 实现应用程序逻辑的方法。

设计应用程序界面

设计应用界面是打造 Android 应用的第一步。为简单起见,本指南使用 Android Studio 的布局编辑器来设计界面。

  1. 打开 Android Studio:

    • 启动一个新的 Android Studio 项目,选择 Empty Activity 作为模板。
    • 在布局编辑器中,拖放 UI 元素来设计界面。
  2. 定制:

    • 在属性面板中自定义 UI 元素的属性。
    • 为每个元素分配 ID,以便在代码中进行交互。
  3. 计算器应用程序示例:

    • 对于计算器,使用 TextView 进行显示,使用 Buttons 进行数字和操作。

使用 Go 实现应用程序逻辑

设计好界面后,我们开始深入 Go 移动开发,用 Go 实现应用逻辑。以开发一个简单的计算器为例。

  1. 定义计算器逻辑的 Go 包:
   package calculator

   func Add(x, y float64) float64 {
       return x + y
   }

   func Subtract(x, y float64) float64 {
       return x - y
   }

   func Multiply(x, y float64) float64 {
       return x * y
   }

   func Divide(x, y float64) float64 {
       if y != 0 {
           return x / y
       }
       return 0
   }
Enter fullscreen mode Exit fullscreen mode
  • 此包中定义了加法、减法、乘法和除法函数,处理潜在的除以零的错误。
  1. 生成 Java 绑定:
    • 运行gomobile bind -target=android以生成 Go 包的 Java 绑定。

这个阶段融合了创造力和逻辑,为我们简单的 Android 应用程序赋予了生命。在接下来的部分中,我们将把 Go 逻辑与我们的 Android 应用程序集成,完成最终步骤,使我们的应用程序最终落地。

集成 Go 和 Android

随着我们用 Go 构建 Android 应用的不断深入,我们已经用 Go 设计了界面并实现了应用逻辑。下一步是将 Go 代码与我们的 Android 应用集成,利用 gomobile 生成 Java 绑定,并将 Go 函数合并到我们的 Android 代码中。

使用 Gomobile 生成 Java 绑定

如前所述,gomobile bind 是为我们的 Go 包生成 Java 绑定的关键命令。此过程允许在我们的 Android Java 代码中直接调用 Go 函数。

  1. 导航到包目录:

    • 运行以下命令:
     gomobile bind -target=android -o calculator.aar
    
  • 这将创建一个 Calculator.aar 文件,其中包括编译的 Go 代码和 Java 绑定。
  1. 添加到 Android Studio 项目:
    • 在 Android Studio 中,转到文件 > 新建 > 新建模块。
    • 选择导入 .JAR/.AAR 包并找到 .aar 文件。
    • 完成将您的 Go 包包含在 Android Studio 项目中的过程。

现在,您的 Go 包已成为 Android Studio 项目的一部分,可以随时在 Android 代码中使用。

在 Android 应用程序中使用 Go 函数

Go 函数集成

现在,Go 包已成功添加到我们的 Android 项目中,我们可以将 Go 函数无缝地合并到我们的 Android 应用程序中。打开 Android 项目的主活动文件并导入 Go 包:

import calculator.*;
Enter fullscreen mode Exit fullscreen mode

随后,您可以像调用任何其他 Java 函数一样调用 Go 函数。例如,在计算器应用程序中,按下“+”按钮时调用 Add 函数可以按如下方式实现:

Button addButton = findViewById(R.id.add_button);
addButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Retrieve numbers from the input fields
        EditText firstNumber = findViewById(R.id.first_number);
        EditText secondNumber = findViewById(R.id.second_number);
        // Convert the numbers to double
        double x = Double.parseDouble(firstNumber.getText().toString());
        double y = Double.parseDouble(secondNumber.getText().toString());
        // Call the Add function from our Go package
        double result = Calculator.Add(x, y);
        // Display the result
        TextView resultTextView = findViewById(R.id.result);
        resultTextView.setText(String.valueOf(result));
    }
});
Enter fullscreen mode Exit fullscreen mode

本节是 Go 移动开发的关键,有助于 Go 与 Android 的无缝集成。随着您使用 Go 和 gomobile 构建 Android 应用程序的不断深入,Go 的强大功能将逐渐显现其宝贵的价值。在接下来的部分中,我们将深入探讨测试和调试,为应用程序的隆重亮相画上圆满句号!

构建和测试您的应用程序

开发的最后步骤

随着 Go 代码集成到 Android 应用程序中,我们即将进入使用 Go 构建 Android 应用程序的最后阶段。后续步骤包括构建和测试应用程序,以确保其性能和正确性。

构建您的 Android 应用程序

在 Android Studio 中构建 Android 应用程序非常简单。导航至“Build”>“Make Project”,或使用键盘快捷键 Ctrl+F9。

此操作将编译您的代码并生成适合在 Android 设备上安装的 APK(Android 软件包套件)。Android Studio 界面底部的“构建”窗口将显示构建输出。“构建成功”消息将指示构建成功。

对于应用分发,请考虑生成已签名的 APK 或已签名的 App Bundle。请依次点击“构建”>“生成已签名的 App Bundle/APK”,然后按照提示操作。

运行和测试您的应用程序

您可以在实体 Android 设备或模拟器上运行 Android 应用。点击工具栏中的绿色箭头,或导航至“运行”>“运行‘应用’”。

如果您的电脑已连接 Android 实体设备并启用 USB 调试,该设备将显示在“选择部署目标”窗口中。或者,您也可以选择“创建新虚拟设备...”并按照提示操作,创建一个新的虚拟设备。

彻底测试您的应用程序,确保涵盖所有功能和极端情况。对于计算器应用,请测试不同数字的各种运算,包括除以零之类的极端情况。

测试是 Go 移动开发不可或缺的一部分。投入时间进行全面的测试,确保用户体验流畅愉悦。

恭喜!您已成功使用 Go 和 gomobile 构建了一款 Android 应用。掌握了这些技能和工具,您现在可以着手更雄心勃勃的项目,并将您的创新想法付诸实践。

结论

我们使用 Go 和 gomobile 构建 Android 应用程序的历程意义非凡。让我们回顾一下这些成就,并展望 Go 移动开发的未来。

  1. Go 和 Gomobile 的设置:

    • 确保正确设置 Go 和 gomobile(使用 Go 进行 Android 应用程序开发的基础工具)。
  2. Go 模块和包的创建:

    • 启动了一个新的 Go 模块并构建了一个基本的 Go 包,利用 Go 在移动应用程序开发中的简单性和高效性。
  3. 了解 Gomobile 工具集:

    • 探索了gomobile工具集在Android应用开发中的作用,掌握了使用gomobile bind生成语言绑定的方法。
  4. Android应用程序开发:

    • 使用 Go 设计应用程序界面并实现应用程序逻辑,这是 Go 和 Android 的关键集成点。
  5. 构建、运行和测试:

    • 成功构建并测试了 Android 应用程序,确保了其功能和性能。

与此类似,我在 Slack 上运营着一个以开发者为中心的社区。我们在这里讨论各种主题,包括实现、集成、一些爆料、疯狂的聊天、虚拟聚会,以及所有能帮助开发者保持理智的事情 ;) 毕竟,知识过量也可能很危险。

我诚邀您加入我们的免费社区,参与讨论,分享您的精彩经验和专业知识。您可以填写此表格,几天后您的 Slack 邀请函就会发送到您的邮箱。我们拥有来自一些优秀公司(Atlassian、Gong、Scaler 等)的优秀人才,您一定不想错过与他们互动的机会。邀请表格

文章来源:https://dev.to/nikl/using-golang-gomobile-to-build-android-application-with-code-18jo
PREV
我不知道的事情的最终清单
NEXT
你可能不知道的 Chrome 开发者工具实用技巧和提示