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, 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

Архитектура на 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 поддържа криптиране от край до край и автоматична репликация на често използвани данни.

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 (виртуални пиксели) — адаптивни единици, аналогични на pt в iOS или dp в Android.

Адаптация за различни устройства

ArkUI поддържа responsive design чрез система от Breakpoints (xs, sm, md, lg, xl), съответстващи на ширината на екрана. Компонентите автоматично се преустройват при преход от телефон към таблет или часовник. GridRow и GridCol са адаптивни контейнери, променящи броя на колоните в зависимост от breakpoint-а. Размерни единици: vp (виртуални пиксели), fp (пиксели на шрифта — мащабират се според настройките на шрифта), 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 работи с различни breakpoint-и за проверка на адаптивността. 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 с изводи на устройството на 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 ms.

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 и покупки в приложението чрез 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 GB за App Pack, до 200 MB за базов 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 се поддържа за legacy приложения на 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 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също