理解 HarmonyOS 应用与生成式 AI 能力
理解 HarmonyOS 应用
HarmonyOS 应用的组成:
- 语言。ArkTS 是鸿蒙生态中基于 TypeScript 扩展的应用开发语言。
- UI 框架。ArkUI 是一套构建分布式应用界面的声明式 UI 开发框架。它与我们先前引入的 AutoPage 并没有太多的区别,可以结合思维链进行代码和 UI 生成。
对应的支撑工具包含:
- IDE。DevEco Studio 是 HarmonyOS 应用开发的集成开发环境,提供了代码编辑、编译构建、调试、模拟器等一系列开发工具。
- 构建工具。DevEco Hvigor 是使用 TypeScript 语言开发的全新轻量化的任务调度工具,针对 HarmonyOS 应用提供了一系列编译构建任务,支持将 HarmonyOS 应用编译构建出对应的产物包。
- 模拟器。使用远程模拟器支持JS、ArkTS单语言调试和JS+Java跨语言调试能力;使用本地模拟器支持JS和C++的调试;同时还支持分布式应用/服务的跨设备调试,帮助开发者更方便、高效的调试应用/服务。
- OHPM 包管理器。OHPM CLI(OpenHarmony Package Manager Command-line Interface) 作为鸿蒙生态三方库的包管理工具,支持共享包的发布、安装和依赖管理。
应用组件入口:UIAbility
UIAbility 组件是一种包含 UI 界面的应用组件,主要用于和用户交互。UIAbility 组件是系统调度的基本单元,为应用提供绘制界面的窗口; 一个 UIAbility 组件中可以通过多个页面来实现一个功能模块。每一个 UIAbility 组件实例, 都对应于一个最近任务列表中的任务。
文档:UIAbility 组件
每个 UIAbility 类实例都会与一个 WindowStage 类实例绑定,该类起到了应用进程内窗口管理器的作用。它包含一个主窗口。 也就是说 UIAbility 通过 WindowStage 持有了一个窗口,该窗口为 ArkUI 提供了绘制区域。
import UIAbility from '@ohos.app.ability.UIAbility';
import hilog from '@ohos.hilog';
import window from '@ohos.window';
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
}
onDestroy() {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
}
onWindowStageCreate(windowStage: window.WindowStage) {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
// 设置 UI 界面加载
windowStage.loadContent('pages/Index', (err, data) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
});
}
onWindowStageDestroy() {
// Main window is destroyed, release UI related resources
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
}
onForeground() {
// Ability has brought to foreground
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
}
onBackground() {
// Ability has back to background
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
}
}
HarmonyOS 布局:ArkUI
方舟开发框架(简称 ArkUI)为 HarmonyOS 应用的 UI 开发提供了完整的基础设施,包括简洁的UI语法、丰富的 UI 功能(组件、布局、动画以及交互事件), 以及实时界面预览工具等,可以支持开发者进行可视化界面开发。
@Entry
@Component
struct Index {
@State counter: number = 0
build() {
// 生成一个经典的前端 counter
Column({}) {
Text('Blog Title').fontSize(24).fontWeight(FontWeight.Bold)
Text('Author: John Doe').fontSize(18).fontColor(Color.Blue)
Text('Published Date: July 1, 2022').fontSize(18).fontColor(Color.Blue)
Image('blog_image.jpg').width('100%').height(300)
Text('Blog Content goes here...').fontSize(18)
Button('Like', { type: ButtonType.Normal, stateEffect: true })
.borderRadius(8)
.backgroundColor(0xFF0000)
.width(100)
.height(40)
}.width('100%').margin(20).padding({ left: 20, right: 20 })
}
}
生成式 AI 能力
生成式 AI 能力是指通过 AI 模型生成代码、文档、测试等能力。在 HarmonyOS 应用开发中,我们可以使用生成式 AI 能力来辅助开发者完成一些重复性的工作, 比如生成测试代码、生成布局代码、生成持续集成脚本等。
- AI 生成持续集成脚本
- AI 生成 HarmonyOS 测试代码
- AI 迁移 Android 布局到鸿蒙应用
- AI 生成鸿蒙应用 ArkUI 布局
- AI 辅助日常鸿蒙代码编写
其它 AI 能力还包括:
- 诸如于 C++ 语言的支持
- 微信小程序等小程序平台的转换