HarmonyOS е собствена операционна система на Huawei, изградена върху разпределено микроядро с поддръжка на междуплатформена архитектура. Разработката на приложения се извършва на ArkTS и C++ в среда DevEco Studio с рамката ArkUI. Системата е ориентирана към безпроблемна интеграция на смартфони, таблети, часовници и IoT устройства. Според данни на Huawei, HarmonyOS е инсталиран на над 700 милиона устройства по целия свят.
Основни точки
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 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.0 | 2019 | Първа версия за Smart Screen TV |
| 2.0 | 2021 | Смартфони, таблети, AOSP съвместимост |
| 3.0 | 2022 | Super Device, Multiscreen Collaboration |
| 4.0 | 2023 | ArkUI 3.0, Live View, Celia Voice Assistant |
| NEXT (5.0) | 2024 | Пълно отказване от AOSP, микроядро, само ArkTS |
Архитектурата на 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 поддържа криптиране от край до край и автоматична репликация на често използвани данни.
// Работа с разпределената файлова система на 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 е декларативната UI рамка на HarmonyOS, разработена от Huawei. Интерфейсът се описва като йерархия от компоненти с реактивно свързване на данни, аналогично на SwiftUI (iOS) или Jetpack Compose (Android). ArkTS е език за разработка на базата на TypeScript с допълнителна статична типизация и интеграция с ArkUI чрез декораторите @Component, @State, @Prop, @Link.
ArkTS разширява TypeScript чрез хармонизация с UI рамката: @Component — декоратор за деклариране на UI компонент, build() — задължителен метод, връщащ дърво от UI елементи, @State — реактивна променлива, чиято промяна автоматично прерисува компонента, @Prop — входно свойство от родителя, @Link — двупосочно свързване. Всички ArkUI компоненти използват верижен синтаксис с модификатори (.width, .height, .backgroundColor).
// 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 | Диагонал | Единица |
|---|---|---|---|
| Smartwatch | xs | 1.2"–2.0" | lpx |
| Смартфон | sm | 4.7"–6.9" | vp |
| Таблет | md | 7.0"–12.0" | vp |
| Лаптоп | lg | 13.0"–16.0" | vp |
| Монитор / TV | xl | 24.0"–65.0" | vp |
DevEco Studio е официалната интегрирана среда за разработка (IDE) за HarmonyOS, основана на IntelliJ IDEA Community Edition. Включва редактор на код с поддръжка на ArkTS и C++, визуален редактор на ArkUI (drag-and-drop), емулатор на устройства HarmonyOS, Preview за моментален преглед на UI и Profiler за анализ на производителността.
DevEco Studio включва емулатор на базата на QEMU, поддържащ смартфони (различни размери на екрана), таблети, часовници и телевизори. Емулаторът симулира разпределена среда: можете да стартирате множество виртуални устройства и да тествате across-устройствено взаимодействие. Емулаторът изисква виртуализация (Hyper-V на Windows, KVM на Linux).
ArkUI Preview е функция за моментален преглед на UI без компилиране и стартиране на емулатора. Промените в кода се показват в Preview за 1-2 секунди. Поддържат се всички стандартни компоненти и анимации. Preview работи с различни breakpoint-и за проверка на адаптивността. Live Preview се свързва с реално устройство чрез USB или Wi-Fi за тестване на хардуер.
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).
// Инициализация на камера на 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.
Разпределената архитектура на HarmonyOS е основната разлика от конкурентите. Приложението може да се състои от няколко атомарни услуги (Atomic Services), всяка от които се стартира на оптималното устройство. Потребителят започва задача на едно устройство и продължава на друго без загуба на контекст.
Atomic Service е минималната единица за разгръщане на HarmonyOS. Всяка услуга реализира един или повече Ability (аналог на Activity в Android). Page Ability — екран с UI, Service Ability — фонова задача, Data Ability — достъп до данни. Приложението може да делегира Ability на друго устройство: например, UI се показва на таблет, а AI обработката се изпълнява на телефон с NPU.
Системата за управление на разпределени данни (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 — функция на HarmonyOS, позволяваща обединяване на до 7 устройства на Huawei в единна изчислителна среда. Потребителят плъзга икони на устройства в интерфейса на Super Device: тонколоните стават аудиоизход, таблетът — втори екран, часовникът — пулсомер за фитнес приложението на телефона. Всички устройства се синхронизират чрез разпределена шина (Distributed Bus) със закъснение под 5 ms.
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) |
| Целево API | API 9+ за HarmonyOS 3.x, API 11+ за HarmonyOS NEXT |
| Размер | До 4 GB за App Pack, до 200 MB за базов HAP |
| Езици | Задължителна поддръжка на китайски (опростен) за Китай |
| Политика | Съответствие с Rules for Developers Huawei и GDPR за ЕС |
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).
Често задавани въпроси
Основният език е ArkTS, разширение на TypeScript с интеграция на ArkUI. За производителни модули се използва C++ чрез Native API (NAPI). Java се поддържа за legacy приложения на HarmonyOS 3-4. ArkTS и C++ се препоръчват от Huawei за всички нови проекти, започвайки от HarmonyOS NEXT.
HarmonyOS използва собствено микроядро (не Linux), разпределена архитектура across-устройства, единна файлова система DFS, реактивна синхронизация DDM. HarmonyOS NEXT напълно се отказа от съвместимостта с AOSP и не поддържа APK приложения. Всички приложения се пишат на ArkTS или C++.
ArkUI е декларативна UI рамка за HarmonyOS на езиците ArkTS и C++. Интерфейсът се описва чрез @Component с build()-метод и реактивни променливи (@State). ArkUI поддържа адаптивно оформление чрез Breakpoints (xs-xl), GridRow/GridCol и персонализирано Canvas-рисуване за GPU изчисления.
Официалният магазин е Huawei AppGallery. Регистрацията на разработчик е безплатна. Приложението се доставя във формат HAP (HarmonyOS Ability Package) или App Pack. Модерацията отнема 1-3 дни. Комисионната на магазина е 15-30% в зависимост от модела на монетизация. За Китай е задължителна поддръжката на опростен китайски език.
DevEco Studio е официалната IDE за HarmonyOS на базата на IntelliJ IDEA. Включва редактор на ArkTS/C++, визуален редактор на ArkUI, емулатор на QEMU, Preview за моментален преглед на UI, Profiler за CPU/памет и интеграция с AppGallery Connect за CI/CD. Поддържа Windows, macOS и Linux.
Резюме
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също