电子产业一站式赋能平台

PCB联盟网

搜索
查看: 153|回复: 0
收起左侧

分享一个跨平台通用的 GUI 框架!

[复制链接]

459

主题

459

帖子

918

积分

二级会员

Rank: 2

积分
918
发表于 2024-10-25 20:20:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师
8 {. t1 Q: p) ~/ A2 N关注我,一起变得更加优秀!AAGUI介绍AAGUI是一个不依赖特定硬件、操作系统的跨平台通用型GUI。9 g4 x, n/ l9 V# G: c( G4 h
链接:https://gitee.com/QQ1159465634/aagui
, y' ?0 ?" R" v4 l使用MIT开源许可协议3 i* `1 B2 G' L  w0 [
AAGUI采用C(兼容C89)与C++(兼容C++98)编写,兼容位置无关。面向对象、半声明式、等特性使得AAGUI的应用开发效率、可维护性都十分优秀!; C) v' G5 d" T" G( T
优雅的页面管理机制使得AAGUI也能拥有开发出大型系统级多页面UI应用的能力!UI核心来源于对安卓的精简移植,以及超低的内存占用,终于在嵌入式MCU里也能实现类安卓的高级UI开发!
# ]+ \, d8 A7 @' D7 s% ?0 C2 h+ ]

1gzgsgbu3lw64046516856.png

1gzgsgbu3lw64046516856.png

" U& }2 b% A6 _* o8 \" O! V) A6 L4 U( l
% [0 L- W- t* \+ p$ [& @% A

l4esnojtczm64046516957.gif

l4esnojtczm64046516957.gif

' R2 Z, Z6 l$ V软件架构
) u) B% ~+ J5 t文件夹是否开源AAGUI_app应用层?AAGUI_core核心层?libAAGUI已编译的核心层静态库?移植教程
  • ⑴ 将AAGUI相关代码、静态库全部加入到项目中。加上头文件路径。自定义一个预处理符号方便标记当前目标平台。
  • ⑵ AABase.c中实现相关抽象移植接口,如aa_malloc()...。
  • ⑶ 定义主GUI并配置其显示设备信息,对接框架接口。
  • 详情请参阅 AAGUI文档.chm 及已移植好的项目文件。更多说明
  • 内存空间推荐:flash >= 256KB,RAM >= 32KB(6K栈+26K堆)。
  • 框架重要优势:完整应用框架、多GUI实例(多屏)、json半声明式高级UI、完整中文输入法、支持Alpha、支持剪辑区。
  • 帧缓冲区格式:原生支持0bit自控、1bit单色、8bit灰度、16、24、32bit彩色,支持动态修改。
  • 部分帧缓冲区:支持PFB部分帧缓存,最低只需1行缓存。比如240x320分辨率,最低只需要240的内存。
  • 复用支持简要:页面(面板)复用、UI布局复用、UI控件复用、自定义高级UI组件。
  • 高级布局简要:帧布局、线性布局、绝对布局、垂直&水平滚动容器、文本、文本编辑、按钮、进度条。
  • 字体支持简要:自由管理字体、支持绘制带边框文字、文本缩放绘制。
  • 底层图形绘制:点、线、矩形、圆、圆角矩形、椭圆矩形、渐变矩形、多边形、圆弧(可实现扇形)。
  • 底层图片绘制:1、8、16、24、32bit位图、qoi格式图片。位图支持缩放、旋转。更多图片9 ~- t# V, U5 Q# a* L( p* |

    hnpulausdsw64046517057.gif

    hnpulausdsw64046517057.gif
    3 ~! m' B! r! b3 g, `
      {5 Z% e7 l, P/ a
    * G, N) G7 Y6 f8 M

    250hcwt2qom64046517158.png

    250hcwt2qom64046517158.png

    $ t2 Y" A- O* B  R: ]! D/ Z  i; e7 ?" g& o) M( x# a

    * t8 \1 o9 _3 v- |2 C# V  u

    qnyzpjazkcl64046517259.png

    qnyzpjazkcl64046517259.png
      d5 |- o/ S1 R1 b4 e/ F" |* F/ ?

    . i+ \( \* t+ l$ B
    ; M. x0 a2 P! s  E- @

    41fufxgpnk364046517359.png

    41fufxgpnk364046517359.png

    . f. h& ~8 y6 D7 ?
    $ U$ d" H2 A3 _  B4 Y5 {9 C  K-END-: z9 B( k0 b' q9 g) W) c7 g
    往期推荐:点击图片即可跳转阅读
    + W$ u/ A/ i& ]4 I                                                        ! ^7 }: _8 y( @, C1 i
                                                                   
    / G! L; V7 Q8 H( b; e, c- p9 [0 J                                                                       
    - F! g5 z& @  U" _0 G8 C. ^$ ~, ~                                                                               
    " c" b6 z! k+ Q, ]3 @3 L, h

    2meaoskb02b64046517459.jpg

    2meaoskb02b64046517459.jpg
    1 e; S9 K4 r+ n$ j6 R, D; f
                                                                                   
    6 Y# _6 q$ C0 s9 K# c: _) ?" J                                                                                        嵌入式大佬分享,简单易用的开发工具及解决方案!
    1 w  {7 w/ t4 H: f                                                                                7 q' x; g" X1 }' m
                                                                            & v9 P+ _, W9 @* c0 C% e9 x5 O
                                                                    7 w' W+ A, K# [3 h4 `
                                                            ! k5 D) y7 P. Q, M
                                                   
    / ]2 |5 ?9 m8 \- }7 d; a% A* z) R2 T1 d* K8 B
                                                           
    0 t" @4 g) H$ g% R# l- L5 U; y/ C                                                               
    ! T! a- O- J) H! b* j" [# ?, ]                                                                       
    " s8 J5 E( a) u# Z                                                                                3 O- J2 o( }! G

    0hvj0ft0ni364046517559.jpg

    0hvj0ft0ni364046517559.jpg
    . C) k! u" W; F  l) O3 W% A
                                                                                    ! X+ c) T+ l3 W. k, B+ U
                                                                                            嵌入式 Linux 对接星闪,用 C++ 设计一个通用的 AT 指令解析器。; p  y& Q; d2 _& \8 Z# Z2 Q
                                                                                    ( ~1 S; w( O* w. K, F6 v+ z
                                                                            : Y. E& T+ n8 s7 C2 _
                                                                    0 ?9 H7 {5 k1 P4 m2 X4 U% V
                                                            , D+ |2 |! g6 ]  P( n0 ?* S
                                                    8 g  f5 y+ Y% t7 P2 W
    2 j! T8 Z) ], ~
                                                            % v$ ?; j, H/ g9 Z) ^/ U
                                                                   
    ' W; B) i! r7 b7 n7 H* \" n# _) g1 q                                                                       
    $ D6 t% K" r) \/ v! X! V                                                                               
    - ~+ W- G, E& D( _

    rwfqevyiq4364046517600.jpg

    rwfqevyiq4364046517600.jpg

    . X4 Z5 y; L( ~" ~                                                                               
    ' c. I. T* P5 |$ g8 R0 L( ^' z                                                                                        嵌入式 C 语言,为什么全局变量越少越好?6 ~5 ?. \1 O6 V1 x% l& ~
                                                                                   
    2 x& ]; T) W5 M9 C& n                                                                       
    ' ]; I* ?5 k$ q' o. X5 R                                                               
    " [0 E: e7 V) `) i                                                        ( \3 t5 f8 F- A% c
                                                    我是老温,一名热爱学习的嵌入式工程师
    ; J6 W$ C7 P# `% K关注我,一起变得更加优秀!
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表