HarmonyOS је власнички оперативни систем компаније Huawei, изграђен на дистрибуираном микројезгру са подршком за вишеплатформску архитектуру. Развој апликација се врши у ArkTS-у и C++-у у окружењу DevEco Studio са фрејмворком ArkUI. Систем је оријентисан на беспрекорну интеграцију паметних телефона, таблета, сатова и IoT уређаја. Према подацима Huawei-ја, HarmonyOS је инсталиран на преко 700 милиона уређаја широм света.
Главне тачке
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 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 за улазни колбек, 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-ја (превуци и пусти), емулатор 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 са on-device инференсом на 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 сертификат) |
| Циљни 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 је подржана за легаси апликације на 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. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође