HarmonyOS: що це, архітектура системи та розробка на ArkUI

Автор: IT Sectr Опубліковано: 2026-02-07 Час читання: 11 хв

HarmonyOS — власна операційна система компанії Huawei, побудована на розподіленому мікроядрі з підтримкою кроссплатформної архітектури. Розробка додатків ведеться на ArkTS та C++ у середовищі DevEco Studio з фреймворком ArkUI. Система орієнтована на безшовну інтеграцію смартфонів, планшетів, годинників та IoT-пристроїв. За даними Huawei, HarmonyOS встановлено на понад 700 млн пристроїв по всьому світу.

Головне

  • HarmonyOS — розподілена ОС Huawei з власним мікроядром та мульти-пристроєвою архітектурою
  • ArkTS — основна мова розробки на базі TypeScript для екосистеми HarmonyOS
  • ArkUI — декларативний UI-фреймворк, аналогічний SwiftUI та Jetpack Compose
  • DevEco Studio — офіційна IDE на базі IntelliJ з емулятором та Preview
  • Розподілена архітектура дозволяє додатку працювати на кількох пристроях одночасно

Що таке HarmonyOS?

HarmonyOS — розподілена операційна система, розроблена Huawei та вперше анонсована в 2019 році як відповідь на обмеження доступу до сервісів Google на нових пристроях компанії. HarmonyOS побудована на власному мікроядрі, відмінному від Linux, та орієнтована на безшовну роботу між пристроями: смартфони, планшети, розумні годинники, телевізори, автомобільні системи та IoT-пристрої.

За даними Huawei (HarmonyOS Ecosystem Report, 2026), система встановлена на понад 700 млн пристроїв, включаючи 300 млн смартфонів. Китайський ринок становить 95% встановлень. Починаючи з HarmonyOS 5.0 (NEXT, 2024), система повністю відмовилася від сумісності з Android AOSP — всі додатки повинні бути написані на ArkTS або C++ з використанням ArkUI.

Ключова особливість HarmonyOS — розподілена архітектура: додаток може запускатися на кількох пристроях одночасно, переміщуючи інтерфейс між екранами. Наприклад, користувач запускає навігацію на телефоні, а інтерфейс відображається на екрані автомобіля — без перекомпіляції або додаткового коду.

Історія версій HarmonyOS

HarmonyOS 1.0 (2019) — перша версія для розумних екранів (Smart Screen), не для смартфонів. HarmonyOS 2.0 (2021) — відкрита для смартфонів, планшетів та годинників, підтримка AOSP-додатків. HarmonyOS 3.0 (2022) — покращена розподілена архітектура, Super Device, Multiscreen Collaboration. HarmonyOS 4.0 (2023) — ArkUI 3.0, Live View, покращена продуктивність. HarmonyOS NEXT (5.0, 2024) — повна відмова від AOSP, тільки нативні HarmonyOS-додатки.

Версія HarmonyOSРікКлючове нововведення
1.02019Перша версія для Smart Screen TV
2.02021Смартфони, планшети, AOSP-сумісність
3.02022Super Device, Multiscreen Collaboration
4.02023ArkUI 3.0, Live View, Celia Voice Assistant
NEXT (5.0)2024Повна відмова від AOSP, мікроядро, ArkTS-only

Архітектура HarmonyOS: розподілене мікроядро

Архітектура HarmonyOS принципово відрізняється від Android та iOS. Замість монолітного ядра Linux HarmonyOS використовує власне мікроядро, що реалізує мінімальний набір привілейованих функцій: управління пам'яттю, планування процесів та міжпроцесорну взаємодію. Всі інші служби працюють у користувацькому просторі.

Мікроядро та безпека

Мікроядро HarmonyOS налічує близько 10 000 рядків коду (ядро Linux — понад 20 млн). Менша кодова база означає меншу поверхню атаки. Система використовує формальну верифікацію — математичний доказ коректності коду ядра. HarmonyOS підтримує Trusted Execution Environment (TEE) на апаратному рівні для біометрії, платежів та ключів шифрування. Міжпроцесорна взаємодія реалізована через IPC, у 5 разів більш продуктивний, ніж Binder в Android.

Чотири шари архітектури

Архітектура HarmonyOS складається з чотирьох шарів: Kernel Subsystem (мікроядро + драйвери), System Service Layer (системні служби: розподілені дані, файлова система, безпека), Framework Layer (ArkUI, мультимедіа, телефонія, AI-сервіси) та Application Layer (користувацькі додатки). Кожен шар ізольований від нижчележачого через IPC.

