codecamp

鸿蒙OS 编译构建前配置

在进行 HarmonyOS 应用的编译构建前,需要对工程和编译构建的 Module 进行设置,请根据实际情况进行修改。

  • build.gradle:HarmonyOS 应用依赖 gradle 进行构建,需要通过 build.gradle 来对工程编译构建参数进行设置。build.gradle 分为工程级和模块级两种类型,其中工程根目录下的工程级 build.gradle 用于工程的全局设置,各模块下的 build.gradle 只对本模块生效。
  • config.json:应用清单文件,用于描述应用的全局配置信息、在具体设备上的配置信息和HAP的配置信息。

工程级 build.gradle

  • apply plugin:在工程级 Gradle 中引入打包 app 的插件,不需要修改。

  apply plugin: 'com.huawei.ohos.hap'

  • ohos 闭包:工程配置,包括如下配置项:

  • compileSdkVersion:依赖的 SDK 版本。

    compileSdkVersion 3    //应用编译构建的目标 SDK 版本
         defaultConfig {
             compatibleSdkVersion 3    //应用兼容的最低 SDK 版本
     }

  • buildscript 闭包:Gradle 脚本执行依赖,包括 Maven 仓地址和插件。

  buildscript {
      repositories {   
          maven {
              url 'https://mirrors.huaweicloud.com/repository/maven/'
          }
          maven {
              url 'https://developer.huawei.com/repo/'
          }      
          jcenter()
      }
         dependencies {
           classpath 'com.huawei.ohos:hap:2.0.0.6'
      }
  }

  • allprojects 闭包:工程自身所需要的依赖,比如引用第三方库的Maven仓库和依赖包。

  allprojects {
      repositories {
         maven {
              url 'https://mirrors.huaweicloud.com/repository/maven/'
         }
         maven {
              url 'https://developer.huawei.com/repo/'
         }      
         jcenter()
      }
  }

模块级 build.gradle

  • apply plugin:在模块级 Gradle 中引入打包 hap 和 library 的插件,无需修改。

  apply plugin: 'com.huawei.ohos.hap'   //打包hap包的插件
  apply plugin: 'com.huawei.ohos.library'    //将HarmonyOS Library打包为har的插件
  apply plugin: 'com.huawei.ohos.java-library'    //将Java Library打包为jar的插件

  • ohos闭包:模块配置,包括如下配置项:

  • compileSdkVersion:依赖的SDK版本。

    compileSdkVersion 3    //应用编译构建的目标 SDK 版本
         defaultConfig {
             compatibleSdkVersion 3    //应用兼容的最低SDK版本
     }

  • externalNativeBuild:C/C++ 编译构建代码设置项。

    externalNativeBuild {
        path "src/main/cpp/CMakeLists.txt"   //CMake配置入口,提供CMake构建脚本的相对路径
        arguments "-v"    //传递给CMake的可选编译参数
        abiFilters "arm64-v8a"     //用于设置本机的ABI编译环境
        cppFlags ""   //设置C++编译器的可选参数

  • entryModules:该 Feature 模块关联的 Entry 模块。

    entryModules "entry"    

  • mergeJsSrc:跨设备的应用编译构建,是否需要合并 JS 代码。Wearable 和 Lite Wearable 共用一个工程,如下图所示。当进行编译构建时,将 Wearable/Lite Wearable 目录下的 JS 文件与 pages 目录(Wearable 和 Lite Wearable 共用的源码)下的 JS 文件进行合并打包。

 

点击放大

    mergejssrc true    //合并JS代码打包时,请在ohos闭包下手动添加,true表示需要合并JS代码,false表示不需要合并JS代码。

  • annotationEnabled:支持数据库注释。

    compileOptions{ 
             annotationEnabled true   //true表示支持,false表示不支持

  • dependencies闭包:该模块所需的依赖项。

  dependencies {
      entryImplementation project(':entry')    //该Feature模块依赖的Entry模块
      implementation fileTree(dir: 'libs', include: ['*.jar','*.har'])    //该模块依赖的本地库,支持jar和har包
      testCompile'junit:junit:4.12'    //测试用例框架,无需修改
  }

config.json 清单文件

HarmonyOS 应用的每个模块下包含一个 config.json 清单文件,在编译构建前,需要对照检查和修改 config.json 文件,详情请参考 config.json 清单文件介绍

鸿蒙OS 编译构建概述
鸿蒙OS 生成密钥和证书请求文件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }