1 Star 0 Fork 0

dazuo0312/flutter-embedded-linux

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

Embedded Linux (eLinux) embedding for Flutter

image

build-test

This project was created to develop non-official embedded Linux embeddings of Flutter. This embedder is focusing on embedded Linux system use cases. It is also implemented based on Flutter desktop for Windows and has some unique features to use it in embedded systems.

flutter-elinux

Note that this project is the source code of the embedder. If you develop your flutter app for eLinux, use flutter-elinux, which is a non-official extension to the Flutter SDK to build and debug Flutter apps for embedded Linux devices.

Objective & Goal

Our objective is to use Flutter in embedded systems. We're developing this embedder to use Flutter in embedded products. Ultimately we would like to propose and contribute this software to the mainline of Flutter Engine, which means we would like to add an embedded systems version into the Flutter repo for all embedded developers. Please note that this is just our ideal, not the official opinion of the Flutter community.

We would be grateful if you could give us feedback on bugs and new feature requests. We would like to cover the specifications of general-purpose embedded systems.

Features

  • Flutter embedder optimized for Embedded Systems
    • Lightweight than Flutter desktop for Linux (Not using X11 and GTK)
    • Minimal dependent libraries
    • The main target of this embedder is Arm64 devices. We haven't confirmed in Arm 32bit (ARMv7, armhf) devices
  • Display backend support
  • Always single window fullscreen
    • You can choose always-fullscreen or flexible-screen (any size) only when using Wayland/X11 backend
  • Keyboard, mouse and touch inputs support
  • Equivalent quality to Flutter desktops
  • API compatibility with Flutter desktop for Windows and GLFW
    • APIs such as MethodChannel and EventChannel are completely the same with them

Companion repos

Repo Purpose
flutter-elinux Flutter tools for eLinux
flutter-elinux-plugins Flutter plugins for eLinux
meta-flutter Yocto recipes of eLinux embedding for Flutter

Documentation

Documentation for this software can be found at Wiki.

Supported platforms

This embedder supports x64 and Arm64 (aarch64, ARMv8) architectures on Linux which supports either Wayland backend or DRM backend.

Tested devices

Board / SoC Vendor OS / BSP Backend Status
Jetson Nano NVIDIA JetPack 4.3 Wayland
Jetson Nano NVIDIA JetPack 4.3 DRM (#1)
Raspberry Pi 4 Model B Raspberry Pi Foundation Ubuntu 20.10 Wayland
Raspberry Pi 4 Model B Raspberry Pi Foundation Ubuntu 20.10 DRM (#9)
i.MX 8MQuad EVK NXP Sumo (kernel 4.14.98) Wayland
i.MX 8M Mini EVKB NXP Zeus (kernel 5.4.70) Wayland
RB5 Development Kit Qualcomm Ubuntu 18.04.05 DRM
Zynq Xilinx - - Not tested
Desktop (x86_64) Intel Ubuntu 20.04 Wayland
Desktop (x86_64) Intel Ubuntu 20.04 DRM
Desktop (x86_64) Intel Ubuntu 20.04 X11
QEMU (x86_64) QEMU AGL (Automotive Grade Linux) koi Wayland
QEMU (x86_64) QEMU AGL (Automotive Grade Linux) koi DRM

Note

  • i.MX 8M platforms don't support applications using EGL on GBM, which means the DRM-GBM backend won't work on i.MX 8M devices.

Tested Wayland compositors

Weston Sway Wayfire Gnome Phosh
Cage Lomiri Plasma Wayland Plasma Mobile GlacierUX

Contributing

Now, we cannot accept any Pull Request (PR). Because We are building a system (e.g. CLA) to accept PRs, so please wait for a while the system is getting ready! However, we are always welcome to report bugs and request new features by creating issues.

With the assumption, our final goal of this software openly is to be merged this embedder into Flutter Engine after getting feedbacks. And Google CLA will be required when we do that in the future. Therefore, we cannot easily accept an external PR. However, you can free to create issues for reporting bugs and requesting new features.

See also: Contributing to the Flutter engine

Copyright 2013 The Flutter Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Flutter Authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

暂无描述 展开 收起
README
BSD-3-Clause
取消

发行版 (1)

全部
3年前

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dazuo0312/flutter-embedded-linux.git
git@gitee.com:dazuo0312/flutter-embedded-linux.git
dazuo0312
flutter-embedded-linux
flutter-embedded-linux
master

搜索帮助