電子產業(yè)一站式賦能平臺

PCB聯(lián)盟網

搜索
查看: 27|回復: 0
收起左側

分享一個跨平臺通用的 GUI 框架!

[復制鏈接]

449

主題

449

帖子

582

積分

二級會員

Rank: 2

積分
582
跳轉到指定樓層
樓主
發(fā)表于 昨天 20:20 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
我是老溫,一名熱愛學習的嵌入式工程師
* I, h+ Q$ _) V: g* ?; O/ N/ m4 T關注我,一起變得更加優(yōu)秀!AAGUI介紹AAGUI是一個不依賴特定硬件、操作系統(tǒng)的跨平臺通用型GUI。. ]6 ]4 S2 ?% v$ a* v
鏈接:https://gitee.com/QQ1159465634/aagui# e1 c3 d3 E& \7 m/ T+ _; A
使用MIT開源許可協(xié)議
2 y; G9 _1 C2 h4 }, f: T5 T
AAGUI采用C(兼容C89)與C++(兼容C++98)編寫,兼容位置無關。面向對象、半聲明式、等特性使得AAGUI的應用開發(fā)效率、可維護性都十分優(yōu)秀!# X) w' e2 S. e% O2 l
優(yōu)雅的頁面管理機制使得AAGUI也能擁有開發(fā)出大型系統(tǒng)級多頁面UI應用的能力!UI核心來源于對安卓的精簡移植,以及超低的內存占用,終于在嵌入式MCU里也能實現(xiàn)類安卓的高級UI開發(fā)!9 N. E4 @6 K1 D+ [. j) w, [/ G# D
. T# D/ B7 ^- k4 t3 K7 A, a" ]- R

3 F! e! q. l% I+ Z" j/ f/ A' |- G3 J4 T9 ^1 Q8 F  s6 V, F
! p* [; v8 o- r6 a" R
軟件架構
7 i8 f2 O% A' z2 B5 B文件夾是否開源AAGUI_app應用層?AAGUI_core核心層?libAAGUI已編譯的核心層靜態(tài)庫?移植教程
  • ⑴ 將AAGUI相關代碼、靜態(tài)庫全部加入到項目中。加上頭文件路徑。自定義一個預處理符號方便標記當前目標平臺。
  • ⑵ AABase.c中實現(xiàn)相關抽象移植接口,如aa_malloc()...。
  • ⑶ 定義主GUI并配置其顯示設備信息,對接框架接口。
  • 詳情請參閱 AAGUI文檔.chm 及已移植好的項目文件。更多說明
  • 內存空間推薦:flash >= 256KB,RAM >= 32KB(6K棧+26K堆)。
  • 框架重要優(yōu)勢:完整應用框架、多GUI實例(多屏)、json半聲明式高級UI、完整中文輸入法、支持Alpha、支持剪輯區(qū)。
  • 幀緩沖區(qū)格式:原生支持0bit自控、1bit單色、8bit灰度、16、24、32bit彩色,支持動態(tài)修改。
  • 部分幀緩沖區(qū):支持PFB部分幀緩存,最低只需1行緩存。比如240x320分辨率,最低只需要240的內存。
  • 復用支持簡要:頁面(面板)復用、UI布局復用、UI控件復用、自定義高級UI組件。
  • 高級布局簡要:幀布局、線性布局、絕對布局、垂直&水平滾動容器、文本、文本編輯、按鈕、進度條。
  • 字體支持簡要:自由管理字體、支持繪制帶邊框文字、文本縮放繪制。
  • 底層圖形繪制:點、線、矩形、圓、圓角矩形、橢圓矩形、漸變矩形、多邊形、圓。ǹ蓪崿F(xiàn)扇形)。
  • 底層圖片繪制:1、8、16、24、32bit位圖、qoi格式圖片。位圖支持縮放、旋轉。更多圖片5 y( o2 Q. p2 o) x  P
    * g, f& P& a* Y2 h; z
    - r& X" z6 m  O0 h/ m8 Z- l2 U5 H
    / C( ^. O2 E6 A3 Q3 k3 b
    & z! _! i. k9 a. i4 _: a8 Z1 H0 M

    & Z9 Z2 W/ w8 e4 @' j' j1 ~
    * f( M" c2 H, c; j# X" T% R - t2 |; b6 a; S+ v$ u( s* x

    1 H1 N% w# I, e  W
    2 Z+ @5 T; Y2 [. ~2 N
    . `2 W0 E- I& r0 B  K7 P
    ) ^% s- ~( l% ^  K* n( w2 h-END-
    $ s6 P" g  a2 d* {$ e. z3 R% u6 }+ O# s) v往期推薦:點擊圖片即可跳轉閱讀
    7 L1 D/ d! N! g/ e( |                                                       
    " @4 X& w) A8 H$ e0 {3 g                                                                6 i% g. B) B" F  C0 Q& @3 G1 j5 ^
                                                                            % D2 `3 u( o  L1 K% B; z1 i
                                                                                   
    4 _5 e# Z8 Q2 r$ K& {5 N: g4 [ - ]; P: ?7 I9 _, k  T
                                                                                    + `( D9 L: m* Y3 M# M. h
                                                                                            嵌入式大佬分享,簡單易用的開發(fā)工具及解決方案!
    " E6 P1 Y. r$ x% D  {% L: I% j                                                                                - S3 A% N& E0 j1 W( U8 d
                                                                           
    5 ?9 `5 A6 M9 t0 T1 E; [+ {6 s                                                                1 n+ e7 G9 G& I  v2 N3 Y/ Y! n  ?
                                                            - v/ @/ I. Z! m& s- a- K
                                                   
    + _+ u: H7 I* G$ R  d
    7 G' w" n! I7 Y$ @$ I: t                                                       
    8 @6 ?7 _& w- T& Z2 t5 n8 c/ @                                                               
    ( S% y* t. e1 z$ U" B$ a                                                                        ! b, o9 M0 I, h( J
                                                                                    / T  k4 E) s, O1 D4 @2 d8 }
    5 d  g) g7 u) l& o  u; x2 u' ]
                                                                                   
    , U6 j) E$ s0 r" X( y: |, ~2 g" G                                                                                        嵌入式 Linux 對接星閃,用 C++ 設計一個通用的 AT 指令解析器。
    $ e5 I5 ?% X7 i0 {0 {                                                                                6 G6 t& {$ A, R" {
                                                                           
    , r0 P3 y. ]& j- m  H5 x/ f                                                                ' _4 F! g' ?, I- t5 @* o; u
                                                            + s5 W6 J* Q& N' n5 }" v( W* m, S
                                                    " F" i' }2 W6 Y. F2 W1 y* b# [% O" C
    + r1 W8 {- |! l8 h6 B
                                                            3 V; \# \" a* I2 k
                                                                    + K* h/ l+ t2 U* X
                                                                            * f5 s# ]; h" d$ a6 `5 g
                                                                                    ' ?, V; c2 e. R( O

    6 x6 c1 u0 X; L- y, W: D                                                                               
    4 Q+ D' i- W3 Q! A9 {                                                                                        嵌入式 C 語言,為什么全局變量越少越好?' v2 x/ D; @0 p! r
                                                                                   
    . D, B3 {1 {0 q8 P% J                                                                        ; @: k/ c9 M/ z! E8 y$ |
                                                                    3 S6 Q+ E. L8 B( X4 X6 Q
                                                           
    ' F2 H# A8 R( ~1 ?" E: |& T1 |                                                我是老溫,一名熱愛學習的嵌入式工程師, N; Y' F3 ^) ]& o
    關注我,一起變得更加優(yōu)秀!
  • 回復

    使用道具 舉報

    發(fā)表回復

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則

    關閉

    站長推薦上一條 /1 下一條


    聯(lián)系客服 關注微信 下載APP 返回頂部 返回列表