HarmonyOS鸿蒙Next中如何使用仓颉进行编程,请提供源码和步骤讲解

HarmonyOS鸿蒙Next中如何使用仓颉进行编程,请提供源码和步骤讲解

鸿蒙如何使用仓颉进行编程,请提供源码和步骤讲解

4 回复

去年用了一下,编辑器报错提示很恼火,找不到报错地方

更多关于HarmonyOS鸿蒙Next中如何使用仓颉进行编程,请提供源码和步骤讲解的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


一、结论

仓颉,是华为自研的一款面向全场景智能的新一代编程语言,是为鸿蒙量身打造的全场景智能应用编程语言,作为鸿蒙生态中的重要组成部分,旨在支持鸿蒙系统下的全场景应用开发 ,主打“原生智能化、天生全场景、高性能,强安全。

2019年,华为启动仓颉编程语言项目 。2025年6月20华为开发者大会,正式宣布将在7月开源。今天2025年7月1日,仓颉编程语言1.0.0版本正式公布对外下载

二、代码实现和详细解释

1、首先安装仓颉编程环境: 我们以window环境为例,在官网下载对应的zip压缩包后。在要安装的位置进行解压,就会得到如下内容: cke_600.png

2、此时我们肯定想,运行bat脚本进行安装: 但是你先别急,我知道你很急。首先我们需要配置环境变量,否则点击运行也没有效果。

新增CANGJIE_HOME环境变量,值为解压包根目录: cke_1227.png

3、之后运行bat安装脚本后,我们cmd输入版本命令进行环境检查:

cjc -v 

输出了仓颉编译器版本信息,表示已经成功安装了仓颉工具链。

cjpm run命令包含了编译和运行两个步骤。

4、创建仓颉项目,运行HelloWorld: 只需要使用仓颉提供的两句命令即可轻松实现,首先我们创建项目文件件cangjie_demo,在当前文件夹路径执行cmd命令如下:

// 初始化示例项目
cjpm init

cke_5677.png

// 运行
cjpm run

cke_6380.png

5、项目文件介绍:

编译时,会在应用根目录下生成一个cjpm.lock文件及target目录,其中target目录内含构建好的可执行文件。

其中src就是仓颉入口代码执行文件: mian.cj

package cangjie_demo

main(): 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,创建仓颉示例空项目: cke_12897.png

5、仓颉项目运行效果和代码示例:cke_11767.png

我们可以看到,仓颉编码比ArkTS写鸿蒙的代码更少并且更加简洁:

(不过一堆导包,我真是有点绷不住。OvO)

package ohos_app_cangjie_entry

internal 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 {
    @State
    var 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机型。

在HarmonyOS Next中使用仓颉编程,需安装DevEco Studio并创建仓颉项目。源码示例:

import ohos.app.Context;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;

class MainAbilitySlice {
    private static final HiLogLabel LABEL = new HiLogLabel(0, 0, "MyApp");
    
    onStart() {
        HiLog.info(LABEL, "仓颉应用启动");
    }
}

步骤:

  1. 安装DevEco Studio 4.0+版本
  2. 新建项目选择"仓颉"语言模板
  3. 在entry/src/main/cangjie目录编写代码
  4. 使用预览器或真机调试运行

仓颉语法类似TypeScript,支持声明式UI开发。

在HarmonyOS Next中,仓颉编程语言是官方推荐的应用开发语言。以下是使用仓颉进行编程的基本步骤和示例源码:

开发环境准备:

  1. 安装DevEco Studio Next版本(需支持仓颉)。
  2. 创建项目时选择"Application" -> “Empty Ability”,语言选择"Cangjie"。

基础步骤:

  1. 创建仓颉文件(.cj后缀)
  2. 定义组件和页面逻辑
  3. 构建UI界面
  4. 运行调试

示例源码(简单计数器):

// Counter.cj
import { Component, State, Builder } from '@ohos.arkui'

[@Component](/user/Component)
struct Counter {
  [@State](/user/State) count: number = 0

  build() {
    Column({ space: 20 }) {
      Text(`计数: ${this.count}`)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)
      
      Button('增加')
        .width(200)
        .height(50)
        .onClick(() => {
          this.count++
        })
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}

关键特性说明:

  • @Component:声明自定义组件
  • @State:状态装饰器,数据变化触发UI更新
  • build():构建UI描述的方法
  • 采用声明式UI语法,类似SwiftUI/Compose

项目结构:

Project/
  ├── entry/
  │   ├── src/
  │   │   ├── main/
  │   │   │   ├── cangjie/     # 仓颉源码
  │   │   │   ├── resources/   # 资源文件
  │   │   │   └── module.json5 # 模块配置

仓颉语言目前仍在持续演进中,建议查阅官方文档获取最新语法规范和API参考。

回到顶部