flutter嵌入式arm64 linux
flutter开发arm64嵌入式linux程序
·
文章目录
概要
flutter目前已经支持了android、ios、windows、macOS、web、linux,知识官方目前还不支持嵌入式linux,本文将针对arm64架构的嵌入式linux系统的flutter程序的研发过程进行一些记录,目前已经可以正常运行
环境安装
- 首先,请详细参阅https://github.com/sony/flutter-elinux;
- 下载VMWare,下载Ubuntu系统镜像,安装linux虚拟机(尽量使用windows系统安装虚拟机,mac系统安装虚拟机运行速率不是一般的慢);
- 启动虚拟机,安装vscode;
- 打开命令行工具执行如下命令安装flutter-elinux
$ git clone https://github.com/sony/flutter-elinux.git
$ sudo mv flutter-elinux /opt/
$ export PATH=$PATH:/opt/flutter-elinux/bin
- 安装一些必要工具
$ sudo apt install unzip curl clang cmake pkg-config
创建flutter项目
使用命令直接创建项目:
flutter-elinux create sample
创建出来项目以后,用vscode打开项目,直接运行linux版本,确保没问题。
交叉编译
如果想要让linux程序在arm64架构上的机器上运行,需要对程序进行交叉编译,首先请详细阅读building flutter elinux apps,交叉编译步骤(需要科学上网),这里使用wiki中提供的case3方法,因为有嵌入式板子以后,就能拿到buildroot目录;
- 在嵌入式板子中寻找buildroot目录,将此目录拷贝到第一步安装的linux虚拟机中,最好放到用户目录下;
- 安装必要工具:
sudo apt install clang
sudo apt install wayland-protocols libwayland-bin # host tools needed to build wayland backend
export PATH=$PATH:~/buildroot/output/host/bin # add aarch64-buildroot-linux-gnu-ld to PATH
- 使用如下命令进行交叉编译
注意:如下命令中使用的buildroot目录地址要用绝对地址,如:/home/root1/buildroot/output/host, 如命令中使用~这种相对地址编译会有问题
flutter-elinux build elinux --target-arch=arm64
--target-compiler-triple=aarch64-buildroot-linux-gnu
--target-sysroot=~/buildroot/output/staging
--target-compiler-flags=--gcc-toolchain=~/buildroot/output/host
运行
编译成功以后,在/项目路径 /build/elinux/arm64/release/bundle 目录下能找到如下程序:
将这个目录下的data文件夹、lib文件夹、flutter_project_getx(可执行程序,项目名称同名)拷贝到嵌入式linux系统下任意目录。运行如下命令执行:
./flutter_project_getx --bundle=./
注意如上命令flutter_project_getx是打包出来的可执行文件,--bundle参数是必须的,否则执行报错
希望能贡献一点点力量,如果有写的不太详细的地方,请留言详解,包括如何连接嵌入式板子,进行文件的快速拷贝,和真机调试后期会有更新。
真机调试已经更新:Flutter开发嵌入式Linux真机调试
更多推荐

所有评论(0)