
Giới thiệu
Đa số người dùng mua smartwatch về chỉ để làm vài việc quen thuộc: xem giờ, đếm bước chân, check thông báo rồi mang đi sạc. Nhưng nếu bạn đang sở hữu một chiếc Amazfit thế hệ mới, bạn thực sự đang đeo một “cỗ máy tính thu nhỏ” cực kỳ mở trên cổ tay.
Hệ điều hành Zepp OS của Amazfit không hề tù túng như mọi người nghĩ. Ngược lại, nó cung cấp một sân chơi rất rộng cho cả những “Power User” thích nghịch tính năng ẩn lẫn những Developer muốn tự tay xây dựng ứng dụng (Mini Program) cho riêng mình.
Bài viết này sẽ đưa bạn đi từ những trò nghịch ngợm phần mềm cơ bản đến thế giới lập trình ứng dụng trên thiết bị đeo bằng JavaScript.
Phần 1: Khi “Power User” vào cuộc
Trước khi nói về code, hãy xem chúng ta có thể làm gì với chiếc Amazfit mà không cần lập trình, chỉ bằng cách sử dụng các công cụ từ cộng đồng.
1. Phá vỡ giới hạn với App bên thứ ba
Nếu bạn cảm thấy ứng dụng Zepp chính chủ có phần quá “hiền”, hãy thử chuyển sang sử dụng Notify for Amazfit. Đây là ứng dụng “phải có” của dân vọc vạch. Nó mở khóa hàng loạt tính năng mà nhà sản xuất ẩn đi:
- Custom nút bấm vật lý: Biến nút cứng trên đồng hồ thành remote chụp ảnh, nút bỏ qua bài hát trên Spotify, hoặc nút kích hoạt ghi âm bí mật trên điện thoại.
- Sửa lỗi hiển thị: Hỗ trợ sửa lỗi font chữ, hiển thị đầy đủ icon/emoji mà app mặc định thường bỏ qua.
2. Tự động hóa cuộc sống với Tasker và MacroDroid
Bằng cách kết nối tín hiệu từ đồng hồ (thông qua Notify) với các ứng dụng tự động hóa như Tasker hay MacroDroid trên Android, chiếc Amazfit của bạn sẽ trở thành một chiếc điều khiển vạn năng:
Ý tưởng thực tế: Bạn thiết lập một chuỗi nhấn nút trên đồng hồ (ví dụ: nhấn đúp nút nguồn). Ngay lập tức, điện thoại sẽ nhận lệnh và kích hoạt hệ thống nhà thông minh để tắt toàn bộ đèn khi bạn chuẩn bị đi ngủ.
Phần 2: Hệ điều hành Zepp OS – Sức mạnh từ sự tối giản
Nếu muốn lấn sân sang việc tự tay tạo ra ứng dụng cho đồng hồ, bạn cần hiểu chiếc Amazfit của mình thực chất đang chạy cái gì bên trong.
Khác với Apple Watch chạy watchOS hay Samsung chạy WearOS (vốn ngốn phần cứng khủng và pin chỉ được 1–2 ngày), Amazfit sử dụng Zepp OS dựa trên nền tảng RTOS (Real-Time Operating System – Hệ điều hành thời gian thực).
| Đặc tính | WearOS / watchOS | Zepp OS (RTOS) |
| Dung lượng OS | Lên đến vài GB | Chỉ vài Megabyte |
| Yêu cầu Phần cứng | Chip đa nhân, RAM tối thiểu 1-2GB | Chip xử lý siêu nhỏ, RAM vài MB |
| Thời lượng Pin | 1 – 2 ngày | 7 – 14 ngày |
| Cơ chế chạy app | Chạy tiến trình nặng trực tiếp (Native) | Chạy Tiểu ứng dụng (Mini Program) |
Nhờ kiến trúc RTOS, Zepp OS xử lý các tác vụ cực kỳ nhanh với độ trễ gần như bằng không, đồng thời giữ cho thời lượng pin của thiết bị dài ở mức ấn tượng.
Kiến trúc 3 thành phần của một “Mini Program”
Để không làm quá tải phần cứng mỏng manh của đồng hồ, ứng dụng trên Zepp OS được thiết kế theo mô hình Mini Program (tương tự như cách hoạt động của Zalo Mini App hay WeChat Mini Program). Một ứng dụng đầy đủ thường bao gồm 3 lớp:
- Device App (Bắt buộc): Chạy trực tiếp trên đồng hồ. Lớp này chỉ chịu trách nhiệm vẽ giao diện (UI) và nhận tương tác từ người dùng.
- Side Service (Dịch vụ chạy ngầm): Chạy ngầm bên trong ứng dụng Zepp trên điện thoại của bạn. Vì đồng hồ không thể xử lý các tác vụ mạng quá nặng, Side Service sẽ đóng vai trò kết nối Internet, gọi API lấy dữ liệu (như giá vàng, thời tiết, tin tức) rồi nén lại, đẩy qua Bluetooth cho đồng hồ hiển thị.
- Settings App: Trang cấu hình hiển thị trên điện thoại để người dùng nhập thông tin cài đặt (ví dụ: nhập API key, đổi màu giao diện).

