Suositut: Tiedot päivitetty 11. marraskuuta 2026

Kategoriat

Internet1 405
Viestintä327
Ääni ja video929
Grafiikka ja suunnittelu563
Toimisto ja tuottavuus1 164
Kehitystyökalut3 260
Tekoälytyökalut596
Tietoturva ja yksityisyys405
Järjestelmätyökalut3 170
Pelit542
Opiskelu ja tiede240
Verkko ja IT292

Cangjie (STS) Android: vanhemmat versiot ja versiohistoria

面向全场景智能的新一代编程语言

Cangjie (STS) Android -ohjelmasta on luettelossa 2 versiota, ensimmäinen 29. toukokuuta 2026 ja uusin 1.2.0. Jokainen versio linkittää julkaisijan omiin asennustiedostoihin.

2026: 2 2 26
VersioPäivämääräKokoTiedostot
1.2.0Uusin 22. syyskuuta 2026 148,9 Mt 64-bittinen EXE (NSIS) 148,9 Mt
Muutosloki
Cangjie 1.2.0 Release Notes
版本介绍
本版本为 STS 版本,版本号 1.2.0,维护周期 6 个月;STS 1.1.x 版本计划 2026.10.30 停止维护。
相比 1.1.3 版本,本版本主要增强跨平台,编译器和工具链能力。
- 跨平台新增 Android 23 (API 23) aarch64 支持、iOS LTO 支持、跨语言互操作(ObjC/Java)增强。
- 优化编译器稳定性与性能:修复 broken 声明重载排除、const 函数 ICE 修复、字符串插值位置信息、synchronized 块声明拒绝等一批语义 ICE 问题。
- 工具链 LSP 新增跨平台跳转定义、接口提取/重命名、数组索引提取、主线程 GetArkAST 移除、cjo 字节 intern 去重等能力。
详见后续各部分介绍。

语言
语法与语义
- common/platform 关键字支持修饰泛型 extend 语法。
- platform 声明函数返回类型支持为 common 的子类型。
- common/platform 有初始值的变量支持不显式指定类型。
- 当 common class/struct/enum 或 common extend 的所有成员函数都包含实现时,支持省略 platform 声明。
- 支持 common abstract class 匹配 platform sealed abstract class。
跨平台互操作
- 支持 ObjC 使用 Cangjie 接口、 Cangjie 枚举类型。
- 支持 Java 使用 Cangjie 泛型类型、Lambda 。
- 支持表达式类型、元组类型。
- 支持 ObjC 使用 Cangjie Open class 类型、泛型类型。
编译器
新增特性
跨平台
- Android 交叉编译及运行平台支持范围扩大至 API level 23 及以上,通过 --target=aarch64-linux-android 或者 --target=aarch64-linux-android23 编译选项使能。
- 支持 iOS x86_64 模拟器交叉编译能力,详见 cjc 编译选项 --target 说明。
- LTO 支持 iOS 设备,同时支持 dylib、exe 两种方式,dylib 支持包级可见性配置。
- 新增 OHOS 版本仓颉 SDK,支持在鸿蒙 PC 运行。
调试与开发辅助
- 新增 --dump-ast、--dump-chir、--dump-ir、--dump-all、--dump-to-screen 选项供编译器开发者调试分析,查看编译过程中的可读形式抽象表达。
变更特性
- 加强静态变量的初始化检查,存在破坏性变更。详见 issue 105。

| 变更前 | 变更后 | 适配举例 |
| ------------------------------------------------------------------------ | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 函数或者 lambda 表达式中对静态成员变量赋值认为是合法的初始化,未编译报错 | 函数或者 lambda 表达式中对静态成员变量赋值会编译报错 | 将原先在函数或者 lambda 表达式中赋值当做初始化的代码修改为在静态变量定义时或者 static init() 函数内初始化;对需要函数中赋值的情况可使用 Option 包装为 var 变量(以 None 为初值),新增 prop 与原变量名相同,在 getter/setter 中适配赋值逻辑 |
- common/platform 声明新增注解一致性检查;不支持修饰主构造函数;abstract platform class 不支持添加额外抽象成员;common sealed class 的所有直接子类型必须在同一个 source set;函数默认参数可在 common 或 platform 声明任一侧定义。
修复问题
- 哈希常量命名防碰撞。
- 避免运行时 envsetup 中出现空 LD_LIBRARY_PATH 条目。
- 为字符串插值 desugar 节点添加源码位置。
- 重载决议排除 broken 声明、明确 broken 函数查找行为。
- 修复 const 函数中 pattern 变量的 ICE 问题。
- 修复 synchronized 块中的变量声明问题。
- 修正 --product 选项默认值文档、Android 构建文档 macOS NDK 路径改为 Linux。
- 修复 devirtualization 问题。
- 修复运行时崩溃 SIGSEGV 问题。

