1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zlgopen-awtk

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh.md 21 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 22:52 91e8897

AWTK = Toolkit AnyWhere

Введение

AWTK (Toolkit AnyWhere) — это открытый графический интерфейс пользователя (GUI), разработанный ZLG для встраиваемых систем, веб-приложений, различных небольших программ, мобильных устройств и персональных компьютеров. Он предназначен для создания универсального графического интерфейса пользователя, который обеспечивает высокую эффективность, надёжность, простоту использования и возможность легко создавать впечатляющие графические интерфейсы.

Приглашаем разработчиков присоединиться к проекту: экосистема совместного развития AWTK.

Значение AWTK

  • Toolkit AnyWhere — универсальный графический интерфейс для любых платформ.
  • Встроенный графический интерфейс операционной системы ZLG AWorksOS.

Репозитории исходного кода:

AWTK Designer — инструмент для проектирования интерфейсов:

  • Не нужно писать XML вручную.
  • Простое перетаскивание элементов для создания интерфейса.
  • Быстрый предварительный просмотр и пакетная обработка ресурсов.
  • Регистрация и загрузка: https://awtk.zlg.cn.

Скриншоты результатов работы:

Диаграмма-демонстрация:

https://docs.google.com/presentation/d/1q0w9x5p8n32fQ9W3Z2uX8mJ8lV3vL5a7yN9bP9c7G3/edit?usp=sharing

Музыкальный проигрыватель:

https://docs.google.com/presentation/d/1q0w9x5p8n32fQ9W3Z2uX8mJ8lV3vL5a7yN9bP9c7G3/edit?usp=sharing

Умные часы:

https://docs.google.com/presentation/d/1q0w9x5p8n32fQ9W3Z2uX8mJ8lV3vL5a7yN9bP9c7G3/edit?usp=sharing

Цель:

  • Поддержка разработки встраиваемых приложений. ✔
  • Поддержка разработки приложений для Linux. ✔
  • Поддержка разработки приложений для MacOS. ✔
  • Поддержка разработки приложений для Windows. ✔
  • Поддержка разработки веб-приложений. ✔
  • Поддержка разработки Android-приложений. ✔
  • Поддержка разработки iOS-приложений. ✔
  • Поддержка разработки приложений для HarmonyOS. ✔
  • Поддержка разработки 2D-игр.

Основные характеристики

  1. Кроссплатформенность

AWTK является кроссплатформенным решением, что означает его способность работать на различных операционных системах и устройствах. В настоящее время AWTK поддерживает операционные системы ZLG AWorksOS, Windows, Linux, MacOS, встраиваемые системы Linux, Android, iOS, HarmonyOS и веб-платформы. Также возможно использование AWTK в небольших программах и на других платформах. Кроме того, AWTK предоставляет набор кроссплатформенных базовых инструментов, включая списки, массивы, строки (UTF8 и widechar), события, значения, объекты, файловые системы, мьютексы и семафоры, потоки, выражения и парсеры строк, обеспечивая универсальность приложений, разработанных с использованием AWTK.

  1. Эффективность

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

  • Использование алгоритма «грязного прямоугольника» для обновления только изменённых частей интерфейса.
  • Поддержка трёх буферов кадров для обеспечения максимальной частоты обновления интерфейса (опционально).
  • Применение эффективных двоичных форматов для описания пользовательских интерфейсов и стилей окон, обеспечивающих быстрое их интерпретирование.
  • Поддержка различных графических ускорительных интерфейсов, таких как OpenGL, DirectX, Vulkan и Metal.
  • Поддержка встраиваемых платформ с различными 2D ускорительными интерфейсами, такими как DMA2D от STM32 и PXP от NXP, с возможностью расширения для поддержки других ускорителей.
  1. Надёжность

Надёжность AWTK обеспечивается следующими мерами:

  • Статический анализ с использованием cppcheck и facebook infer.
  • Динамический анализ памяти с применением valgrind.
  • Наличие более двух тысяч строк модульных тестов.
  • Поддержка со стороны сильной команды разработчиков ZLG GUI.
  • Подтверждение работоспособности через множество реальных проектов.
  • Многоплатформенная и многокомпиляторная проверка.
  • Архитектура с высоким уровнем качества.
  • Code Review.
  • Ручное тестирование.
  1. Мощь

Возможности AWTK включают:

  • Богатый набор компонентов (постоянно расширяется).
  • Поддержку различных форматов изображений (png/jpg/gif/svg).
  • Поддержку разнообразных форматов шрифтов (растровых и векторных).
  • Возможность анимации окон и компонентов.
  • Анимацию компонентов.
  • Поддержку высокого разрешения экранов.
  • Описание интерфейсов с использованием файлов.
  • Стили оформления окон с использованием файлов.
  • Мгновенное применение тем.
  • Стратегии компоновки компонентов.
  • Стратегии выделения компонентов при взаимодействии с пользователем.
  • Разнообразные вспомогательные инструменты.
  • Совместимость с широким спектром процессоров, от Cortex M3 до высокопроизводительных.
  • Работу без файловой системы или с настраиваемой файловой системой.
  • Функционирование на голых системах и RTOS.
  • Запись и воспроизведение событий для тестирования под нагрузкой.
  • Автоматизированное тестирование пользовательского интерфейса с использованием Appium.
  1. Простота использования

