armv7 cortex a系列编程手册_AWTK能为现代GUI编程带来何种改变?

7ddcb2c6b82f75a7b9196b84894e8cc3.gif

AWTK是一个伸缩性极强的嵌入式图形框架,它的诞生会给GUI编程研发工程师带来哪些改变?

AWTK是一个伸缩性极强的嵌入式图形框架,可在Cortex-M3这样低端的单片机上运行,也可以在Cortex-A7/A8/A9等处理器,甚至DSP以及X86处理器上运行,既可支持小型RTOS系统,也能支持Linux、MacOS、iOS、Android操作系统,还能支持Windows操作系统、WEB以及各种小程序,可以说是一个全能的嵌入式GUI引擎。

AWTK的跨平台特性,使得应用程序开发也极为便利,在Windows上开发完成的程序,只需经过简单交叉编译即可下载至嵌入式目标板运行,且得到的效果是完全一样的,无需再进行任何修改。

AWTK的特点

AWTK旨在为用户提供一个功能强大、简单易用,能轻松做出炫酷效果的GUI引擎,具有如下特点:

1、开源、免费,用于商业无需付费;

2、高效:小巧高效,可运行在Cortex-M3等小资源平台(参考图1);

3、跨平台:支持跨多种操作系统,跨多种硬件平台(参考图2);

4、稳定:架构优秀,全方位检查测试,多平台验证以及强大后备技术支援;

5、功能强大:

支持硬件加速,支持视网膜高清分辨率技术;

拥有完善的动画系统,丰富的GUI控件;

支持位图字体和矢量字体;

内置中英文输入法,并支持智能词组输入;

支持多语言开发,支持国际化;

6、易用;

7、支持纯C语言编程;

8、支持组态方式开发界面,所见即所得;

9、提供完善的API手册、使用文档和大量示例代码:

支持纯C语言编程;

支持组态方式开发界面,所见即所得;

提供完善的API手册、使用文档和大量示例代码;

10、扩展性好:可扩展控件、动画、引擎等。

a49ecf699f23db21e18c42f693f106ec.png

图1广泛处理器支持

fa6f92f0a6dae20038e4554bb95aae74.png

图2多软件平台支持

AWTK开发环境

ZLG致远电子即将推出AWTK集成开发环境AWTK Designer,简化AWTK界面设计,开发者无需手写XML,采用拖拽方式即可完成界面设计,所见即所得。AWTK Designer本身就是采用AWTK编程实现,界面如图3所示。

fcdb528dbd1d94cfee5fc75e71e027e4.png

图3AWTK Designer界面

前景展望

在AWTK诞生以前,没有哪一款GUI能具有如此广泛的覆盖性以及如此良好的伸缩性和延展性。此前的GUI,往往都是聚焦于某一类处理器或者某几个平台,要么只支持某一些列处理器,要么只支持有限几个软件平台,这个现状如今被AWTK打破。AWTK将成为一个可用于嵌入式、手机和PC的通用GUI系统。

AWTK采用LGPL协议发布,任何人或者组织都能获取到源码,并可用于商业用途而无需付费。与现有商业GUI相比,既能为开发者节省不少授权费用,而且能掌握全部源码,也能为开发者提供更有力量的信心保证,仅从这两点而言,对开发者都是极具吸引力的。这势必能吸引众多嵌入式开发者加入AWTK生态,并为AWTK生态添砖加瓦。

AWTK的多种语言开发特性,能吸引更多掌握不同语言技能的开发者。目前大多数GUI,都仅支持某一种单一语言,C或者C++,而AWTK目前已经支持C、Lua、Javascript on jerryscript、Javascript on nodejs等不同编程语言,将来还能支持其他开发语言。这样既能为开发者提供编程便利,也能进一步拓宽AWTK的应用领域和使用人群。

AWTK与Linux的结合,可谓相得益彰,为嵌入式Linux的GUI开发者带来了福音,Linux生态也会促进AWTK的成长和发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】各种概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB

POJO(pure old java object) 是普通java类,有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法访问的接口。我看到这个定义,心里就有个疑问了,这个POJO跟JavaBean的定义怎么就这么像&a…

为什么要编写单元测试–测试技巧8

我对最近在“您应该测试什么”上的博客有很多反应,有些人出于各种原因同意我的想法,另一些人则认为建议某些类可能不需要单元测试是非常危险的。 已经处理了什么测试,今天的博客涉及为什么要编写单元测试,而今天的示例代码是基于一…

Git迁移 从SVN到Git

Migrating from SVN to Git 首先我们需要在Stach或者GitHub上新建一个Repository, 拿到它的URL。 接下来参照如下步骤 : At first we should create a new git repository at Stash and get the repository URL, and then follow below steps: 1. 切换到本地git工作目录 chang…

C语言代码规范(二)空格

一、逗号, 之后加空格 printf("error! score[%d] %d\n", i, score[i]); 二、分号; 之后加空格 for(i 0; i < student_num; i) 三、关系运算符<、<、>、>、、! 前后加空格 if( (score[i] > 0) && (score[i] < 100) ) 四、赋值运算符…

c++ 多重背包状态转移方程_动态规划入门——详解经典问题零一背包

本文始发于个人公众号&#xff1a;TechFlow&#xff0c;原创不易&#xff0c;求个关注今天是周三算法与数据结构专题的第12篇文章&#xff0c;动态规划之零一背包问题。在之前的文章当中&#xff0c;我们一起探讨了二分、贪心、排序和搜索算法&#xff0c;今天我们来看另一个非…

Discuz! 的编码规范