Phần 3: Lập trình Amazfit với JavaScript
Tin vui cho các Web Developer: Bạn không cần học C/C++ hay các ngôn ngữ nhúng phức tạp để làm app cho Amazfit. Ngôn ngữ cốt lõi của Zepp OS chính là JavaScript (ES6+).
Hệ điều hành tích hợp một JavaScript Engine siêu nhẹ để thông dịch code trực tiếp trên chip đồng hồ. Cách tổ chức dự án cũng rất quen thuộc với file cấu hình cấu trúc hệ thống và quyền hạn dưới dạng app.json.
Tuy nhiên, có một điểm khác biệt lớn: Bạn không thể dùng HTML và CSS để vẽ giao diện. Thay vào đó, bạn sẽ sử dụng bộ API giao diện của hãng (hmUI) để khởi tạo các Widget theo tư duy kéo tọa độ và Flex Layout.
// Ví dụ tạo một nút bấm đơn giản trên màn hình đồng hồ
const button = hmUI.createWidget(hmUI.widget.BUTTON, {
x: 40,
y: 120,
w: 160,
h: 50,
text: 'Click Me!',
click_func: () => {
console.log('Button clicked!');
}
});Phần 4: Làm Thế Nào Để Bắt Đầu “Code”?
Quy trình thiết lập môi trường để viết và cài thử ứng dụng lên chiếc đồng hồ của bạn thực ra rất đơn giản và hoàn toàn miễn phí.
Bước 1: Cài đặt công cụ nền tảng:
Cài đặt Node.js trên máy tính của bạn và sử dụng một trình soạn thảo mã nguồn phổ biến như Visual Studio Code.
Bước 2: Cài đặt Zeus CLI:
Mở terminal và cài đặt bộ công cụ dòng lệnh chính thức của hãng thông qua lệnh npm install -g @zeppos/zeus-cli. Đây là công cụ giúp bạn khởi tạo, build và đóng gói ứng dụng.
Bước 3: Kích hoạt Developer Mode:
Trên điện thoại, mở app Zepp -> Hồ sơ -> Cài đặt -> Giới thiệu và nhấn liên tục vào logo Zepp cho đến khi chế độ nhà phát triển xuất hiện. Sau đó, vào mục vừa xuất hiện để bật Kích hoạt chế độ nhà phát triển trên thiết bị.
Bước 4: Kết nối và Sideload:
Dùng lệnh zeus dev trên máy tính để tạo một mã QR Code chứa file build của ứng dụng. Dùng app Zepp trên điện thoại quét mã này để cài đặt (sideload) trực tiếp ứng dụng vừa viết lên đồng hồ qua Bluetooth.

