鴻蒙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)建,需要通過(guò) 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 的插件,不需要修改。

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

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

  • compileSdkVersion:依賴的 SDK 版本。

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

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

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

  1. buildscript {
  2. repositories {
  3. maven {
  4. url 'https://mirrors.huaweicloud.com/repository/maven/'
  5. }
  6. maven {
  7. url 'https://developer.huawei.com/repo/'
  8. }
  9. jcenter()
  10. }
  11. dependencies {
  12. classpath 'com.huawei.ohos:hap:2.0.0.6'
  13. }
  14. }

  • allprojects 閉包:工程自身所需要的依賴,比如引用第三方庫(kù)的Maven倉(cāng)庫(kù)和依賴包。

  1. allprojects {
  2. repositories {
  3. maven {
  4. url 'https://mirrors.huaweicloud.com/repository/maven/'
  5. }
  6. maven {
  7. url 'https://developer.huawei.com/repo/'
  8. }
  9. jcenter()
  10. }
  11. }

模塊級(jí) build.gradle

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

  1. apply plugin: 'com.huawei.ohos.hap' //打包hap包的插件
  2. apply plugin: 'com.huawei.ohos.library' //將HarmonyOS Library打包為har的插件
  3. apply plugin: 'com.huawei.ohos.java-library' //將Java Library打包為jar的插件

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

  • compileSdkVersion:依賴的SDK版本。

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

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

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

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

  1. 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)擊放大

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

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

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

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

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

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)