跳转到正文

佳明自定义表盘


Garmin / Connect IQ 资源库

官方入口

Monkey C

重点 API:

  • Toybox.System
  • Toybox.Application
  • Toybox.WatchUi
  • Toybox.Graphics
  • Toybox.Time
  • Toybox.Time.Gregorian
  • Toybox.ActivityMonitor
  • Toybox.UserProfile
  • Toybox.Sensor
  • Toybox.Application.Storage

Watch Face

这是你的项目核心。

重点关注:

WatchFace
WatchFaceView
onUpdate()
onPartialUpdate()

High Power Mode
Low Power Mode
Always-On
AMOLED AOD

屏幕刷新限制
功耗限制
内存限制
Partial Update
多设备适配

图形与 UI

主要能力:

drawText
drawBitmap

drawLine
drawRectangle
drawCircle
drawArc

fillRectangle
fillCircle

Font
Bitmap
Color
Layout
Drawable

你的表盘绝大部分视觉效果,都会在这里完成。


数据 API

运动与健康

可以研究:

Steps
Calories
Distance
Floors

Heart Rate
Stress
Body Battery

Sleep
Active Minutes
Pulse Ox

Barometer
Altitude
GPS
Temperature

需要注意的是:不同 Garmin 设备支持的数据和 API 能力不同。


时间

主要用于:

时间
日期
星期

12 / 24 小时制
时区
夏令时
时间格式化

设备适配

需要理解:

圆形屏幕
方形屏幕

MIP
AMOLED

不同分辨率
不同颜色数量

Touch
Buttons

Device Capability

设置与存储

未来如果你的表盘支持:

主题颜色
字体
数据字段
布局
显示秒数
隐藏心率
隐藏步数

主要会用到这些。


VS Code / 开发工具

工具链基本就是:

VS Code
   +
Monkey C Extension
   +
Connect IQ SDK
   +
Simulator
   +
真实 Garmin 设备

性能 / 功耗

这个项目里特别值得关注:

CPU 时间

内存

Bitmap 占用

Font 占用

GC

绘制次数

每秒刷新

Partial Update

Low Power

Always-On

AMOLED Burn-in

这部分其实会是这个项目最有意思的地方。

因为你会真正遇到:

不是代码能不能运行,而是能不能在一块低功耗设备上长期运行。

官方示例与代码

建议从官方 GitHub 生态和 SDK 自带 Samples 入手:

GitHub 搜索关键词:

language:Monkey-C
topic:garmin
topic:connect-iq
watchface
garmin-watchface
connect-iq-watchface

可以重点研究:

manifest.xml

monkey.jungle

source/

resources/

WatchFaceView

onUpdate()

drawText()

drawBitmap()

设备兼容配置

发布

最终流程:

开发
  ↓
Simulator
  ↓
真机测试
  ↓
生成发布包
  ↓
上传 Connect IQ
  ↓
审核
  ↓
Connect IQ Store

Garmin
做一个自定义佳明表盘应用