HarmonyOS: vad det är, systemarkitektur och utveckling på ArkUI

Författare: IT Sectr Publicerad: 2026-02-07 Lästid: 11 min

HarmonyOS är Huaweis eget operativsystem byggt på en distribuerad mikrokärna med stöd för plattformsoberoende arkitektur. Applikationsutveckling sker i ArkTS och C++ i DevEco Studio-miljön med ArkUI-ramverket. Systemet är utformat för sömlös integration av smartphones, surfplattor, klockor och IoT-enheter. Enligt Huawei är HarmonyOS installerat på över 700 miljoner enheter världen över.

Viktiga punkter

  • HarmonyOS — distribuerat Huawei-operativsystem med egen mikrokärna och multi-enhetsarkitektur
  • ArkTS — primärt utvecklingsspråk baserat på TypeScript för HarmonyOS-ekosystemet
  • ArkUI — deklarativt UI-ramverk liknande SwiftUI och Jetpack Compose
  • DevEco Studio — officiell IDE baserad på IntelliJ med emulator och Preview
  • Distribuerad arkitektur gör att en applikation kan köras på flera enheter samtidigt

Vad är HarmonyOS?

HarmonyOS är ett distribuerat operativsystem utvecklat av Huawei och först tillkännagivet 2019 som svar på begränsad tillgång till Google-tjänster på företagets nya enheter. HarmonyOS är byggt på en egen mikrokärna, skild från Linux, och är utformat för sömlös drift mellan enheter: smartphones, surfplattor, smartklockor, tv-apparater, fordonssystem och IoT-enheter.

Enligt Huawei (HarmonyOS Ecosystem Report, 2026) är systemet installerat på över 700 miljoner enheter, inklusive 300 miljoner smartphones. Den kinesiska marknaden står för 95% av installationerna. Från och med HarmonyOS 5.0 (NEXT, 2024) har systemet helt övergett Android AOSP-kompatibilitet — alla applikationer måste skrivas i ArkTS eller C++ med ArkUI.

Nyckelfunktionen i HarmonyOS är dess distribuerade arkitektur: en applikation kan köras på flera enheter samtidigt och flytta gränssnittet mellan skärmar. Till exempel startar en användare navigering på en telefon medan gränssnittet visas på bilens skärm — utan omkompilering eller extra kod.

HarmonyOS versionshistorik

HarmonyOS 1.0 (2019) — första versionen för Smart Screen, inte för smartphones. HarmonyOS 2.0 (2021) — öppnad för smartphones, surfplattor och klockor, stöd för AOSP-applikationer. HarmonyOS 3.0 (2022) — förbättrad distribuerad arkitektur, Super Device, Multiscreen Collaboration. HarmonyOS 4.0 (2023) — ArkUI 3.0, Live View, förbättrad prestanda. HarmonyOS NEXT (5.0, 2024) — fullständigt övergivande av AOSP, endast inbyggda HarmonyOS-applikationer.

HarmonyOS-versionÅrViktig innovation
1.02019Första versionen för Smart Screen TV
2.02021Smartphones, surfplattor, AOSP-kompatibilitet
3.02022Super Device, Multiscreen Collaboration
4.02023ArkUI 3.0, Live View, Celia Voice Assistant
NEXT (5.0)2024Fullständigt övergivande av AOSP, mikrokärna, endast ArkTS

HarmonyOS-arkitektur: distribuerad mikrokärna

HarmonyOS arkitektur skiljer sig fundamentalt från Android och iOS. Istället för den monolitiska Linux-kärnan använder HarmonyOS en egen mikrokärna som implementerar en minimal uppsättning privilegierade funktioner: minneshantering, processplanering och interprocesskommunikation. Alla andra tjänster körs i användarutrymmet.

Mikrokärna och säkerhet

HarmonyOS-mikrokärnan omfattar cirka 10 000 rader kod (Linux-kärnan har över 20 miljoner). En mindre kodbas innebär en mindre attackyta. Systemet använder formell verifiering — matematiskt bevis på korrektheten av kärnkoden. HarmonyOS stöder Trusted Execution Environment (TEE) på hårdvarunivå för biometri, betalningar och krypteringsnycklar. Interprocesskommunikation implementeras via IPC, 5 gånger mer prestanda än Binder i Android.

Fyra arkitekturlager

HarmonyOS-arkitekturen består av fyra lager: Kernel Subsystem (mikrokärna + drivrutiner), System Service Layer (systemtjänster: distribuerad data, filsystem, säkerhet), Framework Layer (ArkUI, multimedia, telefoni, AI-tjänster) och Application Layer (användarapplikationer). Varje lager är isolerat från underliggande lager via IPC.

