这几天小米手环特别火,感谢大佬的小程序上传工具,让我可以好好折腾这个设备,在ZeppOS官网找到相关开发教程和资源后,顺便把手环的固件做了一下逆向,发现其有一套算是较为完整的QuickJS环境(下图是固件中系统初始化时加载的js模块)。
因为开发比较简单,开发环境可以在其官网上找到,所以在这介绍一下如何开发
先附上相关链接
ZeppOS API开发文档
做手环的仿真开发首先需要安装模拟器(下载地址),模拟器基于qeum实现(在折腾的过程中发现其貌似存在一个letter Shell,但是我没能成功交互)
详细安装步骤参照:官网安装教程,安装完成后运行效果如下(记得用管理员身份运行)
在整个开发环境的搭建中,模拟器是必须安装的,后期模拟仿真会通过访问本机的127.0.0.1:7650端口进行操作,因为其是必要的仿真环境,随后就可以对编程环境进行配置,官方提供了两种方式进行开发,一种是在线Studio(其实就是浏览器版本的Visual Studio)(在线Studio教程),另一种是本地编译环境zeus(zeus安装教程),详细安装过程就参照官网给的进行配置即可
在线Studio使用很简单,打开Studio网址
选择创建项目,填写项目名称,选择Hello World例子,点击Create
创建完成后会看到如图所示的目录结构
其中pages目录下就是APP每个页面的代码,settings和app-side小米手环7无法使用,不用管就行(Zepp官方开发的时候允许让部分代码在手机上跑,也就是setting和app-side,用来当手环和外界的桥梁,反正我是这么理解的,但是要用这个需要Zepp这个app的开发者模式,小米手环7用的Zepp Life是阉割版,没这功能)
此时我们尝试仿真代码,首先启动simulator(模拟器)
点击Simulator
此时就会出现如下页面
此时回到在线Studio,点击红圈
变绿证明已连接上模拟器(这边建议用Chrome,有时候火狐的CORS策略会影响连接)
此时点击绿三角,窗口右下角提示
并且模拟器的App中出现
此时回到qeum,鼠标点击屏幕(焦点移动到qemu中),按HOME键(这里我卡了将近一天,一直不知道HOME键唤起菜单,之前一直以为自己的环境装的有问题)
此时就能看到我们的APP
点击APP,可以看到日志窗口中出现了内容
不要问我为啥窗口上没显示(黑屏),问就是看源码,这个例子压根没渲染控件
我们手动改一下代码
加几行
改成这样,在运行一次
成功渲染显示
然后写好的代码工程如何导出?(看图,懂~?)
下载下来之后,重命名成zip,解压
再解压
这个device.zip就是咱们要的包,直接用大佬们的app上传到手环上就能跑了。
都到这了,就不用我说了吧,极客们,开始干活吧
对了,稍微注意一下,因为官方模拟中是不支持小米手环7的,所以在设计控件的时候,记得限制宽高
ps:我选用了本地ZEUS方式安装环境(在线环境有时候会出bug,导致编译失败,但是在线Studio提供了一个代码仓库,可以在线保存),也支持vscode插件,详细配置过程按照官网教程即可,这里就不再赘述了
因为开发比较简单,开发环境可以在其官网上找到,所以在这介绍一下如何开发
先附上相关链接
ZeppOS API开发文档
做手环的仿真开发首先需要安装模拟器(下载地址),模拟器基于qeum实现(在折腾的过程中发现其貌似存在一个letter Shell,但是我没能成功交互)
详细安装步骤参照:官网安装教程,安装完成后运行效果如下(记得用管理员身份运行)
在整个开发环境的搭建中,模拟器是必须安装的,后期模拟仿真会通过访问本机的127.0.0.1:7650端口进行操作,因为其是必要的仿真环境,随后就可以对编程环境进行配置,官方提供了两种方式进行开发,一种是在线Studio(其实就是浏览器版本的Visual Studio)(在线Studio教程),另一种是本地编译环境zeus(zeus安装教程),详细安装过程就参照官网给的进行配置即可
在线Studio使用很简单,打开Studio网址
选择创建项目,填写项目名称,选择Hello World例子,点击Create
创建完成后会看到如图所示的目录结构
其中pages目录下就是APP每个页面的代码,settings和app-side小米手环7无法使用,不用管就行(Zepp官方开发的时候允许让部分代码在手机上跑,也就是setting和app-side,用来当手环和外界的桥梁,反正我是这么理解的,但是要用这个需要Zepp这个app的开发者模式,小米手环7用的Zepp Life是阉割版,没这功能)
此时我们尝试仿真代码,首先启动simulator(模拟器)
点击Simulator
此时就会出现如下页面
此时回到在线Studio,点击红圈
变绿证明已连接上模拟器(这边建议用Chrome,有时候火狐的CORS策略会影响连接)
此时点击绿三角,窗口右下角提示
并且模拟器的App中出现
此时回到qeum,鼠标点击屏幕(焦点移动到qemu中),按HOME键(这里我卡了将近一天,一直不知道HOME键唤起菜单,之前一直以为自己的环境装的有问题)
此时就能看到我们的APP
点击APP,可以看到日志窗口中出现了内容
不要问我为啥窗口上没显示(黑屏),问就是看源码,这个例子压根没渲染控件
我们手动改一下代码
加几行
JavaScript:
const text = hmUI.createWidget(hmUI.widget.TEXT, {
x: 96,
y: 120,
w: 288,
h: 46,
color: 0xffffff,
text_size: 36,
align_h: hmUI.align.CENTER_H,
align_v: hmUI.align.CENTER_V,
text_style: hmUI.text_style.NONE,
text: 'HELLO NEKOKAMI'
})
成功渲染显示
然后写好的代码工程如何导出?(看图,懂~?)
下载下来之后,重命名成zip,解压
再解压
这个device.zip就是咱们要的包,直接用大佬们的app上传到手环上就能跑了。
都到这了,就不用我说了吧,极客们,开始干活吧
对了,稍微注意一下,因为官方模拟中是不支持小米手环7的,所以在设计控件的时候,记得限制宽高
ps:我选用了本地ZEUS方式安装环境(在线环境有时候会出bug,导致编译失败,但是在线Studio提供了一个代码仓库,可以在线保存),也支持vscode插件,详细配置过程按照官网教程即可,这里就不再赘述了