自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenHarmony應(yīng)用編譯 - 如何在源碼中編譯復(fù)雜應(yīng)用(3.2-Release)

系統(tǒng) OpenHarmony
本文檔以系統(tǒng)應(yīng)用Launcher為例,帶大家了解如何通過(guò)系統(tǒng)源碼編譯應(yīng)用的方式來(lái)打包預(yù)安裝應(yīng)用。

想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)

https://ost.51cto.com

概述

文檔環(huán)境

  • 開(kāi)發(fā)環(huán)境:Windows 11
  • 編譯環(huán)境:Ubuntu 22.04
  • 開(kāi)發(fā)板型號(hào):DAYU 200(RK3568)
  • 系統(tǒng)版本:OpenHarmony-3.2-Release
  • 涉及倉(cāng)庫(kù):applications_launcher

功能簡(jiǎn)介

  • 在OpenHarmony系統(tǒng)中預(yù)安裝應(yīng)用的hap包會(huì)隨系統(tǒng)編譯打包到鏡像中,目前有兩種編譯預(yù)安裝應(yīng)用hap包的方式,一種為隨系統(tǒng)編譯時(shí),編譯應(yīng)用源碼生成hap包的方式,另一種是將已生成的hap包放入系統(tǒng)源碼中,再進(jìn)行打包的方式。后者需要開(kāi)發(fā)者使用DevEco Studio或其它途徑,把應(yīng)用源碼編譯構(gòu)建為hap包,再將hap放入系統(tǒng)源碼中。
  • 本文檔以系統(tǒng)應(yīng)用Launcher為例,帶大家了解如何通過(guò)系統(tǒng)源碼編譯應(yīng)用的方式來(lái)打包預(yù)安裝應(yīng)用。

3.2-Release系統(tǒng)編譯Launcher

 刪除或注釋系統(tǒng)中默認(rèn)的Launcher應(yīng)用hap包編譯方式。

文件位置:applications/standard/hap/BUILD.gn 

group("hap") {
  deps = [
    	...
      # "http://applications/standard/hap:launcher_hap", // 直接刪除或注釋,不參與編譯
      # "http://applications/standard/hap:launcher_settings_hap",  // 直接刪除或注釋,不參與編譯
    	...
  ]
 }

在applications/standard/launcher/product/phone目錄中增加BUILD.gn文件。

內(nèi)容如下:

import("http://build/ohos.gni")

ohos_hap("launcher_hap") {
  hap_profile = "src/main/module.json"
  deps = [
    ":launcher_js_assets",
    ":launcher_resources",
  ]
  certificate_profile = "../../signature/launcher.p7b"
  hap_name = "Launcher_OS"
  part_name = "prebuilt_hap"
  subsystem_name = "applications"
  js_build_mode = "release"
  module_install_dir = "app/com.ohos.launcher"
}

ohos_js_assets("launcher_js_assets") {
  ets2abc = true
  source_dir = "src/main/ets"
}

ohos_resources("launcher_resources") {
  sources = [ "src/main/resources", "../../common/src/main/resources" ]
  deps = [ ":launcher_app_profile" ]
  hap_profile = "src/main/module.json"
}

ohos_app_scope("launcher_app_profile") {
  app_profile = "../../AppScope/app.json"
  sources = [ "../../AppScope/resources" ]
}

說(shuō)明:

  • 此處把產(chǎn)物名稱hap_name定義為L(zhǎng)auncher_OS是為了區(qū)分原系統(tǒng)源碼中默認(rèn)的hap包名稱,實(shí)際可以填寫為L(zhǎng)auncher。
  • 因?yàn)閘auncher_hap中使用了其它har(common)中的資源,所以launcher_resources中的sources需要添加依賴的resources資源目錄,在步驟3中l(wèi)auncher_settings_hap
    中的配置也是如此。

在applications/standard/launcher/feature/settings目錄中增加BUILD.gn文件。

內(nèi)容如下:

import("http://build/ohos.gni")

ohos_hap("launcher_settings_hap") {
  hap_profile = "src/main/module.json"
  deps = [
    ":launcher_settings_js_assets",
    ":launcher_settings_resources",
  ]
  certificate_profile = "../../signature/launcher.p7b"
  hap_name = "Launcher_Settings_OS"
  part_name = "prebuilt_hap"
  subsystem_name = "applications"
  js_build_mode = "release"
  module_install_dir = "app/com.ohos.launcher"
}

ohos_js_assets("launcher_settings_js_assets") {
  ets2abc = true
  source_dir = "src/main/ets"
}

ohos_resources("launcher_settings_resources") {
  sources = [ "src/main/resources", "../../common/src/main/resources" ]
  deps = [ ":launcher_settings_app_profile" ]
  hap_profile = "src/main/module.json"
}

ohos_app_scope("launcher_settings_app_profile") {
  app_profile = "../../AppScope/app.json"
  sources = [ "../../AppScope/resources" ]
}

