16 李先静

尚未进行身份认证

Only those who attempt the absurd can achieve the impossible.

等级
TA的排名 92

NanoVG 优化笔记:性能提高5倍的秘密

NanoVG优化笔记nanovg正如其名称所示的那样,是一个非常小巧的矢量绘图函数库。相比cairo和skia的数十万行代码,nanovg不足5000行的C语言代码,称为nano也是名副其实了。nanovg的设计、接口和代码质量都堪称典范,唯一美中不足的就是性能不太理想。特别是在Android的低端机型和大屏幕的机型上,一个简单的界面每秒只能画十几帧。最近我把AWTK移植到Android上时,...

2019-08-06 10:54:01

国产开源 GUI 引擎AWTK 1.2 发布

AWTK全称为ToolkitAnyWhere,是ZLG倾心打造的一套基于C语言开发的GUI框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎,并支持跨平台同步开发,一次编程,终生使用。AWTK当前升级到了v1.2版本,相对于v1.1,我们完善了许多细节,增加了部分特性、控件以及API等,让AWTK支持更多的功能和更炫酷的效果。**  1....

2019-08-06 10:52:23

AWTK WEB版移植笔记-序

AWTKWEB版移植笔记-序一、WEB版本对AWTK意义AWTK-WEB版本对AWTK是很重要的,主要原因有:让用C语言开发的AWTK应用程序,在不需要修改源码的情况下,能在浏览器中运行。这样做的好主要在于,可以很方便的向客户展示项目。你只需分享一个链接,客户就可以在浏览器中打开,并看到实际的运行效果,这是一种非常棒的体验。把AWTK编译成一个JS库,你可以用JS开发AWTK应用...

2019-07-10 10:55:48

集成 armcc 到 scons

集成armcc到scons集成armcc到scons中并不是件容易的事情,如果只是修改CC/CXX/AR/LINK几个环境变量,scons会用VisualC++的参数调用方式,比如-c成了/c,导致armcc无法识别。花了半天时间去阅读scons的源码后,在SCons/Tool目录下发现,每种编译器都有一个类似插件的tool,目测没有发现armcc的...

2019-06-28 16:49:03

物联网 GUI 开发套件 AWTK-IOTJS

一、介绍关于iotjsiotjs是三星开源的javascript物联网开发平台。它为javascript应用程序提供了访问硬件、网络、文件系统和异步化的能力,功能类似于nodejs,但无论是代码体积还是内存需求,iotjs都要小很多,是用javascript开发iot设备应用程序的首选。关于AWTKAWTK全称ToolkitAn...

2019-06-18 14:19:57

集成 AWTK 到 iotjs

集成AWTK到iotjsiotjs是三星开源的javascript物联网开发平台。它为javascript应用程序提供了访问硬件、网络、文件系统和异步化的能力,功能类似于nodejs,但无论是代码体积还是内存需求,iotjs都要小很多,是用javascript开发iot设备应用程序的首选。AWTK全称ToolkitAnyWhere,是ZLG开发的开源...

2019-06-10 17:20:08

为 iotjs 开发原生模块

为iotjs开发原生模块iotjs是三星开源的javascript物联网开发平台。它为javascript应用程序提供了访问硬件、网络、文件系统和异步化的能力,功能类似于nodejs,但无论是代码体积还是内存需求,iotjs都要小很多,是用javascript开发iot设备应用程序的首选。AWTK全称ToolkitAnyWhere,是ZLG开发的开源...

2019-06-07 12:46:21

ZLG开源GUI引擎AWTK发布1.1版本

ZLG开源GUI引擎AWTK发布1.1版本一、介绍AWTK全称ToolkitAnyWhere,是ZLG开发的开源GUI引擎,旨在为嵌入式系统、WEB、各种小程序、手机和PC打造的通用GUI引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎。AWTK寓意有两个方面:ToolkitAnyWhere。ZLG物联网操作系统AWorks内置GUI。AWTK源...

2019-04-25 09:19:52

AWTK javascript绑定原理

AWTKjavascript绑定原理一、基本架构Javascript的绑定方法和lua的绑定方法有些不同,主要原因是javascript的引擎有很多种,比如嵌入式系统常用的jerryscript和PC上常用的V8。不同的引擎提供注册C/C++函数的能力不同,所以在绑定时我们只对引擎做一个最低能力的要求:提供注册全局函数的能力。我们把绑定的代码分两层:引擎相关的代码负责把awtk的函数...

2019-04-24 15:14:11

