Golang开发手机应用有两种方式简介

news/2024/7/20 20:21:00 标签: golang, android, ios

简言

使用Go语言开发Android&IOS应用,主要有两种方式,一种是基于原生应用开发,另一种是混合绑定开发。

前置条件

  1. 下载安装Go语言(版本1.5+)https://www.golang.org/

  2. 下载安装 gomobile

     下载 $ go get golang.org/x/mobile/cmd/gomobile
     
     安装(需要等待几分钟) gomobile init
    

原生应用开发方式

$ go get -d golang.org/x/mobile/example/basic

主要应用领域:

  • 应用控制管理与配置
  • OpenGL ES 2 绑定
  • Asset 管理
  • Event 管理
  • 试验中的包,含有OpenAL 绑定、音频、字体、图形以及运动传感器

Android开发

  • $ gomobile build -target=android golang.org/x/mobile/example/basic
    此命令会生成名为basic的apk安装包
  • $ gomobile install golang.org/x/mobile/example/basic 此命令将安装apk包到已连接的android设备

IOS开发

  • $ gomobile build -target=ios golang.org/x/mobile/example/basic 此命令会生成名为basic的app安装包

  • 下载IOS安装包命令行工具 - ios-deploy $ ios-deploy -b basic.app 此命令将安装app文件到已开启的IOS模拟器或者已连接的IOS设备

混合绑定开发

$ go get -d golang.org/x/mobile/example/bind/...

优势

  • Go code复用
    在Android和IOS开发中共享通用的Go代码通过调用绑定的Golang包名
    限制
  • 当前仅支持的一些Go类型
    语言之间的绑定会有性能开销

Android开发

  • 开启Android studio,导入Project,选择路径$GOPATH/src/golang.org/x/mobile/example/bind/android
    在这里插入图片描述

  • 修改配置文件hello/build.gradle
    在这里插入图片描述

  • 最后 Build & Run

备用选项:

$ gomobile bind -target=android golang.org/x/mobile/example/bind/hello

*此命令会在hello/路径下生成aar文件*,用户可以直接在Android Studio内导入

IOS开发

$ cd $GOPATH/src/golang.org/x/mobile/example/bind $ gomobile bind -target=ios golang.org/x/mobile/example/bind/hello

此命令在ios/路径下生成bind.xcodeprojxcode项目以及 在bind/目录下生成一个 hello.framework

  • 打开xcode项目 $ open ios/bind.xcodeproj
    在这里插入图片描述
  • 拖拽hello.framework文件到xcode项目内
    在这里插入图片描述
  • 最后 Build & Run
    在这里插入图片描述

http://www.niftyadmin.cn/n/1821399.html

相关文章

【Java多线程】线程池学习

Java线程池学习 众所周知,Java不仅提供了线程,也提供了线程池库给我们使用,那么今天来学学线程池的具体使用以及线程池基本实现原理分析。 ThreadPoolExecutor ThreadPoolExecutor的构造方法: public ThreadPoolExecutor(int core…

最全的机器学习模型训练全流程

简言 发现一个很有趣的开源项目,作者用手绘图的方式讲解了机器学习模型构建的全流程,逻辑清晰、生动形象。想给大家分享一下。 项目地址:https://github.com/dataprofessor/infographic 全文如下: 感觉学习数据科学枯燥无味,那…

python脚本实现压力测试

import base64 import os import urllib import numpy as np import requests, time, json, threading, random class Presstest(object): “”" 并发压力测试 “”" def __init__(self, press_url):self.press_url press_urldef test_interface(self):压测接口gl…

常用开源框架中设计模式使用分析

一、前言 说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者可以简化代码,或者可以是代码逻辑开起来清晰,或者对功能扩展…

快速上手JMeter 压力测试

前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤&…

java web项目中访问src资源文件

在普通的web项目中我们可以这样去访问src文件 import org.springframework.util.ResourceUtils; File file ResourceUtils.getFile("classpath:test.txt"); 但是在web项目打包成jar文件之后 我们就不能用这种方法去访问jar文件了 原因是 我们访问的时候是访问的绝对路…

19- OpenCV+TensorFlow 入门人工智能图像处理-刷脸识别实现

章节介绍 实现一个刷脸识别 输入一张图片,找到图片中的人脸,识别这个是哪一个人。 案例代码简单 人工网络层级低。 隐层只有一层。 综合: 样本收集 图像预处理 TensorFlow神经网络 python爬虫opencv预处理TensorFlow神经网络 CNN每个item都有code&…

常用编程语言介绍及各语言特点

1.c语言 c语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛&#xff…