【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机型。