HarmonyOS: nó là gì, kiến trúc hệ thống và phát triển trên ArkUI

Tác giả: IT Sectr Đã đăng: 2026-02-07 Thời gian đọc: 11 phút

HarmonyOS là hệ điều hành độc quyền của Huawei được xây dựng trên nhân vi phân tán hỗ trợ kiến trúc đa nền tảng. Phát triển ứng dụng được thực hiện bằng ArkTS và C++ trong môi trường DevEco Studio với framework ArkUI. Hệ thống được thiết kế để tích hợp liền mạch điện thoại thông minh, máy tính bảng, đồng hồ và thiết bị IoT. Theo Huawei, HarmonyOS được cài đặt trên hơn 700 triệu thiết bị trên toàn thế giới.

Những điểm chính

  • HarmonyOS — HĐH phân tán của Huawei với nhân vi riêng và kiến trúc đa thiết bị
  • ArkTS — ngôn ngữ phát triển chính dựa trên TypeScript cho hệ sinh thái HarmonyOS
  • ArkUI — framework UI khai báo tương tự SwiftUI và Jetpack Compose
  • DevEco Studio — IDE chính thức dựa trên IntelliJ với trình giả lập và Preview
  • Kiến trúc phân tán cho phép ứng dụng chạy trên nhiều thiết bị cùng lúc

HarmonyOS là gì?

HarmonyOS là hệ điều hành phân tán được phát triển bởi Huawei và lần đầu tiên được công bố vào năm 2019 như một phản ứng đối với việc hạn chế quyền truy cập vào dịch vụ Google trên các thiết bị mới của công ty. HarmonyOS được xây dựng trên nhân vi riêng, khác với Linux, và được thiết kế để hoạt động liền mạch giữa các thiết bị: điện thoại thông minh, máy tính bảng, đồng hồ thông minh, tivi, hệ thống ô tô và thiết bị IoT.

Theo Huawei (Báo cáo Hệ sinh thái HarmonyOS, 2026), hệ thống được cài đặt trên hơn 700 triệu thiết bị, bao gồm 300 triệu điện thoại thông minh. Thị trường Trung Quốc chiếm 95% số lần cài đặt. Bắt đầu từ HarmonyOS 5.0 (NEXT, 2024), hệ thống đã hoàn toàn từ bỏ tương thích với Android AOSP — tất cả ứng dụng phải được viết bằng ArkTS hoặc C++ sử dụng ArkUI.

Tính năng chính của HarmonyOS là kiến trúc phân tán: một ứng dụng có thể chạy trên nhiều thiết bị cùng lúc, di chuyển giao diện giữa các màn hình. Ví dụ: người dùng bắt đầu điều hướng trên điện thoại trong khi giao diện hiển thị trên màn hình ô tô — không cần biên dịch lại hay thêm mã.

Lịch sử phiên bản HarmonyOS

HarmonyOS 1.0 (2019) — phiên bản đầu tiên cho Smart Screen, không phải điện thoại thông minh. HarmonyOS 2.0 (2021) — mở cho điện thoại thông minh, máy tính bảng và đồng hồ, hỗ trợ ứng dụng AOSP. HarmonyOS 3.0 (2022) — cải thiện kiến trúc phân tán, Super Device, Multiscreen Collaboration. HarmonyOS 4.0 (2023) — ArkUI 3.0, Live View, hiệu suất được cải thiện. HarmonyOS NEXT (5.0, 2024) — từ bỏ hoàn toàn AOSP, chỉ ứng dụng HarmonyOS gốc.

Phiên bản HarmonyOSNămCải tiến chính
1.02019Phiên bản đầu tiên cho Smart Screen TV
2.02021Điện thoại thông minh, máy tính bảng, tương thích AOSP
3.02022Super Device, Multiscreen Collaboration
4.02023ArkUI 3.0, Live View, Celia Voice Assistant
NEXT (5.0)2024Từ bỏ hoàn toàn AOSP, nhân vi, chỉ ArkTS

Kiến trúc HarmonyOS: nhân vi phân tán

