[software development] 我把Flutter/Dart移植到了LoongArch64欢迎deepin/uos龙用户试试
Tofloor
poster avatar
罐子
Moderator
12 hours ago
Author

我做了一个 Flutter / Dart 的 LoongArch64 社区移植项目,欢迎 deepin / uos龙芯用户测试反馈。来自(vibe编程)

大家好,我最近在整理和维护一个项目:

Flutter-Dart-loong64

项目地址:

https://github.com/Flutter-Dart-loong64

这个项目主要是面向 LoongArch64 / Loong64 平台做 Flutter 和 Dart 的社区移植,目标是在龙芯 Linux 桌面系统上提供一套可用的:

  • Flutter SDK
  • Dart SDK
  • Flutter Engine
  • 相关 native tooling

简单说,就是希望在龙芯平台上,也能比较完整地跑 Flutter 桌面开发流程。

目前支持和验证的环境

目前项目主要覆盖几类环境:

新世界 LoongArch64

例如:

  • UOS 25
  • deepin 25
  • Debian 13

这类系统里,Debian 架构名通常是 loong64

旧世界 LoongArch64

例如:

  • UOS 20 类系统

这类系统常见架构名是 loongarch64

Debian 13 loong64 QEMU / 容器环境

这部分主要用于:

  • GitHub Actions
  • 本地模拟
  • 应用打包
  • 可重复 CI 验证

项目目前包含哪些内容

目前我主要维护了几部分:

  • Flutter framework/tool fork
  • Dart SDK / Dart VM fork
  • Flutter Engine fork
  • Dart native assets / FFI tooling
  • 新世界 loong64 SDK release
  • 旧世界 loongarch64 SDK release

项目并不是简单改几个脚本,而是涉及 Flutter tool、Dart VM、Engine、构建产物、target platform、native assets 等多个环节。

新世界 loong64 使用方式

新世界 LoongArch64 用户可以尝试使用这个 release 仓库里的 SDK:

https://github.com/Flutter-Dart-loong64/flutter-loong64-releases

下载 SDK 后加入 PATH,然后大致可以这样构建 Linux 桌面应用:

flutter config --enable-linux-desktop
flutter config --enable-loong64
flutter build linux --release --target-platform linux-loong64

旧世界 loongarch64 用户

旧世界 UOS 20 类系统请使用对应的旧世界 SDK:

https://github.com/Flutter-Dart-loong64/flutter-loongarch64-releases

这里特别提醒一下:

新世界 loong64 和旧世界 loongarch64 的二进制不能混用。

如果系统环境不匹配,可能会出现无法运行、动态库不兼容、ABI 不兼容等问题。

一些基于 Flutter 的应用制品

除了 SDK 本身,我也打包了几款基于 Flutter 的应用制品,主要用于验证 Flutter 在 LoongArch64 / Loong64 环境下的实际运行情况。

应用制品地址:

https://repo.odata.cc/flutter

这些应用制品可以用来做一些实际测试,比如:

  • Flutter 应用是否能正常启动;
  • Linux 桌面窗口是否正常;
  • 基础 UI 渲染是否正常;
  • 插件和 native 依赖是否能工作;
  • 打包后的产物在 deepin / UOS / Debian loong64 环境下是否可用。

这里也说明一下:这些应用制品主要是测试和验证用途,不代表对应应用官方已经支持 LoongArch64,也不代表上游项目对这些包负责。

如果大家手上有 deepin / UOS / Debian 的 LoongArch64 机器,可以帮忙试一下这些应用是否能正常运行。遇到问题也欢迎反馈,我后续可以继续整理兼容性情况。

为什么发这个帖子

我发这个帖子的目的,主要是想让 deepin / 龙芯用户、Flutter 开发者,以及对 LoongArch 桌面生态感兴趣的朋友知道:

现在已经有一个可以尝试和验证的 Flutter / Dart LoongArch64 社区移植项目。

如果你想在龙芯平台上体验 Flutter 桌面开发、移植 Flutter 应用、测试 Dart / Flutter 工具链,或者只是想看看目前能跑到什么程度,都可以试试。

也欢迎大家在 deepin、UOS、Debian loong64 环境下帮忙测试和反馈。

重要说明:这是非官方支持

这里必须明确说明:

这个项目不是 Flutter 官方支持,也不是 Dart 官方发布。

它是一个实验性的社区移植项目。

发布出来的 SDK、Engine、Dart SDK 和相关产物,主要用于 LoongArch Linux 桌面开发、测试和验证。

我打包出来的 Flutter 应用制品,也只是基于这个社区移植环境做的测试产物,不代表这些应用的官方版本已经支持 LoongArch64。

是否适合你的实际项目,需要你自己评估。

使用前请自行评估风险

可能存在的风险包括但不限于:

  1. Flutter / Dart 上游更新后,LoongArch64 移植可能需要时间同步;
  2. Dart VM、Flutter Engine、AOT / JIT、snapshot、native assets 等底层部分可能仍有架构相关问题;
  3. 第三方插件、FFI 库、native 依赖不一定都能直接工作;
  4. 新世界和旧世界 ABI 不兼容,选错 SDK 可能无法运行;
  5. 打包出来的 Flutter 应用制品主要用于测试,不代表应用官方支持;
  6. 这是社区项目,不代表官方稳定性承诺,也不保证适合生产环境。

如果只是体验、验证、移植应用、跑 demo,或者帮助测试龙芯平台上的 Flutter 桌面生态,欢迎尝试。

如果准备在正式项目里使用,建议先完整测试自己的业务场景,包括:

  • 构建
  • 运行
  • 插件
  • FFI / native 依赖
  • 打包
  • 性能
  • 稳定性

确认没有问题后,再决定是否采用。

反馈方式

项目地址:

https://github.com/Flutter-Dart-loong64

应用制品地址:

https://repo.odata.cc/flutter

如果遇到问题,欢迎提交 issue,也欢迎一起测试、改进和补充文档。

最后再强调一次:

这是非官方支持,风险自行评估。

Reply Favorite View the author
All Replies
avatar
mozixun
Moderator
12 hours ago
#1

前排 blush

Reply View the author
avatar
nihaoxye
deepin
12 hours ago
#2

膜拜大佬

Reply View the author
avatar
杀毒软件吧
deepin
6 hours ago
#3

6

前情提要:https://areweloongyet.com/project/dart

Reply View the author
avatar
罐子
Moderator
6 hours ago
#4
杀毒软件吧

6

前情提要:https://areweloongyet.com/project/dart

才看到这个,

https://github.com/HanHan666666/flutter-linglong-store

我弄这个是因为玲珑应用商店

是用flutter写的,然后花2天时间弄出来的。

drat官方只维护amd64和arm64 其他目前都不接受,riscv都是ubuntu公司和社区维护提交的。

Reply View the author