Demo ứng dụng “Hello World” trên Zepp OS
1. Cấu trúc thư mục dự án (Directory Structure)
Khi bạn khởi tạo một project trống, cấu trúc tối giản nhất sẽ trông như thế này:
hello-world/
├── app.json # File cấu hình cấu trúc và thông tin ứng dụng
├── app.js # File quản lý vòng đời (Lifecycle) của toàn bộ ứng dụng
├── assets/ # Thư mục chứa hình ảnh, icon (.png)
│ └── icon.png # Icon hiển thị của app trên menu đồng hồ
└── page/ # Thư mục chứa các trang giao diện
└── index.js # Giao diện và logic chính của màn hình đầu tiên2. Chi tiết mã nguồn các file
File app.json (Cấu hình hệ thống)
File này khai báo tên ứng dụng, ID độc nhất, icon và trang đầu tiên sẽ được tải lên khi mở app.
{
"app": {
"bundleId": "com.yourname.helloworld",
"version": {
"versionName": "1.0.0",
"versionCode": 1
},
"icon": "icon.png",
"appType": "app"
},
"permissions": [],
"targets": {
"watch": {
"module": {
"page": {
"pages": [
"page/index"
]
}
}
}
}
}File app.js (Vòng đời của App)
File này dùng để quản lý các sự kiện khi app được bật lên (onCreate) hoặc khi app bị tắt đi (onDestroy). Với một app cơ bản, bạn chỉ cần khai báo khung như sau:
App({
onCreate(options) {
console.log('Ứng dụng Hello World đã khởi chạy!');
},
onDestroy(options) {
console.log('Ứng dụng đã bị đóng.');
}
})File page/index.js (Giao diện hiển thị)
Đây là nơi bạn thực sự “vẽ” chữ “Hello World” lên màn hình đồng hồ. Chúng ta sẽ sử dụng bộ công cụ hmUI được tích hợp sẵn của Zepp OS.
Page({
// Hàm build() tự động chạy khi trang này được nạp lên màn hình
build() {
console.log('Đang vẽ giao diện trang index...');
// Tạo một Widget hiển thị Văn bản (TEXT)
hmUI.createWidget(hmUI.widget.TEXT, {
x: 0, // Tọa độ X bắt đầu từ mép trái màn hình
y: 160, // Tọa độ Y (đẩy chữ xuống khoảng giữa màn hình)
w: 480, // Chiều rộng vùng text (phủ toàn bộ chiều rộng màn hình)
h: 60, // Chiều cao vùng text
text: 'Hello World!', // Nội dung hiển thị
text_size: 36, // Kích thước chữ
color: 0xffffff, // Màu chữ (Màu trắng - định dạng Hex)
// Căn lề chữ vào chính giữa màn hình (theo cả chiều dọc lẫn chiều ngang)
align_h: hmUI.align.CENTER_H,
align_v: hmUI.align.CENTER_V
});
},
// Hàm chạy khi người dùng thoát khỏi trang này
onDestroy() {
console.log('Trang index đã bị hủy.');
}
});3. Biên dịch và chạy
Mở Terminal (hoặc CMD) tại thư mục đó và chạy lệnh:
zeus devTrình biên dịch sẽ kiểm tra lỗi và tạo ra một mã QR ngay trên màn hình máy tính của bạn.
Mở app Zepp trên điện thoại, vào mục Developer, chọn Quét mã QR để đồng hồ tự động tải ứng dụng này về qua Bluetooth và khởi chạy trực tiếp trên cổ tay của bạn!
Lời Kết
Amazfit không chỉ là một thiết bị theo dõi sức khỏe thụ động. Nhờ kiến trúc Zepp OS thông minh và việc hỗ trợ hoàn hảo cho ngôn ngữ JavaScript, nó đã trở thành một nền tảng tuyệt vời cho những ai yêu thích việc làm chủ thiết bị công nghệ của mình. Dù bạn chỉ muốn tinh chỉnh cách đồng hồ hoạt động hay muốn xây dựng một ứng dụng hoàn chỉnh cho cộng đồng, ranh giới duy nhất lúc này chỉ là ý tưởng của bạn.