Kiến trúc HarmonyOS khác biệt cơ bản so với Android và iOS. Thay vì nhân Linux nguyên khối, HarmonyOS sử dụng nhân vi riêng, thực hiện một tập hợp tối thiểu các chức năng đặc quyền: quản lý bộ nhớ, lập lịch tiến trình và giao tiếp liên tiến trình. Tất cả các dịch vụ khác chạy trong không gian người dùng.

Nhân vi và bảo mật

Nhân vi HarmonyOS có khoảng 10.000 dòng mã (nhân Linux có hơn 20 triệu dòng). Cơ sở mã nhỏ hơn đồng nghĩa với bề mặt tấn công nhỏ hơn. Hệ thống sử dụng xác minh chính thức — chứng minh toán học về tính đúng đắn của mã nhân. HarmonyOS hỗ trợ Trusted Execution Environment (TEE) ở cấp phần cứng cho sinh trắc học, thanh toán và khóa mã hóa. Giao tiếp liên tiến trình được thực hiện qua IPC, nhanh hơn 5 lần so với Binder trong Android.

Bốn lớp kiến trúc

Kiến trúc HarmonyOS gồm bốn lớp: Kernel Subsystem (nhân vi + trình điều khiển), System Service Layer (dịch vụ hệ thống: dữ liệu phân tán, hệ thống tệp, bảo mật), Framework Layer (ArkUI, đa phương tiện, điện thoại, dịch vụ AI), Application Layer (ứng dụng người dùng). Mỗi lớp được cách ly với lớp bên dưới qua IPC.

Hệ thống tệp phân tán

HarmonyOS cung cấp Hệ thống tệp phân tán (DFS) hợp nhất bộ nhớ của tất cả thiết bị người dùng thành một không gian ảo duy nhất. Ứng dụng truy cập tệp qua URI mà không chỉ định thiết bị — hệ thống định tuyến yêu cầu đến thiết bị nơi tệp được lưu trữ vật lý. DFS hỗ trợ mã hóa đầu cuối và sao chép tự động dữ liệu thường dùng.

cpp
// Làm việc với hệ thống tệp phân tán HarmonyOS
#include <dfs/storage_manager.h>
#include <uri/uri_helper.h>

using namespace OHOS::Storage;

// Lấy URI tệp trên thiết bị phân tán
Uri GetDistributedFileUri(const std::string& localPath) {
    DistributedFileManager manager;
    auto deviceList = manager.GetOnlineDevices();

    for (const auto& device : deviceList) {
        Uri uri = manager.GetFileUri(device.deviceId, localPath);
        if (uri.IsValid()) {
            return uri;  // Đã tìm thấy tệp trên một trong các thiết bị
        }
    }
    return Uri::Empty();
}

// Đọc dữ liệu từ thiết bị từ xa
std::string ReadDistributedFile(const Uri& uri) {
    DistributedFile file(uri);
    if (!file.Open(OpenMode::READ_ONLY)) {
        return "";
    }

    char buffer[4096];
    size_t bytesRead = file.Read(buffer, sizeof(buffer));
    file.Close();

    return std::string(buffer, bytesRead);
}

Trong ví dụ, DistributedFileManager tìm kiếm tệp trên tất cả thiết bị trực tuyến của người dùng và trả về URI phân tán. DistributedFile mở tệp vật lý trên thiết bị từ xa qua IPC, minh bạch cho ứng dụng. Nhà phát triển không cần biết dữ liệu được lưu trữ ở đâu — hệ thống tự động định tuyến yêu cầu.

ArkUI và ArkTS: phát triển giao diện

ArkUI là framework UI khai báo của HarmonyOS do Huawei phát triển. Giao diện được mô tả như một hệ thống phân cấp thành phần với ràng buộc dữ liệu phản ứng, tương tự SwiftUI (iOS) hoặc Jetpack Compose (Android). ArkTS là ngôn ngữ phát triển dựa trên TypeScript với kiểu tĩnh bổ sung và tích hợp với ArkUI qua decorator @Component, @State, @Prop, @Link.