Простота использования AWTK достигается благодаря:

  • Обширной коллекции примеров кода.
  • Полной документации по API и использованию.
  • Сильной технической поддержке от команды ZLG.
  • Созданию пользовательских интерфейсов с помощью самого AWTK.
  • Декларативному описанию интерфейсов с использованием простого синтаксиса.
  1. Высокая расширяемость

Расширяемость AWTK позволяет:

  • Разрабатывать собственные компоненты.
  • Реализовывать анимацию.
  • Писать собственный основной цикл.
  • Проектировать собственные клавиатуры.
  • Внедрять загрузчики изображений.
  • Интегрировать загрузчики шрифтов.
  • Встраивать механизмы ввода.
  • Определять собственные стратегии компоновки.
  • Настраивать выделение компонентов.
  • Адаптировать LCD-интерфейсы.
  • Расширять векторные движки (например, используя skia/cairo).
  • Обеспечивать одинаковое отношение ко всем компонентам, как к собственным, так и к сторонним.
  1. Поддержка различных языков программирования

Хотя AWTK изначально написан на языке C, он также предоставляет возможность генерации привязок к другим языкам программирования через IDL. Эти привязки не просто отображают API C на другие языки, а создают код, соответствующий стилю выбранного языка. В настоящее время поддерживаются следующие языки: C, Go, C++, lua, java, python, Javascript на jerryscript, Javascript на nodejs, Javascript на quickjs.

  1. Интернационализация

Интернационализация в AWTK включает:

  • Поддержку Unicode.
  • Встроенную поддержку ввода.
  • Перевод строк и изображений с мгновенным обновлением.
  • Двунаправленный текст.
  1. MVVM-фреймворк для встраиваемых систем, обеспечивающий полное разделение пользовательского интерфейса и бизнес-логики. Преимущества включают: высокую производительность, низкие накладные расходы памяти, глубокую изоляцию, возможность переноса на другие GUI и небольшой объём кода (~5000 строк). Для использования фреймворка не требуется изучать API компонентов AWTK напрямую. Поддерживается несколько языков программирования, включая C и JS.

Подробнее см.: https://github.com/zlgopen/awtk-mvvm.

  1. Открытый исходный код и бесплатное коммерческое использование (LGPL).

Рекомендуется провести оценку в соответствии с «Критериями оценки GUI-библиотек» (https://github.com/zlgopen/gui-lib-evaluation). libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev libasound2-dev libibus-1.0-dev fcitx-libs-dev git vim clang-format libharfbuzz-dev nodejs libreadline-dev

Компиляция и запуск (в терминале перейдите в каталог awtk и выполните следующие команды):

scons ./bin/demoui

На Ubuntu 14 не запускается, обратитесь к FAQ для получения дополнительной информации.

Windows

Сначала установите python (для 64-битной системы — 64-битную версию python), scons и Visual Studio C++ (версия >=2017).

Если не установлен pywin32, установите его с помощью pip: pip install pywin32

Если не установлен nodejs, скачайте и установите его по ссылке: https://nodejs.org/en/.

Компиляция и запуск (в командной строке перейдите в каталог awtk и выполните следующие команды):

scons bin\demoui

Компиляция параметров

Информация о компиляции:

scons help

Импорт файла параметров компиляции:

scons DEFINE_FILE=./awtk_config_define.py

Генерация файла параметров компиляции:

scons EXPORT_DEFINE_FILE=./awtk_config_define.py

Все платформы

  • Если не установлен PIL, установите его через pip:

pip install Pillow

  • Если не установлен glob, установите его через npm:

npm install -g glob

Пять. Онлайн-демонстрация

Шесть. Перенос на разные платформы

Семь. Привязка к различным языкам

Восемь. Связанные проекты

Предоставлено третьей стороной:

9. Документация

10. План совместного развития экосистемы

    

11. Группа общения разработчиков

Приглашаем инженеров, заинтересованных в оценке и тестировании AWTK. Если у вас есть предложения или вопросы по AWTK, вы можете добавить небольшой Z в WeChat (zlgmcu-888), чтобы присоединиться к группе общения разработчиков AWTK и получить ответы от команды разработки ZLG.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zlgopen-awtk.git
git@api.gitlife.ru:oschina-mirror/zlgopen-awtk.git
oschina-mirror
zlgopen-awtk
zlgopen-awtk
master