用 go 语言开发 android app

一. 下载官方源码 https://github.com/golang/mobile

git clone https://github.com/golang/mobile.git

二. 将mobile目录移动到 $gopath/golang.org/x中

mkdir -p $gopath/golang.org/x && mv mobile $gopath/golang.org/x/

三. 复制官方例子 basic 到 gopath 中

cp -a $gopath/golang.org/x/mobile/example/basic $gopath/

四. 运行编译命令

cd $gopath/src/basic
./make.bash

1. 如果出现错误

go build runtime: android/arm must be bootstrapped using make.bash

说明你还没有配置 go 的交叉编译环境,就是说你现在的系统无法编译出可以运行在 android/arm cpu 上的二进制文件 *.so

进入你的 ndk 目录并运行 make-standalone-toolchain.sh

cd ~/android-ndk && ./build/tools/make-standalone-toolchain.sh

Copying prebuilt binaries...
Copying sysroot headers and libraries...
Copying c++ runtime headers and libraries...
Creating package file: /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2
Cleaning up...
Done.

如果出现

Unable to auto-config arch from toolchain

这是说无法自动配置 toolchain,需要手动配置.先看看你的ndk支持编译哪些cpu

[email protected]:~/android-ndk$ ls toolchains/
aarch64-linux-android-4.9        mipsel-linux-android-4.8
aarch64-linux-android-clang3.4   mipsel-linux-android-4.9
aarch64-linux-android-clang3.5   mipsel-linux-android-clang3.4
arm-linux-androideabi-4.6        mipsel-linux-android-clang3.5
arm-linux-androideabi-4.8        renderscript
arm-linux-androideabi-4.9        x86-4.6
arm-linux-androideabi-clang3.4   x86-4.8
arm-linux-androideabi-clang3.5   x86-4.9
llvm-3.4                         x86_64-4.9
llvm-3.5                         x86_64-clang3.4
mips64el-linux-android-4.9       x86_64-clang3.5
mips64el-linux-android-clang3.4  x86-clang3.4
mips64el-linux-android-clang3.5  x86-clang3.5
mipsel-linux-android-4.6

编辑 make-standalone-toolchain.sh,找到并修改 TOOLCHAIN_NAME= 为

vim build/tools/make-standalone-toolchain.sh
TOOLCHAIN_NAME=arm-linux-androideabi-4.9

重新执行

./build/tools/make-standalone-toolchain.sh --platform=android-14

Copying prebuilt binaries...
Copying sysroot headers and libraries...
Copying c++ runtime headers and libraries...
Creating package file: /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2
Cleaning up...
Done.

