自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Linux mobile development & HTML5 Games/App

主要致力于基于linux的嵌入式系统的学习和研究,包括内核、驱动、GUI、MMI、软件设计方法和软件优化等方面.

  • 博客(777)
  • 资源 (2)
  • 收藏
  • 关注

原创 用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (6)-在线调试

在线调试功能对程序员来说非常重要的,没有调试功能就像被人蒙上了眼睛。AWPLC 除了提供打印日志的调试方式外,还提供了在线调试的功能,在线调试不仅支持源码级的断点,还支持功能块级的断点。本文用我们之前讲过的定时器例子,来演示如何使用在线调试功能。

2022-12-04 18:53:20 191

原创 用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (5)- 自定义功能块(下)

本文介绍了用 C 语言开发 AWPLC 原生功能块的方法以及代码生成器。

2022-11-26 11:33:47 567

原创 用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (4)- 自定义功能块(上)

在 AWPLC 中,自定义功能块和内置功能块具有同等待遇,因为它们都是按同样的方式加入进来的。在进入正题前,我们先聊一下,系统的可扩展性以及实现方法。

2022-11-20 09:21:34 265

原创 用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (3)- 定时器

之前我们用 AWPLC 实现了一个手动的走马灯,按下一次按钮就点亮下一个灯,能不能做到让程序自动切换呢?当然是可以的。下面我们就用定时器来自动切换的走马灯。

2022-11-14 18:00:33 258

原创 用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (2)-走马灯

走马灯很好实现,而且会用到移位和计数器等多个功能块,PLC 的教程喜欢选择它来做例子。本文用一个简单的走马灯程序,来演示如何用 AWTK 和 AWPLC 快速开发嵌入式应用程序。

2022-10-30 16:09:39 397

原创 用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (1)-温度控制器

本文用一个简单的温度控制系统,来演示如何用 AWTK 和 AWPLC 快速开发嵌入式应用程序。

2022-10-19 11:58:09 728

原创 AWTK 软键盘支持按键预览

在嵌入式系统中,通常屏幕很小。如果使用电容触摸屏,手指按下时会挡住其下的按钮,让人不确定是否按在了正确的位置,特别是在软键盘这种按钮按钮很密集的界面,更容易让人产生焦虑。AWTK 支持了按钮预览的功能,可以大幅缓解这种焦虑。

2022-10-08 16:59:13 281

原创 使用 lua 运行 fscript

使用 lua 运行 fscript 笔记。

2022-08-06 11:03:09 561 1

原创 AWTK 最新动态:使用 serial_widget 简化串口编程

把串口做成一个控件并不是一个新鲜的东西,记得在 Visual Basic 里有个通信组件,就是用来简化串口编程的。最近 AWTK 也提供了这样一个控件 serial_widget,当串口数据到来时,它触发 EVT_DATA 事件,在该事件中你可以读取数据,并更新界面或者回应对方。...

2022-07-09 06:32:01 681

原创 AWTK 支持可独立安装的小应用程序 (applet)

AWTK 应用程序通常是一个单体的应用程序,里面所有的窗口都共享一个资源包(目录),不能单独卸载和安装。但是在有的设备里,AWTK 应用程序又扮演着"系统"的角色,比如在智能手表中,用户可以自己安装喜欢的表盘甚至应用程序,为了方便说明,我们可以独立安装的这类应用程序成为小应用程序 (applet)。小应用程序 (applet) 的资源必须是独立的,才方便安装和卸载。运行时,先到自己的资源目录中找资源,如果找不到,再到系统中去找。AWTK 最近对此做了支持。...

2022-07-05 08:10:39 621

原创 读写 XML/JSON/INI 和 UBJSON 等格式的数据文件的统一接口

开发应用程序,会经常使用各种数据文件(如配置数据和元数据),常见的数据文件格式有 INI、XML、JSON 和 UBJSON,对一个复杂的应用程序,其中可能会同时使用多种不同格式的数据文件。通常,操作这些数据文件的函数各不相同,对于程序员来说即是学习负担,也是记忆负担。AWTK 提供了一套统一的接口函数,同一套接口函数,可以操作不同的格式的数据文件。...

2022-06-26 16:35:53 693

