鴻蒙OS 編譯構(gòu)建前配置

2020-09-19 10:49 更新

在進(jìn)行 HarmonyOS 應(yīng)用的編譯構(gòu)建前,需要對(duì)工程和編譯構(gòu)建的 Module 進(jìn)行設(shè)置,請(qǐng)根據(jù)實(shí)際情況進(jìn)行修改。

  • build.gradle:HarmonyOS 應(yīng)用依賴 gradle 進(jìn)行構(gòu)建,需要通過 build.gradle 來(lái)對(duì)工程編譯構(gòu)建參數(shù)進(jìn)行設(shè)置。build.gradle 分為工程級(jí)和模塊級(jí)兩種類型,其中工程根目錄下的工程級(jí) build.gradle 用于工程的全局設(shè)置,各模塊下的 build.gradle 只對(duì)本模塊生效。
  • config.json:應(yīng)用清單文件,用于描述應(yīng)用的全局配置信息、在具體設(shè)備上的配置信息和HAP的配置信息。

工程級(jí) build.gradle

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

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

  • ohos 閉包:工程配置,包括如下配置項(xiàng):

  • compileSdkVersion:依賴的 SDK 版本。

    compileSdkVersion 3    //應(yīng)用編譯構(gòu)建的目標(biāo) SDK 版本
         defaultConfig {
             compatibleSdkVersion 3    //應(yīng)用兼容的最低 SDK 版本
     }

  • signingConfigs:發(fā)布 APP 時(shí)的簽名信息,在編譯構(gòu)建生成 APP中進(jìn)行設(shè)置后自動(dòng)生成。

  • buildscript 閉包:Gradle 腳本執(zhí)行依賴,包括 Maven 倉(cāng)地址和插件。

  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 閉包:工程自身所需要的依賴,比如引用第三方庫(kù)的Maven倉(cāng)庫(kù)和依賴包。

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

模塊級(jí) build.gradle

  • apply plugin:在模塊級(jí) Gradle 中引入打包 hap 和 library 的插件,無(wú)需修改。

  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閉包:模塊配置,包括如下配置項(xiàng):

  • compileSdkVersion:依賴的SDK版本。

    compileSdkVersion 3    //應(yīng)用編譯構(gòu)建的目標(biāo) SDK 版本
         defaultConfig {
             compatibleSdkVersion 3    //應(yīng)用兼容的最低SDK版本
     }

  • externalNativeBuild:C/C++ 編譯構(gòu)建代碼設(shè)置項(xiàng)。

    externalNativeBuild {
        path "src/main/cpp/CMakeLists.txt"   //CMake配置入口,提供CMake構(gòu)建腳本的相對(duì)路徑
        arguments "-v"    //傳遞給CMake的可選編譯參數(shù)
        abiFilters "arm64-v8a"     //用于設(shè)置本機(jī)的ABI編譯環(huán)境
        cppFlags ""   //設(shè)置C++編譯器的可選參數(shù)

  • entryModules:該 Feature 模塊關(guān)聯(lián)的 Entry 模塊。

    entryModules "entry"    

  • mergeJsSrc:跨設(shè)備的應(yīng)用編譯構(gòu)建,是否需要合并 JS 代碼。Wearable 和 Lite Wearable 共用一個(gè)工程,如下圖所示。當(dāng)進(jìn)行編譯構(gòu)建時(shí),將 Wearable/Lite Wearable 目錄下的 JS 文件與 pages 目錄(Wearable 和 Lite Wearable 共用的源碼)下的 JS 文件進(jìn)行合并打包。

 

點(diǎn)擊放大

    mergejssrc true    //合并JS代碼打包時(shí),請(qǐng)?jiān)趏hos閉包下手動(dòng)添加,true表示需要合并JS代碼,false表示不需要合并JS代碼。

  • annotationEnabled:支持?jǐn)?shù)據(jù)庫(kù)注釋。

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

  • dependencies閉包:該模塊所需的依賴項(xiàng)。

  dependencies {
      entryImplementation project(':entry')    //該Feature模塊依賴的Entry模塊
      implementation fileTree(dir: 'libs', include: ['*.jar','*.har'])    //該模塊依賴的本地庫(kù),支持jar和har包
      testCompile'junit:junit:4.12'    //測(cè)試用例框架,無(wú)需修改
  }

config.json 清單文件

HarmonyOS 應(yīng)用的每個(gè)模塊下包含一個(gè) config.json 清單文件,在編譯構(gòu)建前,需要對(duì)照檢查和修改 config.json 文件,詳情請(qǐng)參考 config.json 清單文件介紹。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)