解压 /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2 (你的可能是别的名字,上面的运行结果里有显示)并将里面的所有文件 arm-linux-androideabi-4.9/* 移动到 ndk 目录中

mv arm-linux-androideabi-4.9/* ~/android-ndk/

这时候就可以到 go/src 下配置 go 的交叉编译环境(比如我的 go 源码是放在 ~/go 中的)

注意:修改第二行命令中的 ~/android-ndk 为自己的 ndk 目录

cd ~/go/src
CC_FOR_TARGET=~/android-ndk/bin/arm-linux-androideabi-gcc GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 ./make.bash

最后出现

---
Installed Go for android/arm in /home/oldfeel/go
Installed commands in /home/oldfeel/go/bin

说明配置成功,再次执行 make.bash

cd $gopath/src/basic
./make.bash

如果出现

./make.bash: 行 16: ndk-build: 未找到命令

说明没有把 ndk 目录放入环境变量中,另外还需要配置 ANDROID_HOME=sdk.dir

vim ~/.profile

在最下面添加

export ANDROID_HOME=$HOME/android-sdk
export PATH=$PATH:$HOME/android-ndk

刷新环境变量(该刷新只对当前终端有效,若想对所有终端有效请重启电脑)

source ~/.profile

再次执行 make.bash 应该就成功了吧

cd $gopath/src/basic
./make.bash
时间: 2024-08-06 16:06:24

用 go 语言开发 android app的相关文章

用C++语言开发Android程序 配置开发环境

如果你是一个C++语言的死忠,你喜欢C++语言到了偏执的状态,如果不想学习Java语言,或者你很讨厌Java语言,如果你认为Java虚拟机的内存占用太多和执行低效.如果你过度关注Andoird程序的执行效率,对Android程序的执行速度过于敏感,喜欢自己用手动档来控制程序的内存和线程等资源,如果你在其他平台下用C++语言开发了一个程序,想要移植到Android平台下,本教程就是为了满足你的以上诸多怪癖而发布的,本文的目的就是指导你学习如何只用C++语言来开发Android程序,而不使用任何其他

Android基础入门教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP

Android基础入门教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础入门教程 1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新版本的 ADT Bundle供大家下载! 2.直接使用打包好的Eclipse 32位版:adt-bundle-windows-x86-20140

高效开发Android App的10个建议

假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等影响产品效率的每一个问题都会影响App的成功.这就是为什么在开发中确保最优化.运行流畅而且不会使Android系统出问题是至关重要的了.这里不需要讨论高效编程,因为我们不会关心你写的代码是否能够经得起测试.即使高效的代码也是需要时间来运行.今天这篇文章我们就讲讲怎么尽可能地缩短运行时间,以及如何开发

Android基础新手教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP

Android基础新手教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础新手教程 1.前言 这里我们有两条路能够选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 由于谷歌已经放弃了ADT的更新,官网上也取消的下载链接.这里提供谷歌放弃更新前最新版本号的 ADT Bundle供大家下载! 2.直接使用打包好的Eclipse 32位版:adt-bundle-windows-x86-2014

Android基础入门教程——1.2.2 使用Android Studio开发Android APP

Android基础入门教程--1.2.2 使用Android Studio开发Android APP 标签(): Android基础入门教程 写在前面 本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse + ADT + SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快捷键,小技巧等会再另一篇文章中详细地介绍! 1.下载Android Studio 官网下载:Android Studio for Window - 百度云下

【用tcl/tk语言开发android应用】

用tcl/tk语言开发android应用 tcl/tk 的跨平台能力如其官方说的一样:"native applications that run unchanged across Windows, Mac OS X, Linux and more" 除了前面提到的,还有BSD.UINX,PocketPc都支持,现在又有个项目,据说要在android ARM上运行tcl/tk,我试了一下可以在手机上运行tcl/tk源代码,能做出各类界面部件,能访问移动设备的gps(好像底层访问,反正我小

组件化封装开发Android App实战

详情请交流  QQ  709639943 01.组件化封装开发Android App实战 02.Kotlin系统入门与进阶 03.Node.js入门到企业Web开发中的应用 04.精通高级RxJava 2响应式编程思想 05.Java秒杀系统方案优化 高性能高并发实战 06.Java深入微服务原理改造房产销售平台 07.快速上手Linux 玩转典型应用 08.快速上手Ionic3 多平台开发企业级问答社区 09.Java Spring Security开发安全的REST服务 10.深入Java虚

开发Android app必备知识大分享

开发一个完整的android app需要掌握哪些知识?现在让麦子学院的android开发的老师给大家详细的介绍下android app开发需要哪些知识?大体来说,一个app从规划到终究完结需求你懂得以下几个必要方面: 1.前期需求计划与信息--你需求拟定出一个完好的需求文档,功用文档,流程图,时序图. 2.交互规划.UI规划--规划出基本且完善的原型图和app根底的交互规划作用,以后再依据这些规划出完好的UI界面并学会切图,一些需求做自适应的素材图像需求做点9patch. 这儿还需求你懂得px,

带领新手快速开发Android App开发视频课程 安卓快速入门教程

第1章 课程介绍与项目准备如果你从事Android开发,那你一定要学习一些开发技巧和掌握一些开发逻辑,而很不巧,我这里全部都有,最开始我们介绍一下我们这个应用的整体组织架构,通过对各个平台的api进行一个简单的分析,以及说明一下我们的RxVolley的网络框架使用教程,在本章中,我们将分析整个项目的大致架构,同时,我们有规范性的部署我们的项目... 第2章 工具类封装与首页引导页开发项目最讲究的前期架构搭建,我们把标准的Log和SharedPreferences进行封装,同时开发我们的首页和引导