原创 AWTK 最新动态:Grid 控件新用法

在很长一段时间内,grid 都只是起到语义上的作用,在功能上和 view 没有不同。最近我们对它做了以下改成,在不少地方可以提高开发效率。

2022-06-19 11:36:37 630

原创 AWTK spin_box 的几种形态

spin_box 是一个特殊的 edit,主要用于数值编辑。它自带两个按钮,点击它们可以增加/减少数值,增量可以用 step 来设置。

2022-06-12 06:41:10 587

原创 AWTK 设置下拉选择框 (combo box) 弹出窗口/列表项的样式

点击下拉选择框的按钮弹出下拉选择框,它是一个独立的 popup 窗口,所以设置样式与普通控件有所不同,之前很多朋友遇到过麻烦。本文详细介绍一下其样式的设置方法。列表项的样式。style 的名称为"default",如:扩展下拉选择框中的列表视图和滚动条,使用默认的样式。2. 样式文件的查找顺序2.1 普通下拉选择框styles/combobox_popupstyles/defaultstyles/combobox_ex_popupstyles/default在上面的用法中,所有的下拉

2022-06-08 16:07:12 856

原创 AWTK 最新动态:shape 控件的使用方法

shape 控件用于绘制各种基本图形。

2022-06-01 07:15:52 674

原创 AWTK最新动态:新增TreeView,附使用方法

AWTK TreeView的使用方法

2022-05-29 17:31:54 663 4

原创 AWTK 中的字符串编码

AWTK 中的字符串编码

2021-12-18 11:21:38 1952

原创 使用reactjs开发AWTK应用程序

react-awtk介绍本项目基于 valence-native 实现,在此对原作者表示感谢。本项目目前处于实验阶段,欢迎大家一起完善。反应式 GUI 编程已经成为 Web、桌面和移动开发的主流范式,reactjs 是反应式 GUI 编程的主要代表。react-awtk 使得开发者可以用 reactjs 的方式来开发 AWTK 应用程序。主要特色:原生的窗口动画和控件动画。内置 Router 实现窗口之间的导航。JSX 兼容 AWTK Designer 生成的 XML。兼容 AWTK

2021-08-21 10:35:13 1666

原创 AWTK 支持 Rive 动画

awtk-widget-riveRive 是一个超级强大的动画格式及配套工具。rive player 控件是基于 rive-cpp 实现的 Rive 播放器。准备获取 awtk 并编译git clone https://github.com/zlgopen/awtk.gitcd awtk; scons; cd -获取 awtk-widget-rive 并编译git clone https://github.com/zlgopen/awtk-widget-rivecd awtk-w

2021-07-30 17:06:20 1844

原创 AWTK 支持 Lottie 动画

awtk-widget-rlottieLottie 是一个超级强大的动画库,众多工具可以创建并导出 Lottie 格式的动画。 Lottie 用 JSON 描述动画,与比 gif 等图片动画相比,体积大大减小。如果性能跟得上,是做动画的不错选择。借助三星开源的 rlottie 库,AWTK 可以直接播放 Lottie 动画。rlottie player 控件是基于 rlottie 实现的 Lottie 播放器。准备获取 awtk 并编译git clone https://github.c

2021-06-05 16:47:04 2127 1

原创 在 qemu 中运行 awtk-linux-fb

在 qemu 中运行 AWTKqemu 能模拟一个更真实的 arm-linux 环境,有时用来调试和学习一下 framebuffer 的驱动,也是很有意思的事,这里写个文档供大家参考。在 Ubuntu 20 上测试运行。构建 arm-linux 运行环境手工从头构建 linux 系统还是挺麻烦的(以前干过这活), 现在有 buildroot 这个神器,从头构建 linux 系统,实在太方便了。确定工作目录我们把工作目录固定到/opt/qemu 下,方便后面说明。sudo mkdir

2021-05-23 15:24:20 2202

原创 使用 openocd 调试 STM32F103

使用 openocd 调试 STM32F103背景AWTK 在 STM32 上运行时,默认是使用的 Keil 管理工程。一般买开发板时,厂家提供的都是 keil 工程,移植起来比较方便,上手简单,但是后续维护比较麻烦:AWTK 经常增加新的文件(比如新控件),同步到 keil 很麻烦,每个工程都要修改,文档也需要同步更新。AWTK 的注释是中文,为了保证每个编译器都能正常编译,AWTK 源文件一般使用 UTF-8 With BOM 的编码。如果用 Keil 修改了代码,保存后它把 BOM 给