运行时
新增特性
- 支持 Android 16KB 页对齐;16KB 页对齐仅应用于 android23 aarch64 及以上版本。
- 支持 iOS 的 trace 能力,支持 iOS 上仓颉未捕获异常处理。
- 仓颉运行时支持 ios-x86_64 模拟器构建以及运行。
- 条件编译新增 env 内置条件变量,提供目标平台 ABI 等额外信息,详见开发指南条件编译章节。
修复问题
- Android 时区数据改用 bionic property API 。
- loadTZData 修复 trimEnd 空字符问题。
- 修复 android arm32 寄存器上下文问题。
- 修复 finalizer 线程结束问题。
- 修复 gate 警告、限定 AST 解析结果类型范围。
- 优化 ohos cjthread 日志。
- 修复 --static 编译时 __gnu_cxx::__verbose_terminate_handler() 多重定义问题。
- 修复 Windows 平台,静态链接运行报错问题。
- 修复上游包兼容性更新导致运行错误问题。
- 修复 macOS 平台用户信号处理函数抛未捕获异常导致程序结束问题。
- 修复 target 所属 ExtensionDef 计算错误问题。
- 修复 lds 脚本合并 text section 导致链接失败问题。

标准库
新增特性
- 新增可通过反射获取包的组织名。
- 新增适配鸿蒙 PC。
- 标准库支持 ios-x86_64 模拟器构建以及运行。
- 跨平台开发 FFI-ObjC 支持:仓颉映射 ObjC 顶层函数、使用 init* 构造对象、Option 映射 ObjC 指针类型、映射 ObjC 的 C Struct 类型。
变更特性
- 异常链特性:Exception 预埋 private 成员变量;反射特性:TypeInfo 预埋 private 成员变量。

| 变更前 | 变更后 | 适配举例 |
| ----------------------------------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------- |
| LTS 1.0.0 之后的 SDK 版本间,编译产物二进制兼容 | 本版本与早期版本 SDK 的编译产物二进制不兼容,混用可能导致运行时错误 | 使用本版本(及更新版本)SDK 对项目代码及其依赖包代码执行全量重编 |
- 正则库依赖的开源 PCRE2 版本从 10.44 升级为 10.46。
修复问题
- 对 std.fs 的异常信息进行了优化,确保异常包含足够的定位信息。
- 对 Array 完善异常信息导致的性能和 codesize 劣化进行修复。
- 修复 TimerScheduler.add() 对 零/负时长 改用 >= 判断问题。

工具链
IDE 插件
新增特性
- 支持组织名语法高亮和补全。
- 支持中心仓路径,开发者可配置中心仓依赖并提供相关语言服务。
- 语言服务适配 cjpm combined 和 lto-combined:若模块 cjpm.toml 中配置了 combined,则子包中无法联想 root 包符号,并使用 root 包符号时提供报错提示。
- 跨平台支持 go to definition 能力。
修复问题
- 修复数组索引表达式无法提取的问题;优化接口提取与重命名行为。
- 主线程移除 GetArkAST 调用,避免长时间阻塞问题;按 .cjo 路径 intern usr cjo 字节,消除跨模块重复。
cjpm
新增特性
- 适配组织名新语法。
- 支持用户配置构建脚本产物路径。
- cjpm run 支持 -- 标记入参。
- 新增 bundle 命令,支持验证并打包本地项目;支持中心仓制品包上传/下载。
-
1.1.3 29. toukokuuta 2026 — 64-bittinen EXE (NSIS)
Muutosloki
版本介绍
Cangjie 1.1.3 为 STS 1.1 第二个发布版本,STS 1.1 维护周期 6 个月。
相比 1.1.0 版本,本版本无新增特性,有 1 个功能修复导致的变更,修复了若干问题;各模块修复问题详见本文档各章节介绍。
变更说明

