成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

三方包打包和引入,幫你快速學(xué)習(xí)了解三方包的基本知識

系統(tǒng) OpenHarmony
Haromony工程采用自研工具ohpm(Open Harmony Package Manager) 作為包管理和發(fā)布的標(biāo)準(zhǔn),關(guān)于ohpm的詳細(xì)介紹,將在后續(xù)系列的文章里講解,本章還是重點(diǎn)關(guān)注三方包的內(nèi)容。本文采用的示例較為簡單,主要目的是讓初學(xué)者快速學(xué)習(xí)了解三方包的基本知識。

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

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

https://ost.51cto.com

前言

三方包的使用在開發(fā)中非常常見,比如引用已封裝好的包,或者使用和發(fā)布自己編寫的包。Haromony工程采用自研工具ohpm(Open Harmony Package Manager) 作為包管理和發(fā)布的標(biāo)準(zhǔn),關(guān)于ohpm的詳細(xì)介紹,將在后續(xù)系列的文章里講解,本章還是重點(diǎn)關(guān)注三方包的內(nèi)容。

本文采用的示例較為簡單,主要目的是讓初學(xué)者快速學(xué)習(xí)了解三方包的基本知識。關(guān)于本地Har包依賴更詳細(xì)全面的使用可以參考鏈接橘子購物示例。

基本概念介紹和對比

名稱

基本概念

業(yè)務(wù)要求

HAP(Harmony Ability Package)

應(yīng)用安裝和更新的最小單元

必須包含UIAbility或者ExtensionAbility

可以在設(shè)備上獨(dú)立安裝

可以包含資源

HAR(Harmony Archive)

靜態(tài)共享包,編譯態(tài)復(fù)用

代碼和資源跟隨使用編譯,有多個(gè)使用方,會(huì)有多份相同拷貝

不包含UIAbility或者ExtensionAbility

不支持獨(dú)立安裝

可以發(fā)布到中心倉或者私倉供他人使用

HSP(Harmony Shared Package)

動(dòng)態(tài)共享包 運(yùn)行時(shí)復(fù)用

代碼資源獨(dú)立編譯,有多個(gè)使用方也只會(huì)存在一份代碼

不包含UIAbility或者ExtensionAbility

不支持獨(dú)立安裝

關(guān)于表格里的名詞,這里做簡單的介紹UIAbility 是系統(tǒng)調(diào)度的基本單元,一個(gè)應(yīng)用可以包含多個(gè)UIAbility。每一個(gè)UIAbility在都會(huì)在任務(wù)列表中顯示一個(gè)對應(yīng)的任務(wù)。就是一個(gè)具備UI展示能力的應(yīng)用組件。ExtensionAbility 是特定場景下提供的應(yīng)用組件,類型多樣,目前有九種類型。例:FORM類型的ExtensionAbility組件,用于提供服務(wù)卡片場景相關(guān)能力。

Har包的使用場景最廣泛,我們重點(diǎn)講一下本地依賴har包的場景。

場景一 依賴本地Har模塊

1、創(chuàng)建工程

2、新建模塊

創(chuàng)建完后可以選擇直接右鍵新建模塊;也可以創(chuàng)建新目錄,再右鍵目錄創(chuàng)建模塊,這里選擇直接在根目錄下創(chuàng)建模塊

模塊類型選擇static library。

創(chuàng)建完后可以打開localHar/src/main/module.json5 文件 ,里面的type是har。

{
  "module": {
    "name": "localHar",
    "type": "har",
    "deviceTypes": [
      "default"
    ]
  }
}

module.json5 字段說明:

字段名稱

字段說明

備注

name

模塊名稱

就是新建的模塊名稱

type

模塊類型

entry feature 對應(yīng)構(gòu)建產(chǎn)物的是Hap,share 是Hsp, har 是Har

deviceTypes

適配設(shè)備

default:能夠使用全部系統(tǒng)能力的OpenHarmony設(shè)備。枚舉還包括phone,tv,tablet

再看一下 localHar/index.ets:

export { MainPage } from './src/main/ets/components/mainpage/MainPage'

這個(gè)文件是整個(gè)模塊的入口,具體的入口配置在 localHar/oh-package.json5。