2021-04-03 09:54:37 5012 8

原创 AWTK Go 语言绑定笔记

Go 语言绑定笔记理论上 AWTK AWTK 已经支持 jerryscript、nodejs、quickjs、lua、python、java、minijvm 和 cpp 等语言的绑定。不过每种语言都有自己的特性,所以每次增加新的语言,也是对 AWTK 绑定机制的考验和完善。这次实现 Go 语言绑定大概花了两天时间。一天时间用来写代码生成器,一天时间用来写 scriptable 为 custom 的函数和示例代码。Go 语言调用 C 语言的函数有些特殊的要求,所以对 AWTK 的部分 API 做来一些扩展

2021-04-02 09:19:26 2242

原创 在 windows 下使用 gcc 编译 AWTK

在 windows 下使用 gcc 编译 AWTK在 windows 下,如果不想使用 Visual C++编译,也可以使用 gcc 编译。下载并安装 mingw64 位系统安装时 architecturex 选择 x86_64。安装之后将 gcc 的路径加入系统环境变量 PATH 中。默认路径如下:C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin修改 awtk_config.py,放

2021-03-16 18:05:15 2258

原创 ZLG 开源 GUI 引擎 AWTK 1.6 发布

ZLG 开源 GUI 引擎 AWTK 1.6 发布一、介绍AWTK全称 Toolkit AnyWhere,是ZLG开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。欢迎广大开发者一起参与开发:生态共建计划。AWTK寓意有两个方面:Toolkit AnyWhere。 ZLG 物联网操作系统 AWorksOS 内置 GUI。AWTK源...

2021-03-09 08:59:16 2592 1

原创 AWTK 调用 Android 应用程序打开指定文件

AWTK 提供 url view 插件。使用第三方应用程序打开指定的URL/文件,包括拨打电话和发送邮件。用法示例:包含头文件#include "url_view/url_view.h"调用方法打开文件 url_view_request("/sdcard/test.png", "image/png"); url_view_request("/sdcard/test.txt", "text/plain"); url_view_request("/sdcard/test.pd

2021-03-06 16:03:53 2167 4

原创 AWTK 的低功耗蓝牙 (BLE) 插件开发笔记

AWTK 的低功耗蓝牙 (BLE) 插件开发笔记BLE 插件的实现还是挺麻烦的,过年期间断断续续的写了 4 天。除了代码量本身不小外 (1500 行+500 行 java),主要还是对 BLE 开发不熟。看了一些资料,这里记个笔记,供新手参考:发送数据发送数据通过写 Characteristic 的值来实现,写 Characteristic 的过程分为两步:先设置 Value。调用 writeCharacteristic 发送数据。之前没有调用 writeCharacteristic,数据

2021-02-16 09:17:45 2231

原创 AWTK 的低功耗蓝牙 (BLE) 插件

BLEAWTK 的低功耗蓝牙 (BLE) 插件包含头文件#include "ble/ble.h"调用方法创建 ble 对象。如: ble_t* ble = ble_create();扫描设备扫描前先要注册 on_device_found 回调函数,每扫描到一个设备就会调用该回调函数。static ret_t ble_main_on_device_found(void* ctx, ble_device_t* device) { ... return

2021-02-15 18:39:17 3181 6

原创 fscript 的 widget 扩展函数

fscript 的 widget 扩展函数1. 介绍fscript 的 widget 扩展函数只能在 widget 的事件处理函数中使用,包括传统的 AWTK 应用程序和 AWTK-MVVM 应用程序的事件处理函数。fscript 和其它主流脚本 (lua/js) 相比,最大的优势就是体积小巧,而且 AWTK 本身依赖于 fscript,所以使用 fscript 增加额外代码可以忽略不计数。在 AWTK 的 UI 文件中直接嵌入 fscript, 有如下优势:在特定情况下,可以极大简化程序的

2021-01-10 09:17:20 2121

原创 AWTK 在 Android 平台实现跨进程服务调用

