HarmonyOS鸿蒙Next中Java转仓颉工具加速原生应用开发 | 90%代码可端到端转换
HarmonyOS鸿蒙Next中Java转仓颉工具加速原生应用开发 | 90%代码可端到端转换 在鸿蒙原生应用开发中,仓颉编程语言越来越受广大鸿蒙开发者的青睐。相较于传统应用编程语言,仓颉在以下几个方面有较大提升:
- 卓越性能,仓颉编译器及运行时从全栈对编译进行优化确保仓颉运行性能超越竞品26%+;
- 轻松并发,仓颉语言采用轻量化用户态线程设计,并发性能更好;
- 高效编程,仓颉是一门多范式编程语言,支持函数式、命令式和面向对象等多种范式,与C、ArkTS语言极简互操作,帮助开发者快速复用存量代码资产,让开发者快速上手。
- 安全可靠,安全DNA融入仓颉语言设计,帮助开发者专注于业务逻辑,免于将太多精力投入到防御性编程中。
仓颉编程语言自发布以来受到产业界伙伴的鼎力支持。基于仓颉开发的京东、工行、七猫、力扣、Welink、E-Mobile10/7等应用已经上架HarmonyOS NEXT应用市场;抖音、美团、交通银行、买单吧、企查查、兴业银行等20+应用正在使用仓颉进行增量功能开发,更多爆款应用正在使用仓颉语言进行全量开发;20+鸿蒙生态合作伙伴加入仓颉生态,支撑1000+HarmonyOS NEXT应用使用仓颉进行开发,为鸿蒙生态注入了不竭的创新动力。我们衷心感谢大家对于鸿蒙以及仓颉的支持与关注,也在不断探索提升鸿蒙应用开发效率的方法与工具。
为什么开发J2CJ工具?
据点点数据显示,iOS 的 App Store 约有 142 万款应用可供用户下载,而 Android 应用数量达到 162.2 万款。Android 应用涵盖各类小众、实验性和本地化应用。
据第三方数据机构不完全统计,在已上架应用里,约 70% 的应用包含 Java 代码,这些应用的 Java 代码平均行数达到 10 万行左右。对于一些大型的 Android 应用,如电商类、社交类应用,其 Java 代码量更是可能超过 100 万行。在 Android 应用开发中,Java 长期作为主流编程语言,积累了大量的存量代码。
现代移动端应用开发中Java语言仍旧占有不少的市场份额。存量的Android应用转变为鸿蒙原生应用这一过程中,如何减少Java转换成Cangjie的巨大工作量,“复用” Java 的存量代码资产,仍是许多开发者的难题。为此,我们设计了J2CJ工具,希望通过该工具的使用帮助大家解决这一难题。
J2CJ工具设计方案
基于仓颉编程语言的多范式能力,以及部分语法与Java的兼容性设计,Java语言可实现高比例的Cangjie化转换,具体实现原理如下:整体J2CJ工具基于抽象语法树转换(AST transformation)的翻译技术实现,以保证代码转换的稳定性与准确性,并且J2CJ提供了灵活定制API映射的功能,提高了J2CJ在非通用场景代码转换的易用性。此外,J2CJ提供了IDE插件,开发者可以通过IDE可视化界面进行代码转化。
关键技术1:抽象语法树翻译技术
抽象语法树(Abstract Syntax Tree,AST)是源代码的一种抽象表示形式,它以树状结构来描述源代码的语法结构。树中的每个节点代表源代码中的一个语法结构,如变量声明、函数调用、表达式等,节点之间的关系反映了语法结构之间的嵌套和依赖关系。
基于抽象语法树转换的翻译技术就是利用这种树状结构,将一种编程语言的 AST 转换为另一种编程语言或目标表示形式的 AST,然后再根据目标 AST 生成目标语言的代码,从而实现不同语言之间的翻译或代码的转换、优化等操作。
这种技术的主要优点是:
- 准确性高:基于对语法结构的精确分析和转换,能够准确地实现语言之间的翻译,最大程度地保持源程序的语义和功能。
- 灵活性强:可以通过定义不同的转换规则,轻松实现多种语言之间的转换,以及针对不同的目标需求进行定制化的代码转换和优化。
- 可扩展性好:易于集成到各种开发工具和编译器中,并且可以方便地添加新的转换规则和功能,以适应不断变化的语言特性和开发需求。
关键技术2:灵活可定制的API映射规则
基于抽象语法树转换(AST transformation)的翻译技术也同样面临挑战。在涉及到高级特性和复杂逻辑的代码中,往往用到了大量的二方库或三方库的API,如何将两种语言API进行一一对应是很多开发者在进行代码翻译过程中十分困难的工作。
J2CJ工具内置了大量Java API与仓颉API的映射,同时支持用户通过"cjmap"的DSL进行自定义映射,包括个人开发的API和第三方库,帮助开发者快速完成API对应的工作,提高J2CJ的翻译准确率、易用性以及工具使用范围。
IDE支持
目前,J2CJ工具提供了可在IDEA以及Android Studio上使用的插件。开发者可以通过在IDEA或Android Studio上安装J2CJ工具的插件,实现项目级转换,无需输入复杂的命令行来设置环境变量。
J2CJ工具商用案例
案例1:中国工商银行手机银行APP
中国工商银行手机银行APP已经使用Java在Android端完成日历功能的开发。工行研发团队在将该功能迁移至鸿蒙系统时,使用J2CJ工具将1500+行的Java代码转换为Cangjie代码。J2CJ工具首次转换正确率高达85%。经过映射调整以及代码补充,工行研发团队仅用0.5工作日就在鸿蒙端实现了该功能,大大降低了鸿蒙原生应用的开发周期。
案例2:七猫免费小说APP
步骤一:进行代码统计
步骤二:开始转换
步骤三:结果校验
总结及发布计划
本文从J2CJ工具设计初衷、J2CJ工具设计以及J2CJ工具商用案例,共3个维度,概括性地介绍了J2CJ工具的整体情况。J2CJ工具经过公司内外多次验证,约90%左右的Java代码可以精确转换为仓颉代码。该工具计划在2025年2月底,在GitCode Cangjie-TPC社区开放下载,欢迎广大开发者们下载使用。
过去一年,对于仓颉编程语言是十分重要的一年,从HDC发布,到鸿蒙原生之夜惊艳亮相,到OpenHarmony启航,到如今越来越多开发者加入到用仓颉开发鸿蒙原生应用的旅程中。我们衷心感谢伙伴们的信任、布道师们的坚持、开发者们的支持。我们感受到大家的力量,新的一年必会给大家一个更完美的答卷。我们用技术联接万物,也愿用技术联接你我。值此新年,祝愿大家项目顺利交付,生活平安喜乐!蛇年大吉,万事胜意!
参考资料
[1] 点点数据 https://app.diandian.com
更多关于HarmonyOS鸿蒙Next中Java转仓颉工具加速原生应用开发 | 90%代码可端到端转换的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,Java转仓颉工具的设计旨在加速原生应用的开发进程。该工具能够将90%的Java代码端到端转换为仓颉语言,减少开发者在迁移和适配过程中的工作量。仓颉是鸿蒙系统支持的一种编程语言,专为鸿蒙生态优化,能够更好地利用鸿蒙系统的特性和性能。
通过Java转仓颉工具,开发者可以快速将现有的Java应用迁移到鸿蒙平台,同时保持应用的功能和性能。工具自动化处理了大部分代码转换工作,减少了手动修改的需求,从而提高了开发效率。这种转换不仅限于简单的语法替换,还包括对鸿蒙API的适配和优化,以确保转换后的应用能够在鸿蒙系统上稳定运行。
该工具的目标是降低开发门槛,使更多开发者能够快速进入鸿蒙生态,推动鸿蒙应用的丰富和多样化。通过这种方式,华为希望能够加速鸿蒙系统的普及和应用生态的建设。
更多关于HarmonyOS鸿蒙Next中Java转仓颉工具加速原生应用开发 | 90%代码可端到端转换的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next中的Java转仓颉工具显著提升了原生应用开发效率。该工具能够将90%的Java代码端到端转换为仓颉代码,极大减少了开发者的工作量。通过自动化代码转换,开发者可以更专注于应用逻辑和用户体验优化,而无需手动重写大量代码。这一工具不仅加速了开发进程,还确保了代码的一致性和高质量,为HarmonyOS生态系统的扩展提供了强有力的支持。