{
  "name": "localhar",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "index.ets",
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {}
}

3、修改配置和文件

在entry/oh-package.json5里設(shè)置依賴關(guān)系(和npm的配置文件package.json十分相似)。

{
  "name": "entry",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@ohos/localHar": "file:../localHar"
  }
}

oh-package.json5 字段說明:

字段名稱

字段說明

備注

name

名稱

Har包的名稱盡量使用@group/packagename group是當(dāng)前開發(fā)的組織 例:@ohos/shoppingDetail

version

版本號

符合semver語義化規(guī)范 例:1.0.0

main

入口

指定的加載入口文件

author

作者

里面可以設(shè)置作者name信息和email信息

description

簡介

描述包信息的字符串

repository

倉庫地址

當(dāng)前包所在的開源倉庫地址

license

開源協(xié)議

當(dāng)前項(xiàng)目的開源許可證

dependencies

生產(chǎn)依賴

項(xiàng)目運(yùn)行所依賴的模塊,即項(xiàng)目生產(chǎn)環(huán)境下需要用到的依賴

devDependencies

開發(fā)依賴

項(xiàng)目開發(fā)所依賴的模塊

添加依賴后會(huì)發(fā)現(xiàn)出現(xiàn)紅色報(bào)錯(cuò)提示:

這時(shí)候可以點(diǎn)擊右上角的Sync Now,會(huì)自動(dòng)檢查依賴下載情況。或者鼠標(biāo)移動(dòng)到報(bào)錯(cuò)代碼部分,點(diǎn)擊出現(xiàn)的ohpm install. 就會(huì)自動(dòng)下載對應(yīng)的依賴了。安裝完畢后,entry下出現(xiàn)oh_module,里面就是下載的依賴,這里的依賴其實(shí)是個(gè)軟鏈接,通過快捷方式跳轉(zhuǎn)。

此時(shí)就可以在entry里使用localHar的組件了。

打開localHar/src/main/ets/components/mainpage/MainPage.ets 修改后代碼如下:

@Component
export struct MainPage {
  @State message: string = 'Hello LocalHar'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

打開entry/src/main/ets/pages/Index.ets 修改后代碼如下:

import {MainPage} from "@ohos/localHar"

@Entry
@Component
struct Index {

  build() {
    Row() {
      MainPage()
    }
    .height('100%')
  }
}

4、運(yùn)行驗(yàn)證

右上角綠色小三角構(gòu)建entry后運(yùn)行,開發(fā)板展示如下:

場景二 依賴外部構(gòu)建好的HAr包

整個(gè)工程的構(gòu)建不會(huì)自動(dòng)把里面Har類型的模塊打成Har包,可以在localHar/build里查看一下,我們這里把內(nèi)部的localHar打成Har包,通過直接操作生成的Har包來模擬引用外部Har。


所以需要我們自己手動(dòng)去打Har。打包之前我們修改一下localHar/src/main/ets/components/mainpage/MainPage.ets文本內(nèi)容,方便區(qū)分是否生效。

1、修改UI展示

@Component
export struct MainPage {
  @State message: string = 'Hello LibHar'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

2、模塊打包

首先左鍵選中要構(gòu)建的模塊。

然后上方的build菜單欄里點(diǎn)擊build Module ‘localHar’。

然后就可以看到打出的har包了。

我們將生成的Har包放到工程的單獨(dú)文件夾里,右鍵工程根目錄,新建directory。

文件夾名字沒有要求,這里用lib,表明是外部的包,然后我用手動(dòng)拖拽的方式將之前打好的Har包移動(dòng)到libs文件夾下,在彈框中點(diǎn)擊refactor確認(rèn)

移動(dòng)后,原先的模塊就可以不用了,我們?nèi)ジ囊幌耬ntry/oh-package.json5。

{
  "license": "ISC",
  "devDependencies": {},
  "author": "",
  "name": "entry",
  "description": "Please describe the basic information.",
  "main": "",
  "version": "1.0.0",
  "dependencies": {
    "@ohos/localHar": "file:../lib/localHar.har"
  }
}

3、運(yùn)行驗(yàn)證

然后再運(yùn)行,這里為了防止干擾,可以先手動(dòng)清理一下之前的構(gòu)建產(chǎn)物。

然后運(yùn)行效果如圖:

場景三 從ohpm公倉上引入三方包

可以直接參考根目錄下的oh-package.json5。

{
  "license": "",
  "devDependencies": {
    "@ohos/hypium": "1.0.6"
  },
  "author": "",
  "name": "myapplication",
  "description": "Please describe the basic information.",
  "main": "",
  "version": "1.0.0",
  "dependencies": {}
}

里面引入了框架提供的hypium,三方包的引入方式和這個(gè)類似,我們可以去三方包的網(wǎng)站上去尋找自己需要的三方包:

ohpm三方包倉庫

我們引入這個(gè)二維碼相關(guān)的三方庫進(jìn)行開發(fā)。


修改entry/oh-package.json5。

{
  "license": "ISC",
  "devDependencies": {},
  "author": "",
  "name": "entry",
  "description": "Please describe the basic information.",
  "main": "",
  "version": "1.0.0",
  "dependencies": {
    "@ohos/localHar": "file:../lib/localHar.har",
    "@ohos/zxing": "2.0.1"
  }
}

然后同步一下,會(huì)自動(dòng)安裝相關(guān)依賴,安裝后就可以使用三方包的功能了,我們在頁面里可以直接import我們需要的組件,進(jìn)行開發(fā)。

import {MainPage} from "@ohos/localHar"
import {MultiFormatReader, BarcodeFormat, DecodeHintType, RGBLuminanceSource, BinaryBitmap, HybridBinarizer } from "@ohos/zxing";
@Entry
@Component
struct Index {
  build() {
    Row() {
      MainPage()
    }
    .height('100%')
  }
}

注意:本文中未涉及三方包發(fā)布講解,是因?yàn)楣P者認(rèn)為發(fā)布和ohpm工具更貼合,所以會(huì)在后面出專門的ohpm文章講解該部分。

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

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