| 场景描述 | 用例说明 | 变更前 | 变更后 | 适配方案 |
| ------------------------------------------------------------------------------------------------------------- | ----------- | --------------------------------------- | ---------------------------------------- | ---------------------------------------------- |
| 在父类和子类中,存在非 override 关系的 2 个函数,在调用点经过实例化之后函数签名一致,可能会出现运行结果错误的情况 | 见 issue#820 | 使用 O2 编译,运行时会打印"a",返回结果是 1 | 使用 O2 编译,运行时会打印"b", 返回结果是 0 | issue#820 场景的代码需要根据新的返回值进行适配 |

编译器
修复问题
- issue#3118 优化宏展开生成错误注解调用时的报错信息。
- issue#783 修复 struct 和 class 元数据缺少 reflectVersion1 标记导致运行时反射无法正确识别类型元数据的问题;reflectVersion1 属性现同步写入 struct/class/box_class 的 GenerateAttrsMetadata。
- issue#3116 修复管道运算符结合 trailing lambda 调用重载函数时,类型推断触发 ICE(SIGSEGV)的问题。受影响场景:f |> { x => overloaded(x) } 且无类型标注时必现崩溃,根因为 TryEnforceCandidate 中 PSet checkpoint 深度不一致。
- issue#2807 修复注解嵌套宏场景下宏展开失败的问题,覆盖两类场景:① 注解嵌套宏展开后生成子宏;② 宏展开结果本身包含注解嵌套宏。
- issue#794:修复 macOS 链接 libcangjie-std-ast.a 时动态/静态混用导致 AST 相关接口出错的问题。
- issue#470:修复 Windows 场景 Driver 调用 posix_spawn 失败时缺少错误消息的问题,修正 FORMAT_MESSAGE_ALLOCATE_BUFFER 内存分配及 LocalFree 释放逻辑。
- issue#465 修复读写 global struct 成员时写/读屏障缺失,在 aarch64 上导致随机崩溃或数据竞争的问题。
- issue#820 修复虚函数去虚化时,泛型实例化后多个函数签名相同、过滤逻辑缺失导致选错目标方法、运行时调用到错误函数的问题。
- issue#879 修复内联优化后去虚化阶段 src class 类型计算有误的问题:子类虚函数出现在多个父类虚表时,需通过偏移量比对选取正确父类,原实现过早断言唯一结果导致行为错误。
- issue#776 修复 VTable 生成中泛型参数类型映射错误的问题(issue #776),泛型继承场景下虚表条目类型不正确,改用 ReplaceRawGenericArgType 进行泛型参数类型替换。
- issue#841 修复 override wrapper 返回 CPointer<T> 时生成非法 LLVM IR、触发 verifier ICE 的问题。
- issue#851:修复 Windows 下同时依赖 AST 库并启用静态链接时 libgcc_s 链接方式无效的问题。
运行时
修复问题
- issue#513 修复涉及泛型实例类型多次接口查询的场景报错的问题。
- issue#592 修复 IntervalEndAsync 偶发崩溃报错问题。
- issue#465 修复并发读取/修改 global struct 偶发随机崩溃问题。
- issue#590 修复 SchdfdInit 并发随机问题。
标准库
修复问题
- issue#621:修复了 std 文档中代码块缩进不统一、冗余/缺少空格与空行、换行位置不恰当等代码风格问题。
- issue#579:修复了 std C/C++ 编译链接告警等问题,包括无参数函数声明未加 void、类型缺少 const 修饰、类型转换不规范、工具链编译标志缺失等。
- issue#603:修复了 std.time 包时区 ID 校验过宽接受非法 ID、TZif transition 时间未校验严格递增 等边界行为问题;修复了 std.unicode 包 Rune 级与 String 级大小转换行为不一致问题。
- issue#577:修复了 std.net 包 CJ_RawAddressDestroy 释放 sockaddr 后未清除指针导致保留悬空指针的问题。
- issue#574:修复了 std.regex 包 matchResult 未初始化导致的问题。
- issue#578:修复了 std.unittest 包文档中保留已不存在接口、函数缺少返回值类型声明、参数命名不规范等问题。
- issue#550:修复了 std.collection 包 HashSet 遍历方法在删除元素后仍遍历无效条目(hash=-1)的问题。
- issue#571:修复了 std.math 包 Decimal Float32 构造函数缺少 scale 溢出检查的问题。
- issue#569:修复了 std.net 包抽象 UDS 路径缺少长度校验、超长路径未拒绝的问题。
- issue#567:修复了 std.net 包 Windows 下 addrinfo 结构体 ai_addrlen 字段类型定义与实现不一致、getaddrinfo 调用传入空 hints 等问题。
- issue#525:修复了 std.net 包 CJ_RawAddressCreate 内存泄漏、IPv6 解析溢出、DNS 地址族过滤缺失、getSocketOptionInt32 use-after-free、IPv4 数组比较逻辑错误、RawSocket 双重关闭竞态、IPv6 scopeId 丢失、空域名未校验、isMulticast() 索引错误等问题。
- issue#545:修复了 std.math 包 fmod() 仅检查正无穷遗漏负无穷、域边界检查使用 epsilon 比较可被绕过、round() 对 NaN 输入行为未定义等问题。
- issue#521:修复了 std.core 包 atexit 单回调失败中断后续回调、memcpy_s 返回值未检查、UTF-8 支持 5/6 字节非法码点、Duration 计算错误、Future 无限递归、String 多处溢出风险等问题。
- issue#527:修复了 std.core 包 Thread.state use-after-free、Thread.name setter TOCTOU 竞态、mallocCString 异常不安全、Array.splitAt 长度计算错误、readFromConsole 静默失败等问题。
- issue#541:修复了 std.binary 包 UInt8/Int8/Bool 的 endian 读写方法缺少空缓冲区边界检查的问题。
- issue#548:修复了 std.process 包 /dev/null 文件描述符泄漏、fork() 后子进程调用非异步信号安全函数导致死锁等问题。
- issue#522:修复了 std.collection 包 HashMap 弱哈希混合易被攻击、ConcurrentHashMap 零哈希混合、TreeMap quickEquals 可产生误判等问题。
- issue#530:修复了 std.fs 包 TOCTOU 竞态条件、CopyLink 缓冲区溢出、Path.join 路径遍历、Windows 文件 I/O 整数截断、临时文件创建竞态、目录遍历异常时 handle 未释放等问题。
- issue#524:修复了 std.sync 包 SyncCounter.dec() 竞态可导致计数器变负、NotifyOnce.wait 超时计算错误、ReadWriteLock 写者饥饿、Timer ID 溢出越界等问题。
- issue#547:修复了 std.interop 包参数拼写错误、handle 默认值无效可导致重复创建句柄泄漏等问题。
- issue#561:修复了 std.regex 包 PCRE2 无匹配/递归限制导致 ReDoS 攻击风险 的问题。
- issue#559:修复了 std.unicode 包 CASE_RANGES 表映射不完整、希腊语终结 sigma 处理不正确、土耳其语/阿塞拜疆语 I-dot 处理不完整、大小写映射整数溢出、Rune.fromUtf8 和 trim 无限循环风险等问题。
工具链
IDE 插件
修复问题
- issue#398 修复复杂中文路径场景下无法正常提供语言服务的问题。
cjpm
修复问题