AWTK 在 Android 平台实现跨进程服务调用前几天,有朋友想在 AWTK 的应用程序中,调用打印机提供的服务,去打印采集到的数据。打印机本身有一个 APP,它提供了一个对外的服务,并附带一个 AIDL 文件。要说这个东西本身也不难,但是要在 AWTK 应用程序中,通过 C 语言函数去调用 java 的函数,再通过 java 的函数去调用另外一个进程的服务,对于只会 C 语言的嵌入式程序员来说,不懂 java 也不懂 android,还绕了几个大弯,那确实太难了。这里用一个 FooBar 的服务

2020-11-21 18:11:14 2399

原创 AWTK fscript 脚本引擎

AWTK fscript 脚本引擎1. 介绍fscript 是一个极简的脚本引擎,借鉴了函数语言中一些思路,主要用于低端嵌入式系统,让用户轻松扩展现有系统,而不需要重新编译和下载固件。特色:小内存。最低开销小于 400 字节。小巧。核心代码 600 行,扩展函数 600 行。灵活。支持多条语句、函数嵌套调用和变量定义。强大。超过 50 个内置函数,支持用 C 语言扩展函数。如果不需要数学函数,可以定义 AWTK_LITE 宏。keil -O1 编译结果: Co

2020-11-21 16:45:45 2462 3

转载 一篇关于broncho的文章(感慨+怀念,转过来存个档),感谢fmddlmyy

谈谈国内开发的Linux手机软件平台Broncho,兼谈Android、Openmoko等1、OpenMoko今年1月份,我曾经调查过Linux手机软件的现状。部分报告可以见我的blog:谈谈智能手机软件(1):概述、谈谈智能手机软件(2):Linux手机软件在此之后,我也看了一段时间OpenMoko。OpenMoko是完全开放、并提供真实样机的Linux手机方案。如果仅就开放性而言,没有其它手机方案可以和它媲美。但说句实话,OpenMoko的界面让我比较失望,我觉得这和正常的手机相差太远了..

2020-10-09 19:59:56 2535 1

原创 AWTK 实时预览插件 (vscode) 工作原理

1. 背景很早就计划写一个 vscode 插件来预览 AWTK 的 UI XML 文件。迟迟没有动手,主要是既不太熟悉 vscode 插件的开发,也没有想清楚这个插件的架构。如何达到期望的目标,同时保证工作量可以接受呢?直到完成了 AWTK 自动测试框架,发现以服务的方式来实现界面预览是最好的选择:不但预览服务的工作可以重用现有的代码,而且可以保证插件本身的代码最小,以后为其它 IDE 增加预览的功能也相当简单。在开发 AWTK 自动测试框架 时,我们顺带实现了 AWTK RESTful HTTP 服

2020-10-05 08:06:48 3383 2

原创 几则安卓开发笔记

