LINUX.ORG.RU

Переупаковать Flutter-приложение под Windows для исполнения в отдельностоящей DartVM под Linux

 ,


0

1

Есть такое приложение: https://apps.microsoft.com/detail/9mt1wqp4j4t9

Судя по листингу каталога, оно на Flutter:

PS C:\Program Files\WindowsApps\LEXsuperiorGmbH.gesetze.io_2.7.14.0_x64__tc0891g26t3gr> tree
Структура папок
C:.
├───AppxMetadata
├───data
│   └───flutter_assets
│       ├───assets
│       │   ├───aenderungsstatus
│       │   ├───generische-inhalte
│       │   │   └───listen
│       │   ├───gesetze
│       │   │   ├───bb
│       │   │   ├───be
│       │   │   ├───bund
│       │   │   ├───bw
│       │   │   ├───by
│       │   │   ├───eu
│       │   │   ├───hb
│       │   │   ├───he
│       │   │   ├───hh
│       │   │   ├───html-tabellen
│       │   │   ├───kategorien
│       │   │   ├───listen
│       │   │   ├───mv
│       │   │   ├───ni
│       │   │   ├───nw
│       │   │   ├───querverweise
│       │   │   ├───rp
│       │   │   ├───sh
│       │   │   ├───sl
│       │   │   ├───sn
│       │   │   ├───sons
│       │   │   ├───st
│       │   │   └───th
│       │   ├───jura
│       │   │   ├───definitionen
│       │   │   ├───kategorien
│       │   │   ├───listen
│       │   │   └───schemata
│       │   └───karriere
│       │       └───listen
│       ├───fonts
│       │   └───Roboto
│       ├───packages
│       │   ├───syncfusion_flutter_pdfviewer
│       │   │   └───assets
│       │   └───wakelock_plus
│       │       └───assets
│       └───shaders
└───Images

Насколько я понимаю, Flutter-приложения - байт-код, исполняемый на DartVM.

Можно ли отделить мух от котлет и запускать это приложение в Dart-окружении под Linux?

★★★★★

Между тем, вот что думают гении современности:

ChatGPT:

Да, вы правильно понимаете, что Flutter приложения компилируются в байт-код, который исполняется на Dart VM. Однако, чтобы запустить Flutter приложение на Linux, необходимо обеспечить среду выполнения, которая включает в себя Dart VM и другие зависимости.

Ваша идея о запуске приложения в Dart-окружении под Linux имеет смысл, но требует определенных шагов:

Проверьте совместимость: Убедитесь, что Dart VM совместим с вашей системой Linux и что все необходимые зависимости доступны.

Перенос файлов: Скопируйте все файлы из каталога приложения, включая исполняемые файлы и ресурсы, на вашу Linux машину.

Настройте среду выполнения: Установите Dart VM и любые другие зависимости, которые могут понадобиться для запуска приложения.

Запустите приложение: Используйте Dart VM для запуска главного исполняемого файла приложения.

Обработка зависимостей: Убедитесь, что все зависимости (пакеты Flutter, библиотеки и т.д.) доступны и правильно настроены на вашей Linux машине.

Таким образом, в целом, теоретически вы можете запустить это Flutter приложение на Linux, но это потребует некоторой работы по адаптации среды выполнения и возможно обработки зависимостей.

Copilot:

Судя по листингу каталога, вы правильно заметили, что это приложение разработано с использованием Flutter. Flutter - это фреймворк для создания кросс-платформенных приложений, который использует Dart в качестве языка программирования.

Что касается запуска Flutter-приложения в Dart-окружении под Linux, то это вполне возможно. Вот несколько важных моментов:

DartVM и Flutter: Flutter-приложения выполняются на DartVM в двух режимах:
Режим отладки: Во время разработки команда flutter run следит за файловой системой хоста на предмет изменений в исходном коде Dart. При обнаружении изменений он быстро компилирует исходный код Dart в промежуточный формат (kernel).
Режим релиза: При сборке релизной версии приложения команда flutter build создает исполняемый бинарный файл, который можно запустить на DartVM.
Интеграция с Linux:
Dart предоставляет dart:ffi, который позволяет эффективно вызывать функции из библиотек на C. Это позволяет Flutter-приложениям выделять нативную память, работать с указателями, структурами и обратными вызовами.
Множество пакетов поддерживают Linux, включая популярные пакеты, такие как url_launcher, shared_preferences, file_selector и path_provider.
Подготовка приложения для распространения:
Исполняемый бинарный файл можно найти в каталоге вашего проекта по пути build/linux/<режим сборки>/bundle/.
В директории с исполняемым файлом также есть две папки:
lib содержит необходимые файлы библиотек .so.
data содержит ресурсы приложения, такие как шрифты или изображения.
Для распространения приложения убедитесь, что на Linux-системе, на которой вы его устанавливаете, установлены все необходимые системные библиотеки.
В целом, вы можете успешно запустить это Flutter-приложение в Dart-окружении под Linux, следуя указанным рекомендациям. Удачи! 🚀

Mistral:

Flutter-приложения компилируются в нативный код для конкретной платформы, а не в байт-код, исполняемый на DartVM. Поэтому непосредственно запустить это приложение в Dart-окружении под Linux не получится.

Однако, вы можете попробовать декомпилировать приложение в Dart исходный код, а затем попытаться запустить его на DartVM. Для этого вам понадобится инструмент, такой как dart2j или flutter_decompiler. Но даже в этом случае нет гарантии, что приложение будет работать корректно, так как оно может использовать платформо-зависимые библиотеки и функции.

Альтернативным решением может быть использование эмулятора Windows или инструмента виртуализации, такого как Wine, для запуск�� приложения под Linux.

Еще одним вариантом может быть обращение к разработчикам приложения с просьбой предоставить версию для Linux, если они ее не предоставляют.

Gemini:


Анализ возможности запуска Flutter-приложения из Microsoft Store на Linux
1. Подтверждение Flutter:

Анализ структуры папок приложения, представленный вами, подтверждает, что оно построено с использованием Flutter.

Наличие папки flutter_assets с типичной структурой Flutter (assets, fonts, packages, shaders) является ключевым индикатором.
Перечисленные пакеты syncfusion_flutter_pdfviewer и wakelock_plus также являются популярными пакетами Flutter.
2. Ограничения байт-кода:

Как вы верно отметили, Flutter-приложения компилируются в байт-код, который исполняется DartVM. Однако, этот байт-код специфичен для платформы и не может быть напрямую запущен в другой операционной системе.

3. Невозможность прямого запуска:

Из-за вышеуказанных ограничений прямой запуск данного приложения из Microsoft Store на Linux невозможен.

4. Возможные альтернативы:

Хотя прямой запуск невозможен, существуют обходные пути, которые могут предоставить вам частичную функциональность:

Анализ исходного кода: Если доступен исходный код приложения, его можно попытаться перекомпилировать для Linux с помощью Flutter SDK.
Поиск веб-версии: Проверьте, имеет ли приложение веб-версию, которая может работать в Linux.
Функциональные аналоги: Поищите в Linux Store или других репозиториях аналогичные приложения, доступные нативно для Linux.
5. Важное замечание:

Стоит отметить, что обходные пути могут быть сложными, трудоемкими и не всегда гарантируют полную функциональность.

Заключение:

К сожалению, запуск данного Flutter-приложения из Microsoft Store на Linux напрямую невозможен.

Рекомендации:

Свяжитесь с разработчиком приложения и узнайте, планируют ли они выпустить версию для Linux.
Изучите альтернативные варианты, доступные для Linux.
eugrus ★★★★★
() автор топика