https://ost.51cto.com

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

2015-11-05 16:44:37

第三方登陸android源碼

2014-04-08 15:16:00

2023-02-07 15:43:13

三方庫適配鴻蒙

2010-07-14 15:18:26

Telnet連接

2010-03-03 15:10:49

第三方Python庫

2023-07-26 08:21:33

2024-07-30 09:35:00

2023-03-22 09:09:21

鴻蒙Speexdsp

2022-11-21 16:15:41

ArkUI鴻蒙

2019-07-30 11:35:54

AndroidRetrofit

2014-07-23 08:55:42

iOSFMDB

2017-12-11 15:53:56

2022-10-24 07:32:20

Mavenjar包代碼

2022-06-06 07:50:55

PythonJSON

2017-11-01 06:40:33

2010-03-08 08:51:59

FlashSilverlightHTML 5

2019-09-03 18:31:19

第三方支付電商支付行業(yè)

2017-05-16 13:24:02

LinuxCentOS第三方倉庫

2016-10-21 14:09:10

2009-12-31 14:38:34

Silverlight
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 色综合一区二区 | 毛片在线免费播放 | 91av在线电影 | 中文字幕一区二区三区四区不卡 | 国产三区视频在线观看 | 91在线看| 最新国产精品视频 | 亚洲 欧美 综合 | 日本综合在线观看 | 国产精品高潮呻吟久久 | 午夜精品久久久久久久久久久久 | 免费在线a视频 | 欧美精品一二区 | 色综合激情 | 一区二区三区国产精品 | 欧美在线a | 国产精品久久久久久妇女 | 视频一区二区在线观看 | 日本小视频网站 | 中文字幕 欧美 日韩 | av手机在线 | 亚洲v日韩v综合v精品v | 国产一区久久 | 性色视频在线观看 | 国产99久久久国产精品下药 | 成人欧美一区二区三区黑人孕妇 | 91亚洲国产| 午夜日韩 | 久久国| 亚洲人精品午夜 | 国产欧美在线视频 | 欧美一区二区三区 | 黄色a三级 | 91免费视频| 欧美日韩亚洲视频 | 免费在线一区二区 | www.亚洲| 欧美一区二区三区 | 日韩高清电影 | 国产农村一级片 | 男人天堂视频在线观看 |