說(shuō)明:

  • 此處把產(chǎn)物名稱hap_name定義為Launcher_Settings_OS是為了區(qū)分原系統(tǒng)源碼中默認(rèn)的hap包名稱,實(shí)際可以填寫為Launcher_Settings。

因?yàn)橄到y(tǒng)編譯只可讀取json后綴的配置文件,所以需要把應(yīng)用源碼中的app.json5和module.json5文件復(fù)制,并改名為app.json和module.json文件。

復(fù)制applications/standard/launcher/AppScope/app.json5文件為app.json。

復(fù)制applications/standard/launcher/product/phone/src/main/module.json5文件為module.json。

復(fù)制applications/standard/launcher/feature/settings/src/main/module.json5文件為module.json。

在applications/standard/hap/ohos.build文件module_list中增加launcher_hap模塊和launcher_settings_hap模塊編譯。

{
  "subsystem": "applications",
  "parts": {
    "prebuilt_hap": {
	  	...
      "module_list": [
       	...
        "http://applications/standard/launcher/product/phone:launcher_hap",
        "http://applications/standard/launcher/feature/settings:launcher_settings_hap",
        ...
      ]
    }
  }
}

修改預(yù)編譯配置build/prebuilts_download_config.json文件,把launcher依賴增加到npm_install_path列表中。

{
  "prebuilts_download_dir": "../OpenHarmony_canary_prebuilts",
  "npm_install_path": [
    "developtools/ace_ets2bundle/compiler",
    "developtools/ace_js2bundle/ace-loader",
    "third_party/jsframework",
    "arkcompiler/ets_frontend/ts2panda",
    "arkcompiler/ets_frontend/legacy_bin/api8",
    "interface/sdk-js/build-tools",
    "applications/standard/launcher/common",
    "applications/standard/launcher/feature/appcenter",
    "applications/standard/launcher/feature/bigfolder",
    "applications/standard/launcher/feature/form",
    "applications/standard/launcher/feature/gesturenavigation",
    "applications/standard/launcher/feature/numbadge",
    "applications/standard/launcher/feature/pagedesktop",
    "applications/standard/launcher/feature/recents",
    "applications/standard/launcher/feature/smartdock",
    "applications/standard/launcher/feature/settings",
    "applications/standard/launcher/product/phone"
  ],
  ...
}

執(zhí)行預(yù)編譯指令。

bash build/prebuilts_download.sh --skip-ssl

可以在應(yīng)用源碼中看到應(yīng)用內(nèi)的依賴已經(jīng)被正確的加載。

執(zhí)行源碼編譯指令。如果以下2個(gè)目錄產(chǎn)物正確,則說(shuō)明應(yīng)用源碼編譯方式修改成功。

在out/rk3568/obj/applications/standard/launcher目錄中,會(huì)生成2個(gè)hap的編譯產(chǎn)物。

在out/rk3568/packages/phone/system/app/com.ohos.launcher目錄中,是實(shí)際系統(tǒng)環(huán)境中的hap包產(chǎn)物。

燒錄系統(tǒng)驗(yàn)證功能。

Launcher正常啟動(dòng):

系統(tǒng)應(yīng)用目錄文件正確:

想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)

https://ost.51cto.com

責(zé)任編輯:jianghua 來(lái)源: 51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2023-12-11 17:30:52

預(yù)安裝應(yīng)用鴻蒙Launcher

2022-05-27 15:04:53

鴻蒙操作系統(tǒng)

2022-04-25 09:10:50

RK3568鴻蒙

2022-06-02 09:14:14

GNOME源碼編譯Linux 發(fā)行版

2022-04-29 14:56:40

通話應(yīng)用源碼剖析

2022-02-21 14:49:26

OpenHarmon操作系統(tǒng)鴻蒙

2023-02-09 15:28:19

鴻蒙編譯速度

2009-12-16 11:54:35

WindowsLinuxUnix

2023-07-27 14:38:33

開(kāi)源鴻蒙

2024-07-26 16:39:33

鴻蒙系統(tǒng)開(kāi)源構(gòu)建系統(tǒng)

2023-06-26 16:13:43

馬達(dá)驅(qū)動(dòng)模型鴻蒙

2023-05-31 15:45:49

HCS鴻蒙

2023-10-08 15:23:09

側(cè)獲取屏幕DPI鴻蒙

2009-11-25 10:14:15

memcachedb編譯安裝

2011-03-14 13:51:00

iptables編譯

2020-03-31 21:50:41

JavaScript前端技術(shù)

2022-07-15 09:01:15

React對(duì)象編程

2017-08-07 16:41:39

LinuxOpenCV

2022-11-25 16:27:07

應(yīng)用開(kāi)發(fā)鴻蒙

2022-05-11 15:08:52

驅(qū)動(dòng)開(kāi)發(fā)系統(tǒng)移植
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)