【HarmonyOS】鴻蒙使用倉頡編程入門
一、前言
倉頡,是華為自研的一款面向全場景智能的新一代編程語言,是為鴻蒙量身打造的全場景智能應用編程語言,作為鴻蒙生態中的重要組成部分,旨在支持鴻蒙系統下的全場景應用開發 ,主打“原生智能化、天生全場景、高性能,強安全。
2019年,華為啟動倉頡編程語言項目 。2025年6月20華為開發者大會,正式宣布將在7月開源。今天2025年7月1日,倉頡編程語言1.0.0版本正式公布對外下載。
倉頡是一門多范式編程語言,支持函數式、命令式和面向對象等多種范式,包括值類型、類和接口、泛型、代數數據類型、模式匹配、以及高階函數等特性。
支持類型推斷,能夠降低開發者類型標注的負擔;通過一系列簡明高效的語法,能夠減少冗余書寫、提升開發效率;
語言內置的各種語法糖和宏(macro)的能力,支持開發者基于倉頡快速開發領域專用語言(DSL),構建領域抽象。
二、倉頡編程環境安裝
1、首先安裝倉頡編程環境:
我們以window環境為例,在官網下載對應的zip壓縮包后。在要安裝的位置進行解壓,就會得到如下內容:
2、此時我們肯定想,運行bat腳本進行安裝:
但是你先別急,我知道你很急。首先我們需要配置環境變量,否則點擊運行也沒有效果。
新增CANGJIE_HOME環境變量,值為解壓包根目錄:
在Path環境變量中新增如下:
3、之后運行bat安裝腳本后,我們cmd輸入版本命令進行環境檢查:
cjc -v 輸出了倉頡編譯器版本信息,表示已經成功安裝了倉頡工具鏈。
cjpm run命令包含了編譯和運行兩個步驟。
4、創建倉頡項目,運行HelloWorld:
只需要使用倉頡提供的兩句命令即可輕松實現,首先我們創建項目文件件cangjie_demo,在當前文件夾路徑執行cmd命令如下:
// 初始化示例項目
cjpm init
// 運行
cjpm run
5、項目文件介紹:
編譯時,會在應用根目錄下生成一個cjpm.lock文件及target目錄,其中target目錄內含構建好的可執行文件。
其中src就是倉頡入口代碼執行文件:
mian.cj
package cangjie_demomain(): Int64 {println("hello world")return 0
}
三、鴻蒙中如何使用倉頡?
1、申請公測
倉頡在公開測試階段,體驗 HarmonyOS 應用開發的倉頡插件,需要申請公測權限。
進入倉頡開發者預覽版招募報名頁面,單擊 ”立刻報名“ 進入報名頁面,并填寫報名信息。
2、下載倉頡插件
審核通過后,去下載中心,即可查看到相關插件,將插件下載到本地:
需要注意插件和IDE的配套關系(DevEco Studio-Cangjie Plugin 5.0.13.210 Canary 版本配套 DevEco Studio 5.0.5 Release 發布)
3、在IDE中安裝下載到本地的插件
在File-setting-選擇Plugin-本地離線安裝(install Plugin from Disk)
安裝完成后,點擊重啟IDE即可使用倉頡。
4、創建倉頡示例項目:
File-New-Create Project,創建倉頡示例空項目:
5、倉頡項目運行效果和代碼示例:
我們可以看到,倉頡編碼比ArkTS寫鴻蒙的代碼更少并且更加簡潔:
(不過一堆導包,我真是有點繃不住。OvO)
package ohos_app_cangjie_entryinternal import ohos.base.LengthProp
internal import ohos.component.Column
internal import ohos.component.Row
internal import ohos.component.Button
internal import ohos.component.Text
internal import ohos.component.CustomView
internal import ohos.component.CJEntry
internal import ohos.component.loadNativeView
internal import ohos.state_manage.SubscriberManager
internal import ohos.state_manage.ObservedProperty
internal import ohos.state_manage.LocalStorage
import ohos.state_macro_manage.Entry
import ohos.state_macro_manage.Component
import ohos.state_macro_manage.State
import ohos.state_macro_manage.r@Entry
@Component
class EntryView {@Statevar message: String = "Hello Cangjie"func build() {Row {Column {Button(message).onClick {evt => AppLog.info("Hello Cangjie")}.fontSize(40).height(80)}.width(100.percent)}.height(100.percent)}
}
需要注意的是目前,僅支持HUAWEI Mate60 Pro ALN-AL00機型。