鸿蒙5.0开发进阶:定制构建-灵活定制编译选项实践

鸿蒙5.0开发:灵活定制编译选项实践

往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)


灵活定制编译选项实践

应用正式对外布版本前,需要对应用进行代码调试。调试和正式发布版本,两者编译行为可能不同。此时,可以利用buildMode能力,来定制两个版本的编译差异性。

假设其中构建产物均为default,但编译行为不同:release模式下使能混淆,debug模式下使能debug调试。

示例工程中包含一个模块entry,将entry模块交付到构建产物default中,模块定制两种不同的编译模式debug、release,将两种构建模式均绑定到构建产物default中。工程示例图如下(模块):

工程级build-profile.json5示例

{
  "app": {
    "signingConfigs": [],
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "compatibleSdkVersion": "5.0.3(15)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {
          "strictMode": {
            "caseSensitiveCheck": true,
            "useNormalizedOHMUrl": true
          }
        }
      }
    ],
    "buildModeSet": [
      {
        "name": "debug",
      },
      {
        "name": "release",
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    }
  ]
}

模块级build-profile.json5示例

entry模块

{
  "apiType": "stageMode",
  "buildOption": {
  },
  "buildOptionSet": [
    {
      "name": "release",
      "arkOptions": {
        "obfuscation": {
          "ruleOptions": {
            "enable": true,
            "files": [
              "./obfuscation-rules.txt"
            ]
          }
        }
      }
    },
    {
      "name": "debug",
      "debuggable": true,
      "arkOptions": {
        "obfuscation": {
          "ruleOptions": {
            "enable": false
          }
        }
      }
    }
  ],
  "buildModeBinder": [
    {
      "buildModeName": "release",
      "mappings": [
        {
          "buildOptionName": "release",
          "targetName": "default"
        }
      ]
    },
    {
      "buildModeName": "debug",
      "mappings": [
        {
          "buildOptionName": "debug",
          "targetName": "default"
        }
      ]
    }
  ],
  "targets": [
    {
      "name": "default",
    },
    {
      "name": "ohosTest",
    }
  ]
}

指定构建模式

命令行

示例1:构建APP时,构建产物为default,指定构建模式为debug,可执行如下命令:

hvigorw --mode project -p product=default -p buildMode=debug assembleApp

编译产物示例如下:

示例2:构建APP时,构建产物为default,指定构建模式为release,可执行如下命令:

hvigorw --mode project -p product=default -p buildMode=release assembleApp

编译产物示例如下:

DevEco Studio界面

在DevEco Studio界面进行可视化配置,Build Mode下拉选择对应配置选项debug后,点击Build -> Build Hap(s)/APP(s) -> Build APP(s) ,构建编译模式为debug,构建产物为default的APP包。

### HarmonyOS 开发进阶教程与高级内容 HarmonyOS华为推出的一款面向全场景的分布式操作系统,具备高度的灵活性和扩展性。对于已经掌握基础开发技能的开发者来说,深入学习其核心功能和高级特性是进一步提升开发能力的关键。 #### ArkTS 语言 ArkTSHarmonyOS 的主要开发语言,它基于 TypeScript 并增强了对声明式 UI 和状态管理的支持。通过使用 ArkTS开发者可以构建高性能、响应式的应用界面。例如: ```typescript // 简单的 ArkTS 示例代码 @Component struct HelloWorld { @State message: string = "Hello, HarmonyOS!" build() { Column() { Text(this.message) .fontSize(30) .onClick(() => { this.message = "Clicked!" }) } .width('100%') .height('100%') } } ``` 在上述代码中,`@Component` 装饰器用于定义一个组件,而 `@State` 则用于管理组件的状态变化。这种模式使得状态管理和 UI 更新更加直观和高效 [^1]。 #### Ability 框架 Ability 框架是 HarmonyOS 中的核心概念之一,它代表了应用程序的基本功能单元。每个 Ability 可以独立运行,并与其他 Ability 协作完成复杂的任务。开发者可以通过实现不同的 Ability 类型(如 Page Ability 和 Service Ability)来满足各种应用场景的需求。 #### ArkUI 开发 ArkUI 提供了一套完整的用户界面解决方案,支持声明式编程模型。这允许开发者用更少的代码创建出复杂的 UI 布局,并且能够自动处理布局的变化和数据绑定。此外,ArkUI 还提供了丰富的内置组件库以及自定义组件的能力,从而极大地简化了 UI 设计过程 [^1]。 #### 公共事件处理 公共事件处理机制让多个应用或服务之间能够方便地进行通信。通过订阅特定类型的事件并监听它们的发生,应用可以在不直接调用其他模块的情况下做出相应的反应。这种方式提高了系统的解耦性和可维护性。 #### 窗口管理 窗口管理系统负责协调所有打开的应用窗口,确保它们正确显示并且交互流畅。了解如何利用窗口管理 API 来控制窗口大小、位置以及其他属性可以帮助优化用户体验。 #### 网络编程 网络编程部分涵盖了从简单的 HTTP 请求到更复杂的数据同步策略等内容。掌握这些知识有助于开发具有强大联网功能的应用程序。 #### 安全管理 安全性始终是软件开发中的重要考量因素。HarmonyOS 提供了一系列安全相关的工具和服务,包括权限控制系统、加密算法支持等,帮助开发者保护用户的隐私信息。 #### 数据管理 有效的数据管理对于任何现代应用程序都是必不可少的。无论是本地存储还是云端同步,选择合适的数据持久化方案都能显著提高应用性能和可靠性。 #### 多媒体开发 多媒体开发涉及音频视频播放、图像处理等多个方面。利用 HarmonyOS 提供的强大 API 集合,开发者可以轻松集成高质量的媒体体验到他们的应用中去。 #### 一次开发多端部署 这一特性意味着开发者只需编写一次代码即可将其部署到多种设备上运行,大大减少了跨平台适配的工作量。同时这也要求代码本身要足够灵活以适应不同屏幕尺寸和硬件配置。 #### 应用测试 最后但同样重要的是,全面的应用测试保证了最终产品的稳定性和健壮性。熟悉自动化测试框架以及最佳实践方法论将极大增强产品质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值