几则安卓开发笔记对于熟悉 android 开发的人来说,有些属于常识问题,对于偶尔弄一下 android 的人,却要花很多时间才能搞定。这几天移植车牌识别库到AWTK-ANDROID上,遇到一些问题,这里做个笔记供大家参考:1. 使用外部项目的库1.1 修改 settings.gradle,增加外部库的引用如:include ':openCV'project(':openCV').projectDir = new File(settingsDir, '../../../awtk-lpr/open

2020-09-30 17:18:52 2432 2

原创 GUI 引擎评价指标

GUI 引擎评价指标github 上的开源 GUI 引擎至少有数十个,如何去评估它们的优劣,如何选择你需要的 GUI 引擎?这个是艰巨的任务,每个人的需求不一样,GUI 开发者的意图也不同,很难找到统一的标准去选出最好的 GUI。QT 是最强大的,没有之一,但也不一定适合你。不管怎么样,总有些指标可以提供有价值的参考,尽管这些指标在遇到不同使用的场景,不同的公司背景,不同的个人喜好,它们所占的权重也大不相同。但是并不能抹杀这些指标的价值,关键在于如何根据自己的需要调整它们的比重。在 《这个开源的 6

2020-09-28 09:24:47 2758

原创 鸿蒙“小程序”工作原理研究笔记

1. 介绍自从微信小程序出现以来,各种“小程序”如雨后春笋一般出现。事实证明小程序这种开发方式非常好,鸿蒙 JS UI 框架采用类似的方式也是在意料之中的。一个小程序(在鸿蒙 OS 中,也就是 Ability)由多个页面组成,每个页面由三部分组成:.hml 用来描述界面的元素.css 用来描述界面的风格.js 用来编写处理事件逻辑我们来看个例子:index.hml<div class="container"> <text>{{count}}&l

2020-09-21 17:00:18 4636 2

原创 开源GUI AWTK 1.5 发布

ZLG AWTK 1.5 Release Notes一、介绍AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。欢迎广大开发者一起参与开发:生态共建计划。AWTK 寓意有两个方面:Toolkit AnyWhere。ZLG 物联网操作系统 AWorksOS 内置 GUI。AWTK 源码仓库:主

2020-08-29 11:42:52 2374

原创 awtk-restful-httpd 为嵌入式系统而生的RESTful HTTP 服务框架

awtk-restful-httpd1. 介绍在嵌入式应用程序中,有时需要提供一个 WEB 服务,用于对系统进行远程配置和管理。awtk-restful-httpd 实现了一个 RESTful HTTP 服务框架,可以帮助开发者快速实现 RESTful API 风格的 WEB 服务。主要特色有:小巧。约 3000 行代码。简单。注册自己路由表处理函数即可。易用。内置路由解析功能,并提供简单易用的 JSON 读写 API。内存开销低。正常 REST API 内存需求小于 2K,静态文件内存需求

2020-08-22 16:02:10 2024 1

原创 AWTK WEB 版移植笔记-图片

AWTK WEB 版移植笔记-图片前面我们介绍了,为减小代码的体积,提高解码的速度,我们选择了使用浏览器的图片解码,而不是 stbimage 去解码。实际操作并非那么简单,其中遇到不少问题。浏览器的图片加载是异步的,而 AWTK 的图片加载是同步的。浏览器的图片 Image 在 AWTK 中没法直接表示。AWTK 中的图片名称是抽象的。比如名为 earth 图片,可能是 png、也可能是 jpg 或其它图片格式,这个由资源管理器自动检查。这种方式在浏览器中,会造成大量网络请求,就不太实用

2020-08-22 11:35:38 1665

原创 AWTK WEB 版移植笔记-字体

AWTK WEB 版移植笔记-字体完整的中文字体至少得两三兆,如果编译 WEB 版本时,要带一个完整的中文字体文件,那资源的体积就没法容忍了。解决这个问题的唯一办法就是,缺省字体使用浏览器自带的字体,只有特殊字体才使用应用程序自己的字体。缺省字体使用浏览器自带的字体的前提是,不能使用 SDL 来渲染,因为把 SDL 转换成 WEB 版本后,没法修改里面的代码去使用浏览器的字体。幸好 AWTK 在设计之初,就采用了兼容 HTML5 Canvas 的 2D API,所以渲染这一块我们完全避开了 SDL,而采

2020-08-22 11:34:26 1474

GUI引擎评价指标.pdf

github 上的开源 GUI 引擎至少有数十个,如何去评估它们的优劣,如何选择你需要的 GUI 引擎?这个是艰巨的任务,每个人的需求不一样,GUI 开发者的意图也不同,很难找到统一的标准去选出最好的 GUI。QT 是最强大的,没有之一,但也不一定适合你。在 [这篇文章](https://www.zhihu.com/question/283787183/answer/433510666) 有句话:“商业引擎看起来功能很齐全,但是实际使用起来你就知道有多少坑。” 这句话挺有意思,它即适合游戏引擎,也适合 GUI 引擎。demo 看起来很好,技术看起来很先进,用起来才知道有多少坑!所以事先做一个完整的评估是很有必要的。

2021-03-16

awtk_on_stm32h743iitx_port.pdf

本文档介绍除了AWTK实现基本功能的移植外,还提供了如下功能: * 集成实时操作系统 (RTOS)(腾讯的 TinyOS) * 集成 FATFS 文件系统,访问 SD 卡的数据。 * 实现从文件系统加载应用程序的资源。 * 使用 Sqlite 存储数据。 * 支持 google 拼音输入法。

2020-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除