Khái niệm cốt lõi ArkTS

ArkTS mở rộng TypeScript với sự hài hòa framework UI: @Component — decorator khai báo thành phần UI, build() — phương thức bắt buộc trả về cây phần tử UI, @State — biến phản ứng thay đổi tự động vẽ lại thành phần, @Prop — thuộc tính đầu vào từ cha, @Link — ràng buộc hai chiều. Tất cả thành phần ArkUI dùng cú pháp chuỗi với bổ từ (.width, .height, .backgroundColor).

java
// ArkTS — màn hình hồ sơ người dùng trên ArkUI
@Component
struct ProfileScreen {
    @State userName: string = "Anna Petrova";
    @State avatarUrl: Resource = $r("media.avatar_default");
    @State isLoading: boolean = false;
    @Prop onEditClick: () => void;

    aboutToAppear(): void {
        this.loadUserData();
    }

    async loadUserData(): Promise<void> {
        this.isLoading = true;
        try {
            const data = await UserService.getProfile();
            this.userName = data.name;
            this.avatarUrl = data.avatarUrl;
        } catch (error) {
            console.error("Lỗi tải", error);
        } finally {
            this.isLoading = false;
        }
    }

    build(): void {
        Column() {
            if (this.isLoading) {
                LoadingProgress()
                    .width('50%')
                    .height('50%');
            } else {
                Stack({ alignContent: Alignment.Center }) {
                    Image(this.avatarUrl)
                        .width('100%')
                        .height('100%')
                        .objectFit(ImageFit.Cover);

                    Column() {
                        Text(this.userName)
                            .fontSize('24fp')
                            .fontWeight(FontWeight.Bold)
                            .fontColor(Color.White);

                        Button("Chỉnh sửa", {
                            type: ButtonType.Capsule,
                            stateEffect: true
                        })
                            .onClick(() => {
                                this.onEditClick();
                            })
                            .margin({ top: '12vp' });
                    }
                    .alignItems(HorizontalAlign.Center)
                    .width('100%');
                }
                .width('100%')
                .height('300vp');
            }
        }
        .padding('16vp')
        .width('100%')
        .height('100%');
    }
}

// Điểm vào ứng dụng
@Entry
@Component
struct MainApp {
    build(): void {
        Column() {
            ProfileScreen({
                onEditClick: () => {
                    console.info("Mở trình soạn thảo hồ sơ");
                }
            });
        }
        .width('100%')
        .height('100%');
    }
}

Thành phần ProfileScreen trong ArkTS minh họa: @State cho biến phản ứng, @Prop cho callback đầu vào, Column/Stack/Text/Image/Button là thành phần UI cơ bản, tải dữ liệu bất đồng bộ qua async/await. LoadingProgress hiển thị trong khi tải. Tất cả kích thước được chỉ định bằng vp (pixel ảo) — đơn vị thích ứng tương tự pt trong iOS hoặc dp trong Android.

Thích ứng cho các thiết bị khác nhau

ArkUI hỗ trợ thiết kế đáp ứng qua hệ thống Điểm ngắt (xs, sm, md, lg, xl) tương ứng với chiều rộng màn hình. Các thành phần tự động sắp xếp lại khi chuyển từ điện thoại sang máy tính bảng hoặc đồng hồ. GridRow và GridCol là các container thích ứng thay đổi số cột tùy theo điểm ngắt. Đơn vị kích thước: vp (pixel ảo), fp (pixel phông — co giãn theo cài đặt phông), lpx (pixel logic cho đồng hồ).

Loại thiết bịĐiểm ngắtĐường chéoĐơn vị
Đồng hồ thông minhxs1.2"–2.0"lpx
Điện thoại thông minhsm4.7"–6.9"vp
Máy tính bảngmd7.0"–12.0"vp
Máy tính xách taylg13.0"–16.0"vp
Màn hình / TVxl24.0"–65.0"vp

DevEco Studio và công cụ phát triển

