鴻蒙極速入門(二)-開發準備和HelloWorld

来源:https://www.cnblogs.com/anywherego/archive/2023/10/25/17786762.html
-Advertisement-
Play Games

一、開發準備 本篇博客基於的系統版本:華為官方HarmonyOS版本3.1、OpenHarmony版本4.0Beta 開發語言 ArkTS語言(推薦) JS語言(支持) Java語言(已放棄支持) 從Harmony4.0開始,官方主推ArkTS語言,且不再支持Java語言 UI框架-方舟開發框架(A ...


一、開發準備

本篇博客基於的系統版本:華為官方HarmonyOS版本3.1、OpenHarmony版本4.0Beta

開發語言

  • ArkTS語言(推薦)
  • JS語言(支持)
  • Java語言(已放棄支持)

從Harmony4.0開始,官方主推ArkTS語言,且不再支持Java語言

UI框架-方舟開發框架(ArkUI框架)

個人理解:類似iOS的UIKit/SwiftUI,或者安卓的Jetpack的UI組件/Compose

開發範式

方舟開發框架(ArkUI框架)針對不同目的和技術背景的開發者提供了兩種開發範式:

  • 聲明式開發範式:ArkTS的聲明式開發範式
  • 類Web開發範式:相容JS的類Web開發範式
開發範式名稱 語言生態 UI更新方式 適用場景 適用人群
聲明式開發範式 ArkTS語言 數據驅動更新 複雜度較大、團隊合作度較高的程式 移動系統應用開發人員、系統應用開發人員
類Web開發範式 JS語言 數據驅動更新 界面較為簡單的程式應用和卡片 Web前端開發人員

個人理解:類似iOS的SwiftUI(聲明式)和UIKit,或者安卓的JetpackCompose(聲明式)和JetpackUI

應用模型

概念

  • 官方解釋:應用模型是HarmonyOS為開發者提供的應用程式所需能力的抽象提煉,它提供了應用程式必備的組件和運行機制。
  • 個人理解:開發腳手架+底層運行引擎,類似開發模板

模型

  • Stage模型:HarmonyOS 3.1 Developer Preview版本開始新增的模型,是目前主推且會長期演進的模型。在該模型中,由於提供了AbilityStage、WindowStage等類作為應用組件和Window視窗的“舞臺”,因此稱這種應用模型為Stage模型。
  • FA(Feature Ability)模型:HarmonyOS早期版本開始支持的模型,已經不再主推。

Stage和FA的區別

技術選型

根據官方文檔中的介紹,目前合適的開發技術棧組合:

Stage模型 + 聲明式開發範式 + ArkUI框架 + ArkTS語言

二、環境搭建

下載DevEcoStudio

HarmonyOS 3.1 Release (推薦)

目前華為官方HUAWEI DevEco Studio開放下載的版本為3.1 Release,支持到HarmonyOS4.0

下載地址:HUAWEI DevEco Studio 3.1 Release

OpenHarmony 4.0 Beta2

  • 華為從HarmonyNext版本開始,也就是HarmonyOS4.0之後的版本,將刪除AOSP代碼,既純凈版鴻蒙;
  • 如果想提前瞭解Next版本的內容,可以在OpenHarmony官網下載HUAWEI DevEco Studio 的4.0 Beta2版本進行開發

下載地址:HUAWEI DevEco Studio 4.0 Beta2

配置開發環境

配置開發環境官方文檔,這裡不再贅述,使用預設選項,一路Next即可。

三、HelloWorld

1.創建ArkTS工程

打開DevEco Studio,點擊Create Project創建工程。或通過DevEco Studio的菜單File > New > Create Project來創建一個新工程。

選擇Application應用開發,選擇模板“Empty Ability”,點擊Next進行下一步配置。

進入配置工程界面,Compile SDK選擇“3.1.0(API 9)”,Model 選擇“Stage”,其他參數保持預設設置即可。

點擊Finish,等待十幾秒MyApplication工程就創建完成了。

2.ArkTS工程目錄結構(Stage模型)

目錄說明:

| MyApplication
|__ entry: HarmonyOS工程模塊,編譯構建生成一個HAP包。
      |__ src: 用於存放ArkTs源碼
      |__ main
      |__ ets
          |__ entryability: 應用/服務的入口
          |__ pages: 應用/服務包含的頁面
          |__ resources: 存放應用/服務所用到的資源文件,如圖形、多媒體、字元串、佈局文件

文件說明:

  • AppScope > app.json5:應用的全局配置信息。
  • entry > src > main > module.json5:Stage模型模塊配置文件。主要包含HAP包的配置信息、應用/服務在具體設備上的配置信息以及應用/服務的全局配置信息。 module.json5配置文件
  • entry > build-profile.json5:應用級配置信息,包括簽名、產品配置等。
  • entry > hvigorfile.ts:應用級編譯構建任務腳本。

3.頁面源碼

打開entry > src > main > pages > Index.ets 文件,查看頁面源碼:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

4.啟動模擬器

創建模擬器

點擊DevEco Studio右上角的No Devices > Device Manager,或者點擊菜單Tools > Device Manager

在Device Manager界面,選擇Local Emulator(本地模擬器),點擊 New Emulator

一路Next,等待模擬器文件(1G左右)下載完成後,模擬器既完成創建。

啟動模擬器(重要)

註意創建完模擬器後,DevEco Studio右上角依然顯示的是No Devices,需要我們先在Device Manager中手動啟動模擬器

啟動完成後:

運行程式

點擊DevEco Studio右上角的Run按鈕,運行程式

運行成功後:

恭喜完成了第一個HarmonyOS應用。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 內置參考電壓的使用 應用筆記 前言 CH32V/F 系列單片機能夠在一定的電壓範圍內進行工作,以 CH32V203C8T6 晶元為例,在不使用 USB 外設時,最低工作電壓能夠達到 2.4V。較為寬泛的工作電壓,允許單片機直接使用電池供電,但由於 CH32V203C8T6 晶元沒有獨立的 Vref ...
  • 1、前言 《中庸》有:“九層之台,起於壘土” 之說,那麼對於我們搞技術的人,同樣如此! 對於Linux記憶體管理,你可以說沒有留意過,但是它存在於我們日常開發的方方面面,你所打開的文件,你所創建的變數,你所運行的程式,無不以此為基礎,它可以說是操作系統的基石;只是底層被封裝的太好了,以至於我們在做開發 ...
  • 1. 線程 1.1. MySQL服務端是多線程軟體。它的每個組件都使用線程 1.2. 每個線程至少有兩個唯一標識符 1.2.1. 操作系統線程ID 1.2.2. MySQL內部線程ID 2. 對象類型 2.1. OBJECT_TYPE列 2.2. EVENT 2.3. FUNCTION 2.4. P ...
  • redis面試提問 轉載:https://blog.csdn.net/uuqaz/article/details/127088333 Redis 是面試中繞不過的檻,只要在簡歷中寫了用過 Redis,肯定逃不過。今天我們就來模擬一下麵試官在 Redis 這個話題上是如何一步一步深入,全面考察候選人對 ...
  • YARN(Yet Another Resource Negotiator)是 Hadoop 生態系統中的資源調度器,主要用於資源管理和作業調度。YARN 自身具備隊列管理功能,通過對 YARN 資源隊列進行配置和管理,實現集群資源的分配,以滿足不同應用和用戶的需求。YARN 的引入為集群在利用率、資 ...
  • 什麼是成本 MySQL中一條SQL語句的執行成本包含兩個部分: I/O成本:從磁碟中載入數據(頁)到記憶體的的過程中消耗的時間稱為I/O成本。 CPU成本:讀取記錄以及檢測記錄是否滿足搜索條件、對結果集進行排序等操作,消耗的時間稱為CPU成本。 MySQL預設規定讀取一個頁面的I/O成本是1.0,讀取 ...
  • 1.背景概述 在一次主從複製架構中,由於主節點binlog損壞,導致從節點無法正常同步數據,只能重做從節點;因此使用MySQL 8.0.17開始提供的clone技術進行恢復,恢復後的2天都發生了主從報錯數據衝突。 通過解析binlog發現,同一時刻主從節點都在執行同一條語句,因此詢問業務是否在主從節 ...
  • ArkTS是HarmonyOS優選的主力應用開發語言。ArkTS圍繞應用開發在TypeScript(簡稱TS)生態基礎上做了進一步擴展,繼承了TS的所有特性,是TS的超集。因此,在學習ArkTS語言之前,需要先瞭解一下TS語言的基礎知識。 一、基礎類型 1. 數字類型-number 雙精度 64 位 ...
一周排行
    -Advertisement-
    Play Games
  • 當使用Autofac處理一個介面有多個實現的情況時,通常會使用鍵(key)進行區分或者通過IIndex索引註入,也可以通過IEnumerable集合獲取所有實例,以下是一個具體的例子,演示如何在Autofac中註冊多個實現,並通過構造函數註入獲取指定實現。 首先,確保你已經安裝了Autofac Nu ...
  • 本篇將分享Prometheus+Grafana的監控平臺搭建,並監控之前文章所搭建的主機&服務,分享日常使用的一些使用經驗本篇將配置常用服務的監控與面板配置:包括 MySQL,MongoDB,CLickHouse,Redis,RabbitMQ,Linux,Windows,Nginx,站點訪問監控,已... ...
  • 使用Aspirate可以將Aspire程式部署到Kubernetes 集群 工具安裝 dotnet tool install -g aspirate --prerelease 註意:Aspirate 正在開發中,該軟體包將作為預覽版進行版本控制,--prelease 選項將獲得最新的預覽版。 容器註 ...
  • 前言 本文要說的這種開發模式,這種模式並不是只有blazor支持,js中有一樣的方案next.js nuxt.js;blazor還有很多其它內容,本文近關註漸進式開發模式。 是的,前後端是主流,不過以下情況也許前後端分離並不是最好的選擇: 小公司,人員不多,利潤不高,創業階段能省則省 個人開發者,接 ...
  • 在.NET中,Microsoft.Extensions.Logging是一個靈活的日誌庫,它允許你將日誌信息記錄到各種不同的目標,包括資料庫。在這個示例中,我將詳細介紹如何使用Microsoft.Extensions.Logging將日誌保存到MySQL資料庫。我們將使用Entity Framewo ...
  • chatgpt介面開發筆記3: 語音識別介面 1.文本轉語音 1、瞭解介面參數 介面地址: POST https://api.openai.com/v1/audio/speech 下麵是介面文檔描述內容: 參數: { "model": "tts-1", "input": "你好,我是饒坤,我是ter ...
  • 前面兩篇文章主要是介紹瞭如何解決高併發情況下資源爭奪的問題。但是現實的應用場景中除了要解決資源爭奪問題,高併發的情況還需要解決更多問題,比如快速處理業務數據等, 本篇文章簡要羅列一下與之相關的更多技術細節。 1、非同步編程:使用async和await關鍵字進行非同步編程,這可以避免阻塞線程,提高程式的響 ...
  • 大家好,我是棧長。 Nacos 2.3.0 前幾天正式發佈了,新增了不少實用性的新功能,真是史上最強版本。 Nacos 2.3.0 還真是一個比較重要的大版本,因為它涉及了太多重大更新,今天棧長給大家來解讀下。 Nacos 先掃個盲: Nacos 一個用於構建雲原生應用的動態服務發現、配置管理和服務 ...
  • IDEA的遠程開發功能,可以將本地的編譯、構建、調試、運行等工作都放在遠程伺服器上執行,而本地僅運行客戶端軟體進行常規的開發操作即可,舊版本IDEA目前不支持該功能.,本例使用的是IDEA2023.2.5版本 下麵介紹如何在IDEA中設置遠程連接伺服器開發環境並結合Cpolar內網穿透工具實現無公網 ...
  • 本文解釋為啥會有響應式編程,為什麼它在開發者中不太受歡迎,以及引入 Java 虛擬線程後它可能最終會消失。 命令式風格編程一直深受開發者喜愛,如 if-then-else、while 迴圈、函數和代碼塊等結構使代碼易理解、調試,異常易追蹤。然而,像所有好的東西一樣,通常也有問題。這種編程風格導致線程 ...