Distribuerat filsystem

HarmonyOS tillhandahåller ett distribuerat filsystem (DFS) som förenar lagringen av alla användarens enheter i ett enda virtuellt utrymme. En applikation får åtkomst till filer via URI utan att ange en enhet — systemet dirigerar begäran till enheten där filen fysiskt lagras. DFS stöder end-to-end-kryptering och automatisk replikering av ofta använda data.

cpp
// Arbeta med HarmonyOS distribuerade filsystem
#include <dfs/storage_manager.h>
#include <uri/uri_helper.h>

using namespace OHOS::Storage;

// Hämta en fil-URI på en distribuerad enhet
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;  // Fil hittades på en av enheterna
        }
    }
    return Uri::Empty();
}

// Läsa data från en fjärrenhet
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);
}

I exemplet söker DistributedFileManager efter en fil på alla användarens online-enheter och returnerar en distribuerad URI. DistributedFile öppnar filen fysiskt på fjärrenheten via IPC, transparent för applikationen. Utvecklaren behöver inte veta var data lagras — systemet dirigerar begäran automatiskt.

ArkUI och ArkTS: gränssnittsutveckling

ArkUI är HarmonyOS deklarativa UI-ramverk utvecklat av Huawei. Gränssnittet beskrivs som en hierarki av komponenter med reaktiv databindning, liknande SwiftUI (iOS) eller Jetpack Compose (Android). ArkTS är ett utvecklingsspråk baserat på TypeScript med ytterligare statisk typning och integration med ArkUI via dekoratörerna @Component, @State, @Prop, @Link.

Grundläggande ArkTS-koncept

ArkTS utökar TypeScript genom harmonisering med UI-ramverket: @Component — en dekoratör för att deklarera en UI-komponent, build() — en obligatorisk metod som returnerar ett träd av UI-element, @State — en reaktiv variabel vars förändringar automatiskt ritar om komponenten, @Prop — en ingångsegenskap från föräldern, @Link — tvåvägsbindning. Alla ArkUI-komponenter använder kedjesyntax med modifierare (.width, .height, .backgroundColor).