Розподілена файлова система

HarmonyOS надає Distributed File System (DFS), що об'єднує сховища всіх пристроїв користувача в єдиний віртуальний простір. Додаток звертається до файлів за URI без вказівки пристрою — система маршрутизує запит на пристрій, де фізично зберігається файл. DFS підтримує шифрування наскрізним ключем (end-to-end) та автоматичну реплікацію часто використовуваних даних.

cpp
// Робота з розподіленою файловою системою HarmonyOS
#include <dfs/storage_manager.h>
#include <uri/uri_helper.h>

using namespace OHOS::Storage;

// Отримання URI файлу на розподіленому пристрої
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;  // Файл знайдено на одному з пристроїв
        }
    }
    return Uri::Empty();
}

// Читання даних з віддаленого пристрою
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);
}

У прикладі DistributedFileManager шукає файл на всіх онлайн-пристроях користувача та повертає розподілений URI. DistributedFile відкриває файл фізично на віддаленому пристрої через IPC, прозоро для додатка. Розробнику не потрібно знати, де зберігаються дані — система маршрутизує запит автоматично.

ArkUI та ArkTS: розробка інтерфейсів

ArkUI — декларативний UI-фреймворк HarmonyOS, розроблений Huawei. Інтерфейс описується у вигляді ієрархії компонентів з реактивним зв'язуванням даних, аналогічно SwiftUI (iOS) або Jetpack Compose (Android). ArkTS — мова розробки на базі TypeScript з додатковою статичною типізацією та інтеграцією з ArkUI через декоратори @Component, @State, @Prop, @Link.

Основні концепції ArkTS

ArkTS розширює TypeScript гармонізацією з UI-фреймворком: @Component — декоратор для оголошення UI-компонента, build() — обов'язковий метод, що повертає дерево UI-елементів, @State — реактивна змінна, зміна якої автоматично перемальовує компонент, @Prop — вхідна властивість від батька, @Link — двостороннє прив'язування. Всі компоненти ArkUI використовують ланцюжковий синтаксис з модифікаторами (.width, .height, .backgroundColor).

java
// ArkTS — екран профілю користувача на ArkUI
@Component
struct ProfileScreen {
    @State userName: string = "Анна Петрова";
    @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("Помилка завантаження", 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("Редагувати", {
                            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%');
    }
}

// Точка входу додатка
@Entry
@Component
struct MainApp {
    build(): void {
        Column() {
            ProfileScreen({
                onEditClick: () => {
                    console.info("Відкрити редактор профілю");
                }
            });
        }
        .width('100%')
        .height('100%');
    }
}

Компонент ProfileScreen на ArkTS демонструє: @State для реактивних змінних, @Prop для вхідного callback, Column/Stack/Text/Image/Button як базові UI-компоненти, асинхронне завантаження даних через async/await. LoadingProgress відображається під час завантаження. Всі розміри задаються в vp (virtual pixels) — адаптивних одиницях, аналогічних pt в iOS або dp в Android.

Адаптація під різні пристрої

ArkUI підтримує responsive design через систему Breakpoints (xs, sm, md, lg, xl), що відповідають ширині екрану. Компоненти автоматично перебудовуються при переході з телефону на планшет або годинник. GridRow та GridCol — адаптивні контейнери, що змінюють кількість колонок залежно від breakpoint. Розмірні одиниці: vp (віртуальні пікселі), fp (font pixels — масштабуються під налаштування шрифту), lpx (логічні пікселі для годинників).

Тип пристроюBreakpointДіагональОдиниця
Smartwatchxs1.2"–2.0"lpx
Смартфонsm4.7"–6.9"vp
Планшетmd7.0"–12.0"vp
Ноутбукlg13.0"–16.0"vp
Монітор / TVxl24.0"–65.0"vp

DevEco Studio та інструменти розробки

DevEco Studio — офіційне інтегроване середовище розробки (IDE) для HarmonyOS, засноване на IntelliJ IDEA Community Edition. Включає редактор коду з підтримкою ArkTS та C++, візуальний редактор ArkUI (drag-and-drop), емулятор пристроїв HarmonyOS, Preview для миттєвого перегляду UI та Profiler для аналізу продуктивності.

Емулятор HarmonyOS

DevEco Studio включає емулятор на базі QEMU, що підтримує смартфони (різні розміри екрану), планшети, годинники та телевізори. Емулятор симулює розподілене середовище: можна запустити кілька віртуальних пристроїв та тестувати across-пристроєву взаємодію. Емулятор вимагає віртуалізації (Hyper-V на Windows, KVM на Linux).

Preview та Live Preview

ArkUI Preview — функція миттєвого перегляду UI без збірки та запуску емулятора. Зміни в коді відображаються в Preview за 1-2 секунди. Підтримуються всі стандартні компоненти та анімації. Preview працює з різними breakpoints для перевірки адаптивності. Live Preview підключається до реального пристрою по USB або Wi-Fi для тестування на залізі.

HarmonyOS SDK та API

HarmonyOS SDK включає: ArkUI (UI-компоненти), Multimedia Kit (аудіо/відео захват та відтворення), Connectivity Kit (Bluetooth, Wi-Fi, NFC), Location Kit (геолокація), Sensor Kit (датчики), AI Kit (ML Kit з on-device інференсом на NPU Huawei). API версіоновані: API 9 (HarmonyOS 3.x), API 10 (4.x), API 11 (NEXT).

java
// Ініціалізація камери на HarmonyOS через 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 {
            // Запит дозволу на камеру
            const granted = await Permissions.request("ohos.permission.CAMERA");
            if (!granted) return;

            // Отримання камери (0 — задня, 1 — фронтальна)
            const camera = await this.cameraManager.getCamera(0);

            // Створення входу камери
            this.cameraInput = await this.cameraManager.createCameraInput(camera);
            await this.cameraInput.open();

            // Запуск прев'ю на 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;
    }
}

Компонент CameraView демонструє роботу з Multimedia Kit: запит дозволу через Permissions.request, отримання камери через CameraManager, створення CameraInput та PreviewOutput. ArkUI Surface (через XComponent) відображає відеопотік. Всі операції асинхронні з обробкою помилок через try/catch.

Розподілені додатки та across-пристрої

Розподілена архітектура HarmonyOS — головна відмінність від конкурентів. Додаток може складатися з кількох атомарних сервісів (Atomic Services), кожен з яких запускається на оптимальному пристрої. Користувач починає задачу на одному пристрої та продовжує на іншому без втрати контексту.

Atomic Services та Ability

Atomic Service — мінімальна одиниця розгортання на HarmonyOS. Кожен сервіс реалізує один або кілька Ability (аналог Activity в Android). Page Ability — екран з UI, Service Ability — фонова задача, Data Ability — доступ до даних. Додаток може делегувати Ability іншому пристрою: наприклад, UI відображається на планшеті, а AI-обробка виконується на телефоні з NPU.

Distributed Data Management

Система управління розподіленими даними (DDM) синхронізує стан додатка між пристроями. DDM використовує Distributed Data Objects — реактивні об'єкти, що автоматично реплікуються на всі пристрої користувача. Зміна даних на одному пристрої миттєво відображається на всіх інших. DDM підтримує шифрування та враховує мережеве з'єднання (Bluetooth, Wi-Fi, стільникові дані).

ТехнологіяПризначенняАналог
Distributed Data ObjectsРеактивна синхронізація даних між пристроямиiCloud / Firebase
Distributed File SystemЄдиний файловий простір across-пристроївiCloud Drive
Ability DistributeДелегування екрану на інший пристрій
Super DeviceОб'єднання пристроїв в єдину системуApple Continuity
Multiscreen CollaborationРобота з одним додатком на кількох екранахSidecar (iPad + Mac)

Super Device

Super Device — функція HarmonyOS, що дозволяє об'єднати до 7 пристроїв Huawei в єдине обчислювальне середовище. Користувач перетягує іконки пристроїв в інтерфейсі Super Device: колонки стають аудіовиходом, планшет — другим екраном, годинник — пульсометром для фітнес-додатка на телефоні. Всі пристрої синхронізуються через розподілену шину (Distributed Bus) із затримкою менше 5 мс.

AppGallery та публікація додатків

Huawei AppGallery — офіційний магазин додатків HarmonyOS, третій за величиною у світі після Google Play та App Store. За даними Huawei (2026), AppGallery налічує понад 580 млн активних користувачів на місяць. Реєстрація розробника безкоштовна для фізичних осіб (на відміну від $99 Apple).

Процес публікації

