# AAGUI **Repository Path**: git_arm/aagui ## Basic Information - **Project Name**: AAGUI - **Description**: AAGUI是一个不依赖特定硬件、操作系统的跨平台通用型半声明式GUI。采用C(兼容C89)与C++(兼容C++98)编写。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 25 - **Created**: 2024-11-08 - **Last Updated**: 2024-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AAGUI #### 介绍 AAGUI是一个不依赖特定硬件、操作系统的跨平台通用型GUI。采用C(兼容C89)与C++(兼容C++98)编写,兼容位置无关。面向对象、半声明式、等特性使得AAGUI的应用开发效率、可维护性都十分优秀!优雅的页面管理机制使得AAGUI也能拥有开发出大型系统级多页面UI应用的能力!UI核心来源于对安卓的精简移植,以及超低的内存占用,终于在嵌入式MCU里也能实现类安卓的高级UI开发!官方QQ交流群:157970328。 ![输入图片说明](%E6%88%AA%E5%9B%BE/QQ%E6%88%AA%E5%9B%BE20240325152841.png) ![输入图片说明](%E6%88%AA%E5%9B%BE/20241031.gif) ![输入图片说明](%E6%88%AA%E5%9B%BE/20240922001.gif) #### 软件架构 | | 文件夹 | 是否开源 | |------------|------------|------| | AAGUI_app | 应用层 | ✅ | | AAGUI_core | 核心层 | ❎ | | libAAGUI | 已编译的核心层静态库 | ❇ | #### 移植教程 - ⑴ 将AAGUI相关代码、静态库全部加入到项目中。加上头文件路径。自定义一个预处理符号方便标记当前目标平台。 - ⑵ AABase.c中实现相关抽象移植接口,如aa_malloc()...。 - ⑶ 定义主GUI并配置其显示设备信息,对接框架接口。 - 详情请参阅 AAGUI文档.chm 及已移植好的项目文件。 #### 更多说明 - 内存空间推荐:flash >= 256KB,RAM >= 32KB(6K栈+26K堆)。不跑高级UI则只要64KB的flash和1KB的RAM。 - 框架重要优势:完整应用框架、多GUI实例(多屏)、json半声明式高级UI、完整中文输入法、支持Alpha、支持剪辑区。 - 帧缓冲区格式:原生支持0bit自控、1bit单色、8bit灰度、16、24、32bit彩色,支持动态修改。 - 部分帧缓冲区:支持PFB部分帧缓存,最低只需1行缓存。比如240x320分辨率,最低只需要240x1个像素的内存。 - 复用支持简要:页面(面板)复用、UI布局复用、UI控件复用、自定义高级UI组件。 - 高级布局简要:帧布局、线性布局、绝对布局、垂直&水平滚动容器、文本、文本编辑、按钮、进度条。 - 字体支持简要:自由管理字体、支持绘制带边框文字、文本缩放绘制。 - 底层图形绘制:点、线、矩形、圆、圆角矩形、椭圆矩形、渐变矩形、多边形、圆弧(可实现扇形)。 - 底层图片绘制:1、8、16、24、32bit位图、qoi格式图片。位图支持完整2D矩阵变换:旋转、镜像、缩放...。 #### 更多图片 ![输入图片说明](%E6%88%AA%E5%9B%BE/%E5%AD%97%E4%BD%93%E8%AE%BE%E7%BD%AE%E5%92%8C%E5%A4%9A%E5%B1%8F%E6%BC%94%E7%A4%BA24517.gif) ![输入图片说明](%E6%88%AA%E5%9B%BE/UI%E8%AE%BE%E8%AE%A1240518.gif)