DevEco Studio là môi trường phát triển tích hợp (IDE) chính thức cho HarmonyOS, dựa trên IntelliJ IDEA Community Edition. Bao gồm trình soạn thảo mã hỗ trợ ArkTS và C++, trình soạn thảo ArkUI trực quan (kéo và thả), trình giả lập thiết bị HarmonyOS, Preview để xem UI tức thì và Profiler để phân tích hiệu suất.

Trình giả lập HarmonyOS

DevEco Studio bao gồm trình giả lập dựa trên QEMU, hỗ trợ điện thoại thông minh (nhiều kích thước màn hình), máy tính bảng, đồng hồ và tivi. Trình giả lập mô phỏng môi trường phân tán: bạn có thể chạy nhiều thiết bị ảo và kiểm tra tương tác đa thiết bị. Trình giả lập yêu cầu ảo hóa (Hyper-V trên Windows, KVM trên Linux).

Preview và Live Preview

ArkUI Preview là tính năng xem UI tức thì mà không cần xây dựng hoặc khởi động trình giả lập. Thay đổi mã xuất hiện trong Preview sau 1-2 giây. Tất cả thành phần và hoạt ảnh tiêu chuẩn được hỗ trợ. Preview hoạt động với các điểm ngắt khác nhau để kiểm tra khả năng thích ứng. Live Preview kết nối với thiết bị thực qua USB hoặc Wi-Fi để kiểm tra trên phần cứng.

HarmonyOS SDK và API

HarmonyOS SDK bao gồm: ArkUI (thành phần UI), Multimedia Kit (ghi và phát âm thanh/video), Connectivity Kit (Bluetooth, Wi-Fi, NFC), Location Kit(định vị), Sensor Kit (cảm biến), AI Kit (ML Kit với suy luận trên thiết bị trên NPU Huawei). Phiên bản API: API 9 (HarmonyOS 3.x), API 10 (4.x), API 11 (NEXT).

java
// Khởi tạo camera trên HarmonyOS qua Multimedia Kit
import multimedia.CameraManager;
import multimedia.CameraInput;
import multimedia.PreviewOutput;

@Component
struct CameraView {
    @State isPreviewActive: boolean = false;
    cameraManager: CameraManager = CameraManager.getInstance();
    cameraInput?: CameraInput;
    previewOutput?: PreviewOutput;

    async startPreview(): Promise<void> {
        try {
            // Yêu cầu quyền camera
            const granted = await Permissions.request("ohos.permission.CAMERA");
            if (!granted) return;

            // Lấy camera (0 — sau, 1 — trước)
            const camera = await this.cameraManager.getCamera(0);

            // Tạo đầu vào camera
            this.cameraInput = await this.cameraManager.createCameraInput(camera);
            await this.cameraInput.open();

            // Bắt đầu xem trước trên Surface (XComponent ArkUI)
            this.previewOutput = await this.cameraManager.createPreviewOutput({
                width: 1920,
                height: 1080
            });
            await this.previewOutput.start();
            this.isPreviewActive = true;
        } catch (error) {
            console.error("Camera error: " + error.message);
        }
    }

    async stopPreview(): Promise<void> {
        await this.previewOutput?.stop();
        await this.cameraInput?.close();
        this.isPreviewActive = false;
    }
}

Thành phần CameraView minh họa làm việc với Multimedia Kit: yêu cầu quyền qua Permissions.request, lấy camera qua CameraManager, tạo CameraInput và PreviewOutput. ArkUI Surface (qua XComponent) hiển thị luồng video. Tất cả thao tác đều bất đồng bộ với xử lý lỗi qua try/catch.

Ứng dụng phân tán và đa thiết bị

Kiến trúc phân tán của HarmonyOS là điểm khác biệt chính so với đối thủ. Một ứng dụng có thể bao gồm nhiều dịch vụ nguyên tử (Atomic Services), mỗi dịch vụ chạy trên thiết bị tối ưu. Người dùng bắt đầu tác vụ trên một thiết bị và tiếp tục trên thiết bị khác mà không mất ngữ cảnh.