AWTK实现自定义软键盘的方法

有时需要把软键盘嵌入到窗口内部(比如计算器和密码输入等),这时可以使用自定义软键盘。一、编辑器设置input_type为"custom"(它会禁止内置的软键盘)。<editx="c"y="10"w="90%"h="30"focus="true"input_type="custom"text=""/>

2019-03-14 11:39:43

AWTK是如何保证代码质量的

AWTK是如何保证代码质量的这是不少朋友关心的问题,这里统一回复一下。我们在保证AWTK的代码质量方面,主要采用了下列措施:架构设计。软件架构对代码的质量有决定性的影响,但好的架构不是预先设计出来的,而是在应对各种需求和变化时,不断完善和优化出来的。常常见到,有人花十年时间打造一件绝世作品,也有人花几年时间让一套软件变成不可维护,这就是说明软件架构是在不断变化的,是变好还是变坏,则取决于...

2019-01-18 16:49:51

AWTK(Toolkit AnyWhere): 为嵌入式、手机和桌面开发的通用GUI

AWTK=ToolkitAnyWhereAWTK是吸取了FTK和CanTK的精华,重新开发的GUI,计划分以下几个阶段实施:第一阶段专注于嵌入式系统,到达并超越TouchGfx/EmbeddedWizard的功能。计划在2018/9底完成。第二阶段用AWTK本身开发界面编辑器(或组态软件IDE),从而验证AWTK支持PC软件开发的能力。计划在2018年底完成。第三阶段支持Mo...

2018-07-08 12:19:42

SDL + OpenGL使用笔记

SDL+OpenGL使用笔记LFTK是一个嵌入式GUI,为了开发方便,需要提供PC运行环境。我选择了SDL2+OpenGL+nanovg来实现底层的渲染,让LFTK可以运行在各个平台上。GLFW+OpenGL也是一个不错的选择,但是GLFW没有Android和iOS的移植,而且没有提供原生输入法的支持。LFTK虽然最初是为嵌入式系统而生,但也有一个小目标:可以用于开发嵌入式系统,也可以开发PC

2018-04-14 08:10:38

用Qemu运行/调试arm linux

用Qemu运行/调试armlinux用Qemu运行/调试armlinux,这事情干过好几次了,久了就忘记了,每次都要重新去查资料,浪费不少时间。这次把整个过程弄成个脚本,放到github上,需要是拿下来运行一下即可,方便自己也方便有需要的朋友。这里解释一下脚本的内容(运行系统Ubuntu16.04LTS):1.设置一些环境变量,可以根据自己需要修改。exportAR

2018-01-05 18:47:24

开源固件下载工具

开发板固件下载工具:开发板固件下载工具:https://github.com/ZHIYUAN-Electronics/zyDownloader主要特色:采用自描述的插件式设计,支持不同的下载方式,增加新的下载方式不需要修改界面。界面用JS开发,实现用C/C++开发。界面和实现完全分离,同时支持图形界面和命令行界面。

2017-02-05 20:29:39

Makefile/cmake/node-gyp中区分不同平台的方法

最近用QTK开发一个下载(下载到开发板)工具,同时用到了Makefile/cmake和node-gyp,而且都要针对不同平台做不同的处理。这里做个记录,以备以后有需要时查阅。

2017-01-08 18:08:21

node-bindings无法在Electron中使用的解决办法

node-bindings非常好用,但是在Electron中无法使用,我查了一下,是因为fileName以file://开头导致无法定位动态库的根目录。已经提交给作者了,可以临时修改一下node_modules/bindings/bindings.js。

2017-01-08 11:27:02

用C++扩展Electron(node-ffi版)

用C++扩展Electron(node-ffi版)Electron内置的node.js,理论上可以通过扩展node.js来扩展Electron。但是通常由于系统中存在的node.js与Electron内置的node.js的版本号不同,给node.js编译的扩展是无法在Electron中使用的,需要一些特殊处理才行。

2016-12-24 07:40:59

用C++扩展Electron(node-nan版)

用C++扩展Electron(node-nan版)Electron内置的node.js,理论上可以通过扩展node.js来扩展Electron。但是通常由于系统中存在的node.js与Electron内置的node.js的版本号不同,给node.js编译的扩展是无法在Electron中使用的,需要一些特殊处理才行。

2016-12-24 07:36:44

用C++扩展node.js(node-ffi版)

用C++扩展node.js(node-ffi版)

2016-12-24 07:28:13

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。