java
// ArkTS — användarprofilskärm på ArkUI
@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("Laddningsfel", 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("Redigera", {
                            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%');
    }
}

// Applikationsingångspunkt
@Entry
@Component
struct MainApp {
    build(): void {
        Column() {
            ProfileScreen({
                onEditClick: () => {
                    console.info("Öppna profileditor");
                }
            });
        }
        .width('100%')
        .height('100%');
    }
}

ProfileScreen-komponenten i ArkTS demonstrerar: @State för reaktiva variabler, @Prop för ingångs-callback, Column/Stack/Text/Image/Button som grundläggande UI-komponenter, asynkron dataladdning via async/await. LoadingProgress visas under laddning. Alla storlekar anges i vp (virtuella pixlar) — adaptiva enheter liknande pt i iOS eller dp i Android.

Anpassning för olika enheter

ArkUI stöder responsiv design genom ett system av brytpunkter (xs, sm, md, lg, xl) som motsvarar skärmbredd. Komponenter omorganiseras automatiskt vid växling från telefon till surfplatta eller klocka. GridRow och GridCol är adaptiva containrar som ändrar antalet kolumner beroende på brytpunkt. Storleksenheter: vp (virtuella pixlar), fp (teckensnittspixlar — skalas med teckensnittsinställningar), lpx (logiska pixlar för klockor).

EnhetstypBrytpunktDiagonalEnhet
Smartklockaxs1,2"–2,0"lpx
Smartphonesm4,7"–6,9"vp
Surfplattamd7,0"–12,0"vp
Laptoplg13,0"–16,0"vp
Monitor / TVxl24,0"–65,0"vp

DevEco Studio och utvecklingsverktyg

DevEco Studio är den officiella integrerade utvecklingsmiljön (IDE) för HarmonyOS, baserad på IntelliJ IDEA Community Edition. Den innehåller en kodredigerare med stöd för ArkTS och C++, en visuell ArkUI-redigerare (drag-and-drop), en HarmonyOS-enhetsemulator, Preview för omedelbar UI-visning och Profiler för prestandaanalys.

HarmonyOS-emulator

DevEco Studio innehåller en emulator baserad på QEMU, som stöder smartphones (olika skärmstorlekar), surfplattor, klockor och TV-apparater. Emulatorn simulerar en distribuerad miljö: du kan köra flera virtuella enheter och testa interaktion mellan enheter. Emulatorn kräver virtualisering (Hyper-V på Windows, KVM på Linux).

Preview och Live Preview

ArkUI Preview är en funktion för omedelbar UI-visning utan att bygga eller starta emulatorn. Kodändringar visas i Preview inom 1-2 sekunder. Alla standardkomponenter och animationer stöds. Preview fungerar med olika brytpunkter för att testa anpassningsförmåga. Live Preview ansluter till en verklig enhet via USB eller Wi-Fi för testning på hårdvara.

HarmonyOS SDK och API

HarmonyOS SDK innehåller: ArkUI (UI-komponenter), Multimedia Kit (ljud/videoinspelning och uppspelning), Connectivity Kit (Bluetooth, Wi-Fi, NFC), Location Kit (geolokalisering), Sensor Kit (sensorer), AI Kit (ML Kit med inferens på enheten på Huawei NPU). API-versioner: API 9 (HarmonyOS 3.x), API 10 (4.x), API 11 (NEXT).

java
// Initiera kamera på HarmonyOS via 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 {
            // Begär kameraåtkomst
            const granted = await Permissions.request("ohos.permission.CAMERA");
            if (!granted) return;

            // Hämta kamera (0 — bakre, 1 — främre)
            const camera = await this.cameraManager.getCamera(0);

            // Skapa kamerainmatning
            this.cameraInput = await this.cameraManager.createCameraInput(camera);
            await this.cameraInput.open();

            // Starta förhandsvisning på Surface (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-komponenten demonstrerar arbete med Multimedia Kit: begära tillstånd via Permissions.request, hämta kamera via CameraManager, skapa CameraInput och PreviewOutput. ArkUI Surface (via XComponent) visar videoströmmen. Alla operationer är asynkrona med felhantering via try/catch.

Distribuerade applikationer och mellan enheter

Distribuerad arkitektur hos HarmonyOS är den största skillnaden från konkurrenterna. En applikation kan bestå av flera atomära tjänster (Atomic Services), som var och en körs på den optimala enheten. Användaren påbörjar en uppgift på en enhet och fortsätter på en annan utan att förlora kontext.

Atomic Services och Ability

Atomic Service är den minsta distributionsenheten på HarmonyOS. Varje tjänst implementerar en eller flera Ability (analogt med Activity i Android). Page Ability — en skärm med UI, Service Ability — en bakgrundsuppgift, Data Ability — dataåtkomst. En applikation kan delegera en Ability till en annan enhet: till exempel visas UI på surfplattan medan AI-bearbetning körs på en telefon med NPU.

Distribuerad Datahantering

Systemet för distribuerad datahantering (DDM) synkroniserar applikationstillståndet mellan enheter. DDM använder distribuerade dataobjekt — reaktiva objekt som automatiskt replikeras till alla användarens enheter. Dataändringar på en enhet återspeglas omedelbart på alla andra. DDM stöder kryptering och tar hänsyn till nätverksanslutning (Bluetooth, Wi-Fi, mobildata).

TeknikSyfteAnalog
Distributed Data ObjectsReaktiv datasynkronisering mellan enheteriCloud / Firebase
Distributed File SystemEnhetligt filutrymme mellan enheteriCloud Drive
Ability DistributeSkärmdelegering till annan enhet
Super DeviceSammanfoga enheter till ett systemApple Continuity
Multiscreen CollaborationArbeta med en applikation på flera skärmarSidecar (iPad + Mac)

Super Device

Super Device — en HarmonyOS-funktion som gör det möjligt att förena upp till 7 Huawei-enheter i en enda datormiljö. Användaren drar enhetsikoner i Super Device-gränssnittet: högtalare blir ljudutgång, surfplattan blir en andra skärm, klockan blir en pulsmätare för en fitnessapp på telefonen. Alla enheter synkroniseras via en distribuerad buss (Distributed Bus) med en latens på mindre än 5 ms.

AppGallery och applikationspublicering

Huawei AppGallery är den officiella appbutiken för HarmonyOS, den tredje största i världen efter Google Play och App Store. Enligt Huawei (2026) har AppGallery över 580 miljoner månatliga aktiva användare. Utvecklarregistrering är gratis för privatpersoner (till skillnad från Apples $99).

Publiceringsprocess

Utvecklaren bygger applikationen i DevEco Studio (.hap-format — HarmonyOS Ability Package). Publicering via AppGallery Connect: ladda upp HAP-fil, fyll i beskrivning (namn, ikon, skärmbilder), konfigurera prismodell. Genomsnittlig modereringstid är 1-3 arbetsdagar. Huawei kontrollerar säkerhet (statisk analys), API-kompatibilitet och policyefterlevnad.

Monetarisering

AppGallery stöder: betalapplikationer (Huawei-provision 15-30%), prenumerationer (15% provision), annonsering via Huawei Ads Kit och köp i appen via IAP Kit. Huawei Pay är en betalningsgateway för den kinesiska marknaden som stöder Alipay och WeChat Pay. Internationella utvecklare får betalningar via PayPal eller banköverföring.

KravBeskrivning
FormatHAP (HarmonyOS Ability Package) eller App Pack (flera HAP)
SignaturDigital signatur via DevEco Studio (Huawei-certifikat)
Mål-APIAPI 9+ för HarmonyOS 3.x, API 11+ för HarmonyOS NEXT
StorlekUpp till 4 GB för App Pack, upp till 200 MB för bas-HAP
SpråkObligatoriskt stöd för förenklad kinesiska för Kina
PolicyEfterlevnad av Huaweis utvecklarregler och GDPR för EU

Huawei Mobile Services (HMS)

HMS Core är en uppsättning tjänster som ersätter Google Play Services på Huawei-enheter utan Google. Innehåller: Push Kit (push-meddelanden), Map Kit (kartor med navigering), Location Kit (geolokalisering), Ads Kit (annonsering), Analytics Kit (analys), Account Kit (auktorisering via Huawei ID). HMS Core finns på enheter med HarmonyOS och på Huawei Android-enheter (via AppGallery).

Vanliga frågor

Vilka språk används för HarmonyOS-utveckling?

Det primära språket är ArkTS, en TypeScript-förlängning med ArkUI-integration. För prestandakritiska moduler används C++ via Native API (NAPI). Java stöds för äldre applikationer på HarmonyOS 3-4. Huawei rekommenderar ArkTS och C++ för alla nya projekt från och med HarmonyOS NEXT.

Hur skiljer sig HarmonyOS från Android?

HarmonyOS använder en egen mikrokärna (inte Linux), distribuerad arkitektur mellan enheter, enhetligt DFS-filsystem och reaktiv DDM-synkronisering. HarmonyOS NEXT har helt övergett AOSP-kompatibilitet och stöder inte APK-applikationer. Alla applikationer skrivs i ArkTS eller C++.

Vad är ArkUI?

ArkUI är ett deklarativt UI-ramverk för HarmonyOS i ArkTS och C++. Gränssnittet beskrivs via @Component med build()-metod och reaktiva variabler (@State). ArkUI stöder adaptiv layout via brytpunkter (xs-xl), GridRow/GridCol och anpassad Canvas-rendering för GPU-beräkningar.

Hur distribueras HarmonyOS-applikationer?

Den officiella butiken är Huawei AppGallery. Utvecklarregistrering är gratis. Applikationen distribueras i HAP-format (HarmonyOS Ability Package) eller App Pack. Moderering tar 1-3 dagar. Butiksprovisionen är 15-30% beroende på affärsmodell. Stöd för förenklad kinesiska är obligatoriskt för Kina.

Vad är DevEco Studio?

DevEco Studio är den officiella IDE:n för HarmonyOS baserad på IntelliJ IDEA. Den innehåller ArkTS/C++-redigerare, visuell ArkUI-redigerare, QEMU-baserad emulator, Preview för omedelbar UI-visning, Profiler för CPU/minne och integration med AppGallery Connect för CI/CD. Stöder Windows, macOS och Linux.

Sammanfattning

  • HarmonyOS — distribuerat Huawei-operativsystem med mikrokärna, övergivande av AOSP i NEXT och stöd mellan enheter
  • ArkTS — primärt utvecklingsspråk baserat på TypeScript med @Component-, @State-, @Prop-dekoratörer
  • ArkUI — deklarativt ramverk med adaptiv layout via brytpunkter och GridRow/GridCol
  • DevEco Studio — IDE på IntelliJ med emulator, Preview och AppGallery Connect-integration
  • Distribuerad arkitektur inkluderar DFS, DDM, Ability Distribute och Super Device upp till 7 enheter
  • AppGallery — officiell butik med gratis registrering, HAP-format och 15-30% provision
  • HMS Core tillhandahåller Push Kit, Map Kit, Location Kit, Ads Kit, Analytics Kit och Account Kit

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också