Atomic Services và Ability

Atomic Service là đơn vị triển khai tối thiểu trên HarmonyOS. Mỗi dịch vụ thực hiện một hoặc nhiều Ability (tương tự Activity trong Android). Page Ability — màn hình có UI, Service Ability — tác vụ nền, Data Ability — truy cập dữ liệu. Ứng dụng có thể ủy quyền Ability cho thiết bị khác: ví dụ: UI hiển thị trên máy tính bảng trong khi xử lý AI chạy trên điện thoại có NPU.

Quản lý dữ liệu phân tán

Hệ thống Quản lý dữ liệu phân tán (DDM) đồng bộ trạng thái ứng dụng giữa các thiết bị. DDM sử dụng Đối tượng dữ liệu phân tán — các đối tượng phản ứng tự động sao chép trên tất cả thiết bị người dùng. Thay đổi dữ liệu trên một thiết bị được phản ánh ngay lập tức trên tất cả thiết bị khác. DDM hỗ trợ mã hóa và xem xét kết nối mạng (Bluetooth, Wi-Fi, dữ liệu di động).

Công nghệMục đíchTương tự
Distributed Data ObjectsĐồng bộ dữ liệu phản ứng giữa các thiết bịiCloud / Firebase
Distributed File SystemKhông gian tệp thống nhất đa thiết bịiCloud Drive
Ability DistributeỦy quyền màn hình cho thiết bị khác
Super DeviceHợp nhất thiết bị thành một hệ thốngApple Continuity
Multiscreen CollaborationLàm việc với một ứng dụng trên nhiều màn hìnhSidecar (iPad + Mac)

Super Device

Super Device — tính năng HarmonyOS cho phép hợp nhất tối đa 7 thiết bị Huawei thành một môi trường tính toán duy nhất. Người dùng kéo biểu tượng thiết bị trong giao diện Super Device: loa trở thành đầu ra âm thanh, máy tính bảng trở thành màn hình thứ hai, đồng hồ trở thành máy đo nhịp tim cho ứng dụng thể dục trên điện thoại. Tất cả thiết bị đồng bộ qua Bus phân tán (Distributed Bus) với độ trễ dưới 5 ms.

AppGallery và xuất bản ứng dụng

Huawei AppGallery là cửa hàng ứng dụng chính thức của HarmonyOS, lớn thứ ba thế giới sau Google Play và App Store. Theo Huawei (2026), AppGallery có hơn 580 triệu người dùng hoạt động hàng tháng. Đăng ký nhà phát triển miễn phí cho cá nhân (không giống như 99$ của Apple).

Quy trình xuất bản

Nhà phát triển xây dựng ứng dụng trong DevEco Studio (định dạng .hap — HarmonyOS Ability Package). Xuất bản qua AppGallery Connect: tải lên tệp HAP, điền mô tả (tên, biểu tượng, ảnh chụp màn hình), cấu hình mô hình giá. Thời gian kiểm duyệt trung bình là 1-3 ngày làm việc. Huawei kiểm tra bảo mật (phân tích tĩnh), tương thích API và tuân thủ chính sách.

Kiếm tiền

AppGallery hỗ trợ: ứng dụng trả phí (hoa hồng Huawei 15-30%), đăng ký (hoa hồng 15%), quảng cáo qua Huawei Ads Kit và mua hàng trong ứng dụng qua IAP Kit. Huawei Pay là cổng thanh toán cho thị trường Trung Quốc hỗ trợ Alipay và WeChat Pay. Nhà phát triển quốc tế nhận thanh toán qua PayPal hoặc chuyển khoản ngân hàng.

Yêu cầuMô tả
Định dạngHAP (HarmonyOS Ability Package) hoặc App Pack (nhiều HAP)
Chữ kýChữ ký số qua DevEco Studio (Chứng chỉ Huawei)
API mục tiêuAPI 9+ cho HarmonyOS 3.x, API 11+ cho HarmonyOS NEXT
Kích thướcTối đa 4 GB cho App Pack, tối đa 200 MB cho HAP cơ bản
Ngôn ngữHỗ trợ bắt buộc tiếng Trung giản thể cho Trung Quốc
Chính sáchTuân thủ Quy tắc nhà phát triển Huawei và GDPR cho EU

Huawei Mobile Services (HMS)

HMS Core là bộ dịch vụ thay thế Google Play Services trên thiết bị Huawei không có Google. Bao gồm: Push Kit (thông báo đẩy), Map Kit (bản đồ với điều hướng), Location Kit (định vị), Ads Kit (quảng cáo), Analytics Kit (phân tích), Account Kit (ủy quyền qua Huawei ID). HMS Core có sẵn trên thiết bị HarmonyOS và thiết bị Android Huawei (qua AppGallery).

Câu hỏi thường gặp

Những ngôn ngữ nào được sử dụng để phát triển HarmonyOS?

Ngôn ngữ chính là ArkTS, phần mở rộng TypeScript với tích hợp ArkUI. Cho các mô-đun yêu cầu hiệu suất cao, sử dụng C++ qua Native API (NAPI). Java được hỗ trợ cho ứng dụng kế thừa trên HarmonyOS 3-4. Huawei khuyến nghị ArkTS và C++ cho tất cả dự án mới bắt đầu từ HarmonyOS NEXT.

HarmonyOS khác Android như thế nào?

HarmonyOS sử dụng nhân vi riêng (không phải Linux), kiến trúc phân tán đa thiết bị, hệ thống tệp DFS thống nhất và đồng bộ DDM phản ứng. HarmonyOS NEXT đã hoàn toàn từ bỏ tương thích AOSP và không hỗ trợ ứng dụng APK. Tất cả ứng dụng được viết bằng ArkTS hoặc C++.

ArkUI là gì?

ArkUI là framework UI khai báo cho HarmonyOS bằng ArkTS và C++. Giao diện được mô tả qua @Component với phương thức build() và biến phản ứng (@State). ArkUI hỗ trợ bố cục thích ứng qua Điểm ngắt (xs-xl), GridRow/GridCol và kết xuất Canvas tùy chỉnh cho tính toán GPU.

Ứng dụng HarmonyOS được phân phối như thế nào?

Cửa hàng chính thức là Huawei AppGallery. Đăng ký nhà phát triển miễn phí. Ứng dụng được phân phối dưới định dạng HAP (HarmonyOS Ability Package) hoặc App Pack. Kiểm duyệt mất 1-3 ngày. Hoa hồng cửa hàng là 15-30% tùy theo mô hình kiếm tiền. Hỗ trợ tiếng Trung giản thể là bắt buộc cho Trung Quốc.

DevEco Studio là gì?

DevEco Studio là IDE chính thức cho HarmonyOS dựa trên IntelliJ IDEA. Bao gồm trình soạn thảo ArkTS/C++, trình soạn thảo ArkUI trực quan, trình giả lập dựa trên QEMU, Preview để xem UI tức thì, Profiler cho CPU/bộ nhớ và tích hợp với AppGallery Connect cho CI/CD. Hỗ trợ Windows, macOS và Linux.

Tổng kết

  • HarmonyOS — HĐH phân tán của Huawei với nhân vi, từ bỏ AOSP trong NEXT và hỗ trợ đa thiết bị
  • ArkTS — ngôn ngữ phát triển chính dựa trên TypeScript với decorator @Component, @State, @Prop
  • ArkUI — framework khai báo với bố cục thích ứng qua Điểm ngắt và GridRow/GridCol
  • DevEco Studio — IDE trên IntelliJ với trình giả lập, Preview và tích hợp AppGallery Connect
  • Kiến trúc phân tán bao gồm DFS, DDM, Ability Distribute và Super Device lên đến 7 thiết bị
  • AppGallery — cửa hàng chính thức với đăng ký miễn phí, định dạng HAP và hoa hồng 15-30%
  • HMS Core cung cấp Push Kit, Map Kit, Location Kit, Ads Kit, Analytics Kit và Account Kit

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm