HarmonyOS — çarpaz platforma arxitekturasını dəstəkləyən paylanmış mikronüvə üzərində qurulmuş Huawei-nin mülkiyyət əməliyyat sistemidir. Tətbiq inkişafı ArkUI çərçivəsi ilə DevEco Studio mühitində ArkTS və C++ dilində aparılır. Sistem smartfonlar, planşetlər, saatlar və IoT cihazlarının problemsiz inteqrasiyası üçün nəzərdə tutulub. Huawei-yə görə, HarmonyOS dünya üzrə 700 milyondan çox cihazda quraşdırılıb.
Əsas məqamlar
HarmonyOS — Huawei tərəfindən hazırlanmış və ilk dəfə 2019-cu ildə şirkətin yeni cihazlarında Google xidmətlərinə girişin məhdudlaşdırılmasına cavab olaraq elan edilmiş paylanmış əməliyyat sistemidir. HarmonyOS Linux-dan fərqli olaraq öz mikronüvəsi üzərində qurulub və cihazlar arasında problemsiz işləmək üçün nəzərdə tutulub: smartfonlar, planşetlər, ağıllı saatlar, televizorlar, avtomobil sistemləri və IoT cihazları.
Huawei-yə (HarmonyOS Ekosistem Hesabatı, 2026) görə, sistem 300 milyon smartfon daxil olmaqla 700 milyondan çox cihazda quraşdırılıb. Çin bazarı quraşdırmaların 95%-ni təşkil edir. HarmonyOS 5.0-dan (NEXT, 2024) başlayaraq, sistem Android AOSP uyğunluğunu tamamilə tərk etdi — bütün tətbiqlər ArkTS və ya C++ dilində ArkUI istifadə edərək yazılmalıdır.
HarmonyOS-un əsas xüsusiyyəti onun paylanmış arxitekturasıdır: tətbiq eyni anda bir neçə cihazda işləyə bilər, interfeysi ekranlar arasında hərəkət etdirə bilər. Məsələn, istifadəçi telefonda naviqasiyaya başlayır, interfeys isə avtomobil ekranında göstərilir — yenidən kompilyasiya və ya əlavə kod olmadan.
HarmonyOS 1.0 (2019) — smartfonlar üçün deyil, Smart Screen üçün ilk versiya. HarmonyOS 2.0 (2021) — smartfonlar, planşetlər və saatlar üçün açıldı, AOSP tətbiqləri dəstəyi. HarmonyOS 3.0 (2022) — təkmilləşdirilmiş paylanmış arxitektura, Super Device, Multiscreen Collaboration. HarmonyOS 4.0 (2023) — ArkUI 3.0, Live View, təkmilləşdirilmiş performans. HarmonyOS NEXT (5.0, 2024) — AOSP-nin tam tərk edilməsi, yalnız yerli HarmonyOS tətbiqləri.
| HarmonyOS versiyası | İl | Əsas yenilik |
|---|---|---|
| 1.0 | 2019 | Smart Screen TV üçün ilk versiya |
| 2.0 | 2021 | Smartfonlar, planşetlər, AOSP uyğunluğu |
| 3.0 | 2022 | Super Device, Multiscreen Collaboration |
| 4.0 | 2023 | ArkUI 3.0, Live View, Celia Voice Assistant |
| NEXT (5.0) | 2024 | AOSP-nin tam tərk edilməsi, mikronüvə, yalnız ArkTS |
HarmonyOS arxitekturası Android və iOS-dan əsaslı şəkildə fərqlənir. Monolit Linux nüvəsi əvəzinə, HarmonyOS öz mikronüvəsini istifadə edir, minimum imtiyazlı funksiyaları həyata keçirir: yaddaş idarəetməsi, proses planlaşdırması və proseslərarası əlaqə. Bütün digər xidmətlər istifadəçi məkanında işləyir.
HarmonyOS mikronüvəsi təxminən 10.000 sətir koddan ibarətdir (Linux nüvəsi 20 milyondan çoxdur). Kiçik kod bazası daha kiçik hücum səthi deməkdir. Sistem formal yoxlama — nüvə kodunun düzgünlüyünün riyazi sübutu istifadə edir. HarmonyOS biometriya, ödənişlər və şifrələmə açarları üçün aparat səviyyəsində Trusted Execution Environment (TEE) dəstəkləyir. Proseslərarası əlaqə IPC vasitəsilə həyata keçirilir, Android-də Binder-dən 5 dəfə daha məhsuldardır.
HarmonyOS arxitekturası dörd qatdan ibarətdir: Kernel Subsystem (mikronüvə + sürücülər), System Service Layer (sistem xidmətləri: paylanmış verilənlər, fayl sistemi, təhlükəsizlik), Framework Layer (ArkUI, multimedia, telefoniya, AI xidmətləri), Application Layer (istifadəçi tətbiqləri). Hər qat IPC vasitəsilə alt qatdan təcrid olunub.
HarmonyOS bütün istifadəçi cihazlarının yaddaşını vahid virtual məkanda birləşdirən Paylanmış Fayl Sistemi (DFS) təqdim edir. Tətbiq fayllara cihaz göstərmədən URI vasitəsilə daxil olur — sistem sorğunu faylın fiziki olaraq saxlandığı cihaza yönləndirir. DFS ucdan-uca şifrələmə və tez-tez istifadə olunan verilənlərin avtomatik replikasiyasını dəstəkləyir.
// HarmonyOS paylanmış fayl sistemi ilə iş
#include <dfs/storage_manager.h>
#include <uri/uri_helper.h>
using namespace OHOS::Storage;
// Paylanmış cihazda fayl URI əldə etmə
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; // Fayl cihazlardan birində tapıldı
}
}
return Uri::Empty();
}
// Uzaq cihazdan verilən oxuma
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);
}Nümunədə, DistributedFileManager istifadəçinin bütün onlayn cihazlarında faylı axtarır və paylanmış URI qaytarır. DistributedFile tətbiq üçün şəffaf şəkildə, IPC vasitəsilə uzaq cihazda faylı fiziki olaraq açır. Tərtibatçı verilənlərin harada saxlandığını bilməyə ehtiyac duymur — sistem sorğunu avtomatik yönləndirir.
ArkUI Huawei tərəfindən hazırlanmış HarmonyOS-un bəyannaməli UI çərçivəsidir. İnterfeys SwiftUI (iOS) və ya Jetpack Compose (Android) kimi reaktiv verilən bağlaması olan komponentlər iyerarxiyası kimi təsvir olunur. ArkTS əlavə statik tipləmə və @Component, @State, @Prop, @Link dekoratorları vasitəsilə ArkUI ilə inteqrasiya ilə TypeScript əsaslı inkişaf dilidir.
ArkTS UI çərçivəsi uyğunlaşması üçün TypeScript-i genişləndirir: @Component — UI komponentini bəyan etmək üçün dekorator, build() — UI elementləri ağacını qaytaran məcburi metod, @State — dəyişiklikləri avtomatik olaraq komponenti yenidən çəkən reaktiv dəyişən, @Prop — valideyndən giriş xüsusiyyəti, @Link — ikitərəfli bağlama. Bütün ArkUI komponentləri dəyişdiricilərlə (.width, .height, .backgroundColor) zəncir sintaksisi istifadə edir.
// ArkTS — ArkUI-da istifadəçi profil ekranı
@Component
struct ProfileScreen {
@State userName: string = "Anna Petrova";
@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("Yükləmə xətası", 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("Redaktə et", {
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%');
}
}
// Tətbiq giriş nöqtəsi
@Entry
@Component
struct MainApp {
build(): void {
Column() {
ProfileScreen({
onEditClick: () => {
console.info("Profil redaktorunu aç");
}
});
}
.width('100%')
.height('100%');
}
}ArkTS-də ProfileScreen komponenti nümayiş etdirir: reaktiv dəyişənlər üçün @State, giriş callback üçün @Prop, Column/Stack/Text/Image/Button əsas UI komponentləri kimi, async/await vasitəsilə asinxron verilən yükləməsi. Yükləmə zamanı LoadingProgress göstərilir. Bütün ölçülər vp (virtual piksel) ilə göstərilir — iOS-da pt və ya Android-də dp kimi adaptiv vahidlər.
ArkUI ekran genişliyinə uyğun Qırılma Nöqtələri (xs, sm, md, lg, xl) sistemi vasitəsilə responsive dizaynı dəstəkləyir. Komponentlər telefondan planşetə və ya saata keçərkən avtomatik olaraq yenidən təşkil olunur. GridRow və GridCol qırılma nöqtəsindən asılı olaraq sütun sayını dəyişən adaptiv konteynerlərdir. Ölçü vahidləri: vp (virtual piksel), fp (şrift pikseli — şrift ayarları ilə miqyaslanır), lpx (saatlar üçün məntiqi piksel).
| Cihaz növü | Qırılma nöqtəsi | Diaqonal | Vahid |
|---|---|---|---|
| Ağıllı saat | xs | 1.2"–2.0" | lpx |
| Smartfon | sm | 4.7"–6.9" | vp |
| Planşet | md | 7.0"–12.0" | vp |
| Noutbuk | lg | 13.0"–16.0" | vp |
| Monitor / TV | xl | 24.0"–65.0" | vp |
DevEco Studio IntelliJ IDEA Community Edition əsasında HarmonyOS üçün rəsmi inteqrasiya olunmuş inkişaf mühitidir (IDE). ArkTS və C++ dəstəyi ilə kod redaktoru, vizual ArkUI redaktoru (sürüklə və burax), HarmonyOS cihaz emulyatoru, ani UI baxışı üçün Preview və performans analizi üçün Profiler daxildir.
DevEco Studio QEMU əsaslı emulyator daxildir, smartfonlar (müxtəlif ekran ölçüləri), planşetlər, saatlar və televizorları dəstəkləyir. Emulyator paylanmış mühiti simulyasiya edir: bir neçə virtual cihaz işlədə və cihazlararası qarşılıqlı əlaqəni test edə bilərsiniz. Emulyator virtualizasiya tələb edir (Windows-da Hyper-V, Linux-da KVM).
ArkUI Preview qurma və ya emulyator başlatmadan ani UI baxışı funksiyasıdır. Kod dəyişiklikləri 1-2 saniyə ərzində Preview-də görünür. Bütün standart komponentlər və animasiyalar dəstəklənir. Preview uyğunlaşma qabiliyyətini test etmək üçün müxtəlif qırılma nöqtələri ilə işləyir. Live Preview real cihazda test üçün USB və ya Wi-Fi vasitəsilə real cihaza qoşulur.
HarmonyOS SDK daxildir: ArkUI (UI komponentləri), Multimedia Kit (audio/video çəkmə və oxutma), Connectivity Kit (Bluetooth, Wi-Fi, NFC), Location Kit (geolokasiya), Sensor Kit (sensorlar), AI Kit (Huawei NPU-da cihazdaxili inferens ilə ML Kit). API versiyaları: API 9 (HarmonyOS 3.x), API 10 (4.x), API 11 (NEXT).
// Multimedia Kit vasitəsilə HarmonyOS-da kameranın başladılması
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 {
// Kamera icazəsinin istənilməsi
const granted = await Permissions.request("ohos.permission.CAMERA");
if (!granted) return;
// Kameranın əldə edilməsi (0 — arxa, 1 — ön)
const camera = await this.cameraManager.getCamera(0);
// Kamera girişinin yaradılması
this.cameraInput = await this.cameraManager.createCameraInput(camera);
await this.cameraInput.open();
// Surface-də önbaxışın başladılması (ArkUI XComponent)
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 komponenti Multimedia Kit ilə işi nümayiş etdirir: Permissions.request vasitəsilə icazə istəmə, CameraManager vasitəsilə kamera əldə etmə, CameraInput və PreviewOutput yaratma. ArkUI Surface (XComponent vasitəsilə) video axınını göstərir. Bütün əməliyyatlar try/catch vasitəsilə xəta idarəetməsi ilə asinxrondur.
HarmonyOS-un paylanmış arxitekturası rəqiblərdən əsas fərqdir. Tətbiq hər biri optimal cihazda işləyən çoxsaylı atom xidmətlərindən (Atomic Services) ibarət ola bilər. İstifadəçi bir cihazda tapşırığa başlayır və konteksti itirmədən digərində davam edir.
Atomic Service HarmonyOS-da minimum yerləşdirmə vahididir. Hər xidmət bir və ya daha çox Ability (Android-də Activity-yə bənzər) həyata keçirir. Page Ability — UI ilə ekran, Service Ability — fon tapşırığı, Data Ability — verilənlərə giriş. Tətbiq Ability-ni başqa cihaza həvalə edə bilər: məsələn, UI planşetdə göstərilir, AI emalı isə NPU olan telefonda işləyir.
Paylanmış Verilən İdarəetməsi (DDM) sistemi tətbiq vəziyyətini cihazlar arasında sinxronlaşdırır. DDM Paylanmış Verilən Obyektləri — bütün istifadəçi cihazlarında avtomatik replikasiya olunan reaktiv obyektlər istifadə edir. Bir cihazda verilən dəyişiklikləri dərhal bütün digərlərində əks olunur. DDM şifrələməni dəstəkləyir və şəbəkə bağlantısını (Bluetooth, Wi-Fi, mobil verilənlər) nəzərə alır.
| Texnologiya | Məqsəd | Bənzəri |
|---|---|---|
| Distributed Data Objects | Cihazlar arasında reaktiv verilən sinxronizasiyası | iCloud / Firebase |
| Distributed File System | Cihazlararası vahid fayl məkanı | iCloud Drive |
| Ability Distribute | Ekranın başqa cihaza həvalə edilməsi | — |
| Super Device | Cihazları vahid sistemdə birləşdirmə | Apple Continuity |
| Multiscreen Collaboration | Bir tətbiqlə çoxsaylı ekranlarda işləmə | Sidecar (iPad + Mac) |
Super Device — 7-yə qədər Huawei cihazını vahid hesablama mühitində birləşdirməyə imkan verən HarmonyOS funksiyasıdır. İstifadəçi Super Device interfeysində cihaz ikonlarını sürükləyir: dinamiklər audio çıxışı olur, planşet ikinci ekran olur, saat telefonda fitness tətbiqi üçün ürək döyüntüsü monitoru olur. Bütün cihazlar 5 ms-dən az gecikmə ilə Distributed Bus vasitəsilə sinxronlaşır.
Huawei AppGallery HarmonyOS-un rəsmi tətbiq mağazasıdır, Google Play və App Store-dan sonra dünyada üçüncü ən böyükdür. Huawei-yə (2026) görə, AppGallery-nin 580 milyondan çox aylıq aktiv istifadəçisi var. Tərtibatçı qeydiyyatı fiziki şəxslər üçün pulsuzdur (Apple-ın 99 dollarından fərqli olaraq).
Tərtibatçı tətbiqi DevEco Studio-da (.hap formatı — HarmonyOS Ability Package) qurur. AppGallery Connect vasitəsilə nəşr: HAP faylını yükləmə, təsviri doldurma (ad, ikon, ekran görüntüləri), qiymət modelini konfiqurasiya etmə. Orta moderasiya müddəti 1-3 iş günüdür. Huawei təhlükəsizliyi (statik analiz), API uyğunluğunu və siyasətə uyğunluğu yoxlayır.
AppGallery dəstəkləyir: ödənişli tətbiqlər (Huawei komissiyası 15-30%), abunəliklər (15% komissiya), Huawei Ads Kit vasitəsilə reklam və IAP Kit vasitəsilə tətbiqdaxili alışlar. Huawei Pay Alipay və WeChat Pay-i dəstəkləyən Çin bazarı üçün ödəniş şlüzüdür. Beynəlxalq tərtibatçılar PayPal və ya bank köçürməsi vasitəsilə ödəniş alırlar.
| Tələb | Təsvir |
|---|---|
| Format | HAP (HarmonyOS Ability Package) və ya App Pack (çoxsaylı HAP) |
| İmza | DevEco Studio vasitəsilə rəqəmsal imza (Huawei Sertifikatı) |
| Hədəf API | HarmonyOS 3.x üçün API 9+, HarmonyOS NEXT üçün API 11+ |
| Ölçü | App Pack üçün 4 GB-a qədər, əsas HAP üçün 200 MB-a qədər |
| Dillər | Çin üçün sadələşdirilmiş Çin dilinin məcburi dəstəyi |
| Siyasət | Huawei Tərtibatçı Qaydalarına və Aİ üçün GDPR-ə uyğunluq |
HMS Core Google olmayan Huawei cihazlarında Google Play Services-i əvəz edən xidmətlər toplusudur. Daxildir: Push Kit (push bildirişləri), Map Kit (naviqasiya ilə xəritələr), Location Kit (geolokasiya), Ads Kit (reklam), Analytics Kit (analitika), Account Kit (Huawei ID vasitəsilə səlahiyyət). HMS Core HarmonyOS cihazlarında və Huawei Android cihazlarında (AppGallery vasitəsilə) mövcuddur.
Tez-tez verilən suallar
Əsas dil ArkTS-dir, ArkUI inteqrasiyası ilə TypeScript uzantısıdır. Performans kritik modullar üçün Native API (NAPI) vasitəsilə C++ istifadə olunur. Java HarmonyOS 3-4-də köhnə tətbiqlər üçün dəstəklənir. Huawei HarmonyOS NEXT-dən başlayaraq bütün yeni layihələr üçün ArkTS və C++ tövsiyə edir.
HarmonyOS öz mikronüvəsini (Linux deyil), paylanmış cihazlararası arxitekturanı, vahid DFS fayl sistemini və reaktiv DDM sinxronizasiyasını istifadə edir. HarmonyOS NEXT AOSP uyğunluğunu tamamilə tərk etdi və APK tətbiqlərini dəstəkləmir. Bütün tətbiqlər ArkTS və ya C++ dilində yazılır.
ArkUI ArkTS və C++ dilində HarmonyOS üçün bəyannaməli UI çərçivəsidir. İnterfeys @Component vasitəsilə build() metodu və reaktiv dəyişənlərlə (@State) təsvir olunur. ArkUI Qırılma Nöqtələri (xs-xl), GridRow/GridCol və GPU hesablamaları üçün fərdi Canvas renderinqi vasitəsilə adaptiv layoutu dəstəkləyir.
Rəsmi mağaza Huawei AppGallery-dir. Tərtibatçı qeydiyyatı pulsuzdur. Tətbiq HAP (HarmonyOS Ability Package) və ya App Pack formatında paylanır. Moderasiya 1-3 gün çəkir. Mağaza komissiyası monetizasiya modelindən asılı olaraq 15-30% təşkil edir. Çin üçün sadələşdirilmiş Çin dili dəstəyi məcburidir.
DevEco Studio IntelliJ IDEA əsasında HarmonyOS üçün rəsmi IDE-dir. ArkTS/C++ redaktoru, vizual ArkUI redaktoru, QEMU əsaslı emulyator, ani UI baxışı üçün Preview, CPU/yaddaş üçün Profiler və CI/CD üçün AppGallery Connect inteqrasiyası daxildir. Windows, macOS və Linux-u dəstəkləyir.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun