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 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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