前言 本规范由编程原则组成&#xff0c;融合并提炼了开发人员长时间积累下来的成熟经验&#xff0c;意在帮助形成良好一致的编程风格。适用范围 如无特殊说明&#xff0c;以下规则要求完全适用于Discuz!项目&#xff0c;同时也可大部分适用于COMSENZ旗下其他PHP项目。标准化的重…

C语言代码规范(三)if语句

一、整型变量与0比较 许多人为了一时之便&#xff0c;模仿布尔变量风格写为如下代码 if(value) {... }if(!value) {... } 应当用 或 ! 来与0比较 if(0 value) {... }if(0 ! value) {... } 二、当if内的语句是与常量进行比较时&#xff0c;常量为左值&#xff0c;变量为右…

6月24 面向对象的设计原则-----工厂模式和单列模式

工厂模式&#xff1a; 工厂模式就是专门负责将大量有共同接口的类实例化&#xff0c;而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口&#xff0c;由子类决定实例化哪一个类。 工厂模式相当于创建实例对象的new&#xff0c;经常要根据类Class生成…

LeetCode Subsets

原题链接在这里&#xff1a;https://leetcode.com/problems/subsets/ 题目&#xff1a; Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must be in non-descending order.The solution set must not contain duplicate su…

使用ThreadPoolExecutor并行化独立的单线程任务

Java SE 5.0中引入的任务执行框架是简化多线程应用程序的设计和开发的巨大飞跃。 该框架提供了用于管理任务概念&#xff0c;管理线程生命周期及其执行策略的工具。 在此博客文章中&#xff0c;我们将描述该框架的功能&#xff0c;灵活性和简单性&#xff0c;以展示一个简单的用…

python定义一个圆_Python-矩形和圆形

原博文 2019-11-11 12:34 − Exercise 15.1. 定义一个叫做Circle 类&#xff0c;类的属性是圆心 (center) 和半径 (radius) , 其中&#xff0c;圆心 (center) 是一个 Point 类&#xff0c;而半径 (radius) 是一个数字。 实例化一个圆心 (center) 为 (150, 100) &#xff0c;半…

C语言代码规范(四)命名规则

一、宏定义全部字母大写&#xff0c;单词间下划线间隔 #define FLASH_PAGE_SIZE 256 #define FLASH_SECTOR_SIZE (4 * 1024) #define FLASH_BLOCK_SIZE (64 * 1024) #define FLASH_SIZE (16 * 1024 * 1024) 二、const修饰的常量全部字母大写&#xff0c;单词间…

Forbidden You don't have permission to access / on this server PHP

Forbidden You dont have permission to access / on this server PHP 在新安装的谷歌游览器里&#xff0c;打不了PHP网站了&#xff0c;错误显示&#xff1a; Forbidden You dont have permission to access / on this server. 原因还是配置权限问题 解决办法&#xff1a; wa…

Spring 3.1和JPA的持久层

1.概述 本教程显示了如何使用Hibernate作为持久性提供程序使用JPA设置Spring 。 有关使用基于Java的配置和项目的基本Maven pom设置Spring上下文的分步介绍&#xff0c;请参阅本文 。 2. Java的JPA Spring配置 要在Spring项目中使用JPA&#xff0c; 需要设置EntityManager 。…

150928错误认识

1. $arr array(); foreach ($re as $k>$v){  $arr[] $v[updatetime];} $arr的返回结果为&#xff1a; Array ([0] > 2014-09[1] > 2015-04[2] > 2015-09 )$arr array(); foreach ($re as $k>$v){  $arr[$k] $v[updatetime];} $arr的返回结果为&#xff…

STM32F1笔记(一)GPIO输出

GPIO&#xff1a;General Purpose Input Output &#xff08;通用输入/输出&#xff09;。 GPIO最经典应用&#xff1a;LED灯。 先看电路。声明&#xff1a;参考正点原子战舰开发板。 与LED串联的电阻称为限流电阻。 限流电阻计算公式&#xff1a;R(U-LED压降)/20ma。 U为LE…

dataframe转化为array_【Python专栏】12 种高效 Numpy 和 Pandas 函数为你加速分析

来源&#xff1a;机器之心编译&#xff1a;Jamin、杜伟、张倩我们都知道&#xff0c;Numpy 是 Python 环境下的扩展程序库&#xff0c;支持大量的维度数组和矩阵运算&#xff1b;Pandas 也是 Python 环境下的数据操作和分析软件包&#xff0c;以及强大的数据分析库。二者在日常…

具有GlassFish和一致性的高性能JPA –第1部分

您以前听说过连贯性吗&#xff1f; 大概是。 它是那些著名的内存网格解决方案之一&#xff0c;该解决方案承诺了超快的数据访问速度和对经常使用的数据的无限空间。 一些众所周知的竞争对手是Infinispan &#xff0c; Memcached和Terracotta Ehcache 。 它们都很棒&#xff0c;…

如何在自己的代码中实现分享视频文件或者是图片文件到微信 QQ微博 新浪微博等!!!...

首先在文档第一句我先自嘲下 &#xff0c; 我是大傻逼&#xff0c; 弄了两天微信是视频分享&#xff0c;一直被说为啥跟系统的相册分享的不一样&#xff0c;尼玛&#xff01;&#xff01;&#xff01; 这里来说正文&#xff0c;我这里不像多少太多&#xff0c;大家都是程序猿&a…

sql 数据库中用创建好的视图修改表数据

只要满足下列条件&#xff0c;即可通过视图修改基础基表的数据&#xff1a; 1、任何修改&#xff08;包括 UPDATE、INSERT 和 DELETE 语句&#xff09;都只能引用一个基表的列。 2、视图中被修改的列必须直接引用表列中的基础数据。不能通过任何其他方式对这些列进行派生&#…