Suosituin kategoriassa IDE:t ja koodieditorit

Näytä kaikki
  1. RStudioIDE:t ja koodieditorit · Posit Software
  2. Node.js (LTS)IDE:t ja koodieditorit · Node.js Foundation
  3. Apache NetBeansIDE:t ja koodieditorit · Apache NetBeans
  4. VSCodiumIDE:t ja koodieditorit · VSCodium
  5. HaxeIDE:t ja koodieditorit · Haxe Foundation
  6. ThonnyIDE:t ja koodieditorit · Aivar Annamaa
  7. GDevelopIDE:t ja koodieditorit · GDevelop Team
  8. mkcertIDE:t ja koodieditorit · FiloSottile
  9. ProcessingIDE:t ja koodieditorit · Processing Foundation
  10. Android StudioIDE:t ja koodieditorit · Google LLC

Lisää julkaisijalta Huawei Technologies Co., Ltd.

Näytä kaikki
  • AppGalleryHuawei Technologies Co., Ltd.
  • WelinkToimisto-ohjelmistot · Huawei Technologies Co., Ltd.
  • CloudPilvitallennus ja synkronointi · Huawei Technologies Co., Ltd.
  • HUAWEI CLOUD MeetingVideopuhelut ja VoIP · Huawei Technologies Co., Ltd.
  • IdeaShareHuawei Technologies Co., Ltd.
  • HiSuiteVarmuuskopiointi ja palautus · Huawei Technologies Co., Ltd.

Tunnisteet

Jaa