Розробник збирає додаток у DevEco Studio (формат .hap — HarmonyOS Ability Package). Публікація через AppGallery Connect: завантаження HAP-файлу, заповнення опису (назва, іконка, скріншоти), налаштування цінової моделі. Середній час модерації — 1-3 робочих дні. Huawei перевіряє безпеку (статичний аналіз), сумісність з API та відповідність політикам.

Монетизація

AppGallery підтримує: платні додатки (комісія Huawei 15-30%), підписки (15% комісія), рекламу через Huawei Ads Kit та in-app purchases через IAP Kit. Huawei Pay — платіжний шлюз для китайського ринку, що підтримує Alipay та WeChat Pay. Міжнародні розробники отримують виплати через PayPal або банківський переказ.

ВимогаОпис
ФорматHAP (HarmonyOS Ability Package) або App Pack (кілька HAP)
ПідписЦифровий підпис через DevEco Studio (Huawei Certificate)
Цільова APIAPI 9+ для HarmonyOS 3.x, API 11+ для HarmonyOS NEXT
РозмірДо 4 ГБ для App Pack, до 200 МБ для базового HAP
МовиОбов'язкова підтримка китайської (спрощеної) для Китаю
ПолітикаВідповідність Rules for Developers Huawei та GDPR для ЄС

Huawei Mobile Services (HMS)

HMS Core — набір сервісів, що замінюють Google Play Services на пристроях Huawei без Google. Включає: Push Kit (push-сповіщення), Map Kit (карти з навігацією), Location Kit (геолокація), Ads Kit (реклама), Analytics Kit (аналітика), Account Kit (авторизація через Huawei ID). HMS Core доступний на пристроях з HarmonyOS та на Android-пристроях Huawei (через AppGallery).

Часті запитання

Які мови використовуються для розробки під HarmonyOS?

Основна мова — ArkTS, розширення TypeScript з інтеграцією ArkUI. Для продуктивних модулів використовується C++ через Native API (NAPI). Java підтримується для легасі-додатків на HarmonyOS 3-4. ArkTS та C++ рекомендовані Huawei для всіх нових проектів починаючи з HarmonyOS NEXT.

Чим HarmonyOS відрізняється від Android?

HarmonyOS використовує власне мікроядро (не Linux), розподілену архітектуру across-пристроїв, єдину файлову систему DFS, реактивну синхронізацію DDM. HarmonyOS NEXT повністю відмовився від сумісності з AOSP та не підтримує APK-додатки. Всі додатки пишуться на ArkTS або C++.

Що таке ArkUI?

ArkUI — декларативний UI-фреймворк HarmonyOS на мовах ArkTS та C++. Інтерфейс описується через @Component з build()-методом та реактивними змінними (@State). ArkUI підтримує адаптивну верстку через Breakpoints (xs-xl), GridRow/GridCol та кастомну Canvas-відмальовку для GPU-обчислень.

Як поширюються додатки HarmonyOS?

Офіційний магазин — Huawei AppGallery. Реєстрація розробника безкоштовна. Додаток поставляється у форматі HAP (HarmonyOS Ability Package) або App Pack. Модерація займає 1-3 дні. Комісія магазину — 15-30% залежно від моделі монетизації. Для Китаю обов'язкова підтримка спрощеної китайської мови.

Що таке DevEco Studio?

DevEco Studio — офіційна IDE для HarmonyOS на базі IntelliJ IDEA. Включає редактор ArkTS/C++, візуальний редактор ArkUI, емулятор на QEMU, Preview для миттєвого перегляду UI, Profiler для CPU/пам'яті та інтеграцію з AppGallery Connect для CI/CD. Підтримує Windows, macOS та Linux.

Підсумки

  • HarmonyOS — розподілена ОС Huawei з мікроядром, відмовою від AOSP в NEXT та підтримкою across-пристроїв
  • ArkTS — основна мова розробки на базі TypeScript з декораторами @Component, @State, @Prop
  • ArkUI — декларативний фреймворк з адаптивною версткою через Breakpoints та GridRow/GridCol
  • DevEco Studio — IDE на IntelliJ з емулятором, Preview та інтеграцією з AppGallery Connect
  • Розподілена архітектура включає DFS, DDM, Ability Distribute та Super Device до 7 пристроїв
  • AppGallery — офіційний магазин з безкоштовною реєстрацією, форматом HAP та комісією 15-30%
  • HMS Core надає Push Kit, Map Kit, Location Kit, Ads Kit, Analytics Kit та Account Kit

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також