发布时间:2018-11-15 已阅读:次
nw.js是使用web语言开发桌面图形应用程序的优秀编程环境,近期已经由龙芯开发者移植到龙芯电脑上。传统桌面应用开发要求使用c/c 这样的高级编程语言以及qt等专门的图形库。有了nw.js,可以将现有web开发技术运用到桌面编程,仅仅使用html、css和javascript就能开发桌面图形应用,达到现代界面体验水平。这种方案的最大优势还在于,开发出来的应用程序是完全平台无关的脚本语言,所以能够在龙芯和x86等所有cpu,以及windows、mac和linux等所有操作系统中跨平台运行,显著减少了应用开发、维护和迁移的时间。本文介绍nw.js在龙芯平台上的移植过程,为龙芯平台上的桌面图形应用程序提供参考,推进龙芯生态建设。
nw.js是一种跨平台桌面应用软件开发平台,原来的项目名称是node-webkit。这是一种支持使用所有web技术编写应用程序界面的新方法。简单来说nw.js就是使用html、css、javascript语言编写在桌面端运行的程序界面。
nw.js主要具备如下特性:
1. 使用web技术(html5, css3和webgl)编写本地应用程序
2. 完全支持浏览器中的所有功能
3. 完全支持node.js api和所有第三方模块
4. 直接从dom和web workers调用node.js模块
5. javascript源代码保护
6. 适用于linux,mac os x和windows
下图说明“nw.js能做什么”。
下图说明“怎么用nw.js完成任务”的问题。
$ nw . |
$ git clone $ export path=$path:$home/depot_tools-dir |
$ gclient config --name=src |
$ gclient sync --with_branch_heads |
$ export gn_configs={ is_debug = false is_clang = false is_component_ffmpeg = true use_sysroot = false use_gold = false proprietary_codecs = true enable_widevine = false fatal_linker_warnings = false link_pulseaudio = true treat_warnings_as_errors = false nwjs_sdk = false } |
$ gn gen out/nw --args="${gn_config[*]}" |
$ ninja-build -c out/nw nwjs |
编译前需要进行如下配置:
$ export gyp_defines="target_arch="mips64el" debug=false clang=false sysroot=false host_arch="mips64el"" $ gyp_chromium_no_action=0 ./build/gyp_chromium -i third_party/node-nw/common.gypi -d building_nw=1 third_party/node-nw/node.gyp |
编译:
$ ninja-build -c out/release node $ ninja -c out/nw copy_node |
5、完成nw.js整体移植适配,成功启动nw.js
$ cd out/nw $ ./nw |
在龙芯电脑上运行nw.js的默认界面如下图:
至此,nw.js在龙芯上可以成功启动了!
为了方便龙芯开发者使用nw.js,作者已经在龙芯社区版操作系统loongnix中制作了二进制成品rpm包,后面会上传到网络源中。开发者不再需要从头执行编译过程,只需要通过下面的命令直接安装nw.js的软件包(需要使用管理员权限执行):
# yum install nwjs |
就样就可以方便的进行nw.js应用开发。
nw.js适配过程中总体来说是比较顺利的,主要的问题还是在于chromium以及node的编译适配,而这些方面龙芯已有充足的经验,所以这次的适配过程没有遇到无法解决的问题,代码改动量很少,基本上实现了无障碍迁移。
通过本文的nw.js的适配过程表明,龙芯软件生态环境已经非常完善,在打造龙芯平台软件丰富性的过程中,龙芯公司已经走出了一条坚实的道路,希望产业链能够一起把龙芯的软件生态完善起来!