• 游客,欢迎来到米坛社区。
    米坛社区是大型中文智能穿戴设备交流社区,在这里交流你的极客思想,共同建造我们的智能世界
    为了更加方便的获取支持与帮助,请加入米坛社区官方QQ频道

米环7教程 表盘,小程序的构建工具zpm

Lisk

LV4
🔥社区作者
普通成员
UID
156159
2022-11-11
35
347
想必大家对于米7的小程序以及表盘已经了解,下面介绍编译文件与实际文件的相关内容

编译过程Zeppos提供的zeus内部使用的是zpm,主要分为图片,代码,以及quickjs(可选)部分

一、图片
图片部分zpm采用的是sharp,经过一堆算法最后完成转换

二、文件

js代码部分采用的是esbuild,是一个编译工具,把js进行弱编译


通过对比发现Page()是一个宏,编译后交给DeviceRuntimeCore.Page去注册程序相关事件,而$$xxx$$则是zeppos内部的api调用(吐槽:为什么不直接实现编译前的),而hmUI等是编译后真实存在的api

对于import,Zeppos是不支持原生支持的,zpm会把引入js文件按需编译进去

对于i18n的.po文件,编译后则会变成
languageTable,使用DeviceRuntimeCore.HmUtils.gettextFactory为$$app$$.globals添加一个gettext函数,完成语言适配

三、quickjs

对于quickjs部分这里引用Zeppos关于runtime的type字段的解释


属性必填描述
type运行时加载小程序的加载器类型,支持以下值: 0 当前值是默认值。表示该小程序用 QuickJS-js 解释器的加载器加载小程序,后缀名.js ;1 表示该小程序用 C 解释器的加载器加载小程序,后缀名 .c ;2 表示该小程序用 QuickJS-bytecode 解释器的加载器加载小程序,后缀名 .bin

而zpm可以通过
--jsc Compile JS file to C or bin, [--jsc c|bin] [默认值: ""]

来控制quickjs的使用,如果指定--jsc=c/bin,编译后会生成.js与.c/.bin文件并在app.json自动填上type

四、.zad&.zpk

通过file命令得知文件头
Zip archive data, at least v1.0 to extract, compression method=store

对于.zab与.zpk都是一样,最内部则是app-side.zip与device.zip,device.zip就是安装的.bin,而app-side由于众所周知的原因无法使用,在这里不做赘述
 
最后编辑:

wuhaiqi

𝗟𝗩 114514
🔥社区作者
普通成员
UID
114920
2022-08-26
189
631
福建 · 三明
想必大家对于米7的小程序以及表盘已经了解,下面介绍编译文件与实际文件的相关内容

编译过程Zeppos提供的zeus内部使用的是zpm,主要分为图片,代码,以及quickjs(可选)部分

一、图片
图片部分zpm采用的是sharp,经过一堆算法最后完成转换

二、文件

js代码部分采用的是esbuild,是一个编译工具,把js进行弱编译


通过对比发现Page()是一个宏,编译后交给DeviceRuntimeCore.Page去注册程序相关事件,而$$xxx$$则是zeppos内部的api调用(吐槽:为什么不直接实现编译前的),而hmUI等是编译后真实存在的api

对于import,Zeppos是不支持原生支持的,zpm会把引入js文件按需编译进去

对于i18n的.po文件,编译后则会变成
languageTable,使用DeviceRuntimeCore.HmUtils.gettextFactory为$$app$$.globals添加一个gettext函数,完成语言适配

三、quickjs

对于quickjs部分这里引用Zeppos关于runtime的type字段的解释


属性必填描述
type运行时加载小程序的加载器类型,支持以下值: 0 当前值是默认值。表示该小程序用 QuickJS-js 解释器的加载器加载小程序,后缀名.js ;1 表示该小程序用 C 解释器的加载器加载小程序,后缀名 .c ;2 表示该小程序用 QuickJS-bytecode 解释器的加载器加载小程序,后缀名 .bin

而zpm可以通过
--jsc Compile JS file to C or bin, [--jsc c|bin] [默认值: ""]

来控制quickjs的使用,如果指定--jsc=c/bin,编译后会生成.js与.c/.bin文件并在app.json自动填上type

四、.zad&.zpk

通过file命令得知文件头
Zip archive data, at least v1.0 to extract, compression method=store

对于.zad与.zpk都是一样,最内部则是app-side.zip与device.zip,device.zip就是安装的.bin,而app-side由于众所周知的原因无法使用,在这里不做赘述
......好像...是zab吧?
 

*这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责