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، چندرسانهای، تلفن، سرویسهای هوش مصنوعی)، Application Layer (برنامههای کاربر). هر لایه از طریق IPC از لایه زیرین جدا شده است.
HarmonyOS یک سیستم فایل توزیعشده (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 از طراحی واکنشگرا از طریق سیستم نقاط شکست (xs، sm، md، lg، xl) متناسب با عرض صفحه پشتیبانی میکند. مؤلفهها هنگام تغییر از تلفن به تبلت یا ساعت به طور خودکار مرتب میشوند. GridRow و GridCol کانتینرهای تطبیقی هستند که تعداد ستونها را بسته به نقطه شکست تغییر میدهند. واحدهای اندازه: vp (پیکسل مجازی)، fp (پیکسل فونت — با تنظیمات فونت مقیاس میشود)، lpx (پیکسل منطقی برای ساعتها).
| نوع دستگاه | نقطه شکست | قطر | واحد |
|---|---|---|---|
| ساعت هوشمند | 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 است که از گوشیهای هوشمند (اندازههای مختلف صفحه)، تبلتها، ساعتها و تلویزیونها پشتیبانی میکند. شبیهساز یک محیط توزیعشده را شبیهسازی میکند: میتوانید چندین دستگاه مجازی اجرا کنید و تعامل بیندستگاهی را آزمایش کنید. شبیهساز به مجازیسازی نیاز دارد (Hyper-V در Windows، KVM در Linux).
ArkUI Preview — قابلیت مشاهده فوری UI بدون ساخت یا راهاندازی شبیهساز. تغییرات کد در عرض 1-2 ثانیه در Preview ظاهر میشوند. همه مؤلفهها و انیمیشنهای استاندارد پشتیبانی میشوند. Preview با نقاط شکست مختلف برای آزمایش سازگاری کار میکند. 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 روی تبلت نمایش داده میشود در حالی که پردازش هوش مصنوعی روی تلفن با NPU اجرا میشود.
سیستم مدیریت دادههای توزیعشده (DDM) وضعیت برنامه را بین دستگاهها همگامسازی میکند. DDM از اشیاء داده توزیعشده — اشیاء واکنشگرایی که به طور خودکار در همه دستگاههای کاربر تکثیر میشوند — استفاده میکند. تغییر دادهها در یک دستگاه بلافاصله در همه دستگاههای دیگر منعکس میشود. DDM از رمزنگاری پشتیبانی میکند و اتصال شبکه (Bluetooth، Wi-Fi، دادههای سلولی) را در نظر میگیرد.
| فناوری | هدف | مشابه |
|---|---|---|
| Distributed Data Objects | همگامسازی واکنشگرای داده بین دستگاهها | iCloud / Firebase |
| Distributed File System | فضای فایل یکپارچه بین دستگاهها | iCloud Drive |
| Ability Distribute | واگذاری صفحه به دستگاه دیگر | — |
| Super Device | ادغام دستگاهها در یک سیستم واحد | Apple Continuity |
| Multiscreen Collaboration | کار با یک برنامه روی چند صفحه | Sidecar (iPad + Mac) |
Super Device — قابلیت HarmonyOS که امکان ادغام حداکثر 7 دستگاه Huawei را در یک محیط محاسباتی واحد فراهم میکند. کاربر آیکونهای دستگاه را در رابط Super Device میکشد: بلندگوها خروجی صدا میشوند، تبلت صفحه دوم میشود، ساعت مانیتور ضربان قلب برای برنامه تناسب اندام روی تلفن میشود. همه دستگاهها از طریق یک گذرگاه توزیعشده (Distributed Bus) با تأخیر کمتر از 5 میلیثانیه همگام میشوند.
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 گیگابایت برای App Pack، تا 200 مگابایت برای HAP پایه |
| زبانها | پشتیبانی اجباری از چینی سادهشده برای چین |
| سیاست | انطباق با قوانین توسعهدهندگان Huawei و GDPR برای اتحادیه اروپا |
HMS Core مجموعهای از سرویسها است که جایگزین Google Play Services در دستگاههای Huawei بدون Google میشود. شامل: Push Kit (اعلانهای فشاری)، 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 پشتیبانی میشود. Huawei برای همه پروژههای جدید از HarmonyOS NEXT به بعد ArkTS و C++ را توصیه میکند.
HarmonyOS از هستهریز خود (نه Linux)، معماری توزیعشده بیندستگاهی، سیستم فایل DFS یکپارچه و همگامسازی واکنشگرای DDM استفاده میکند. HarmonyOS NEXT سازگاری با AOSP را کاملاً کنار گذاشته و از برنامههای APK پشتیبانی نمیکند. همه برنامهها با ArkTS یا C++ نوشته میشوند.
ArkUI یک فریمورک UI اعلامی برای HarmonyOS در ArkTS و C++ است. رابط از طریق @Component با متد build() و متغیرهای واکنشگرا (@State) توصیف میشود. ArkUI از طرحبندی تطبیقی از طریق نقاط شکست (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 از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.