OpenHarmony: guía de desarrollo de HSP entre aplicaciones

HSP entre aplicaciones se utiliza para compartir código y recursos entre diferentes aplicaciones. La aplicación de host de HSP entre aplicaciones es una aplicación de estado especial que solo puede estar compuesta por un HSP . No se ejecutará de forma independiente en el dispositivo, sino que será referenciada por las dependencias de los módulos de aplicación ordinarios. Cuando se ejecuta una aplicación común, las capacidades proporcionadas por el HSP entre aplicaciones se utilizan a través de llamadas dinámicas para lograr las funciones requeridas por la propia aplicación.

Precauciones

  1. El código del HSP entre aplicaciones se ejecutará en el proceso de la aplicación del desarrollador. Al llamar al código relevante, se debe realizar el procesamiento de captura de excepciones y tolerancia a fallas para evitar problemas de estabilidad causados ​​​​por el funcionamiento anormal del HSP entre aplicaciones .
  2. Una aplicación puede depender de múltiples HSP entre aplicaciones al mismo tiempo .
  3. El HSP entre aplicaciones afectará el tiempo de inicio de la aplicación del desarrollador. Depender de demasiados HSP entre aplicaciones puede causar una degradación significativa en la latencia de inicio. Se recomienda controlar el número de dependencias dentro de 16.
  4. Al instalar HSP entre aplicaciones , se deben verificar los permisos de privilegios. Si desea desarrollar HSP entre aplicaciones , debe configurar el privilegio de la aplicación enableAppShareLibrary. Para métodos de configuración específicos, consulte la guía de configuración de privilegios de la aplicación .

Uso de HSP entre aplicaciones

El HSP entre aplicaciones se lanzará al público en dos partes:

Parte de esto es HAR . El paquete HAR no contiene código de implementación de función específica, solo objetos y métodos exportados, por lo que es muy pequeño. Los desarrolladores de aplicaciones integran el paquete HAR en sus propios proyectos y luego pueden completar sus propias funciones de aplicación llamando a los objetos y métodos proporcionados en el paquete HAR .

La otra parte es HSP, que es la implementación específica de HSP entre aplicaciones , incluido el código js/ts, la biblioteca C++, los recursos y los archivos de configuración. Esta pieza se comercializará en el mercado de aplicaciones o se integrará en la versión del sistema.

Integración de HAR entre aplicaciones

El archivo index.ets en HAR es la entrada al archivo de declaración exportado por HSP entre aplicaciones . Todas las interfaces que deben exportarse se definen en el archivo index.ets . La ruta del archivo index.ets es la siguiente:

liba
├── src
│   └── main
│       ├── ets
│       │   ├── pages
│       │   └── index.ets
│       ├── resources
│       └── module.json5
└── oh-package.json5

La interfaz expuesta externamente debe declararse en el archivo de entrada index.ets :

Un ejemplo de contenido de index.ets es el siguiente:

// liba/src/main/ets/index.ets
export { hello, foo1, foo2, nativeMulti, UIComponent } from './ui/MyUIComponent'

Entre ellos, UIComponent es el componente ArkUI exportado, hello() , foo1() y foo2() son los métodos ts exportados por HSP entre aplicaciones, y el método nativoMulti() es el método nativo exportado por HSP entre aplicaciones. La implementación específica es la siguiente:

Componentes de ArkUI

Ejemplos de implementación específicos de componentes ArkUI en HSP :

// liba/src/main/ets/ui/MyUIComponent.ets
@Component
export struct UIComponent {
       
       
  @State message: string = 'Hello World'
  build() {
       
       
    Column() {
       
       
      Text(this.message)
        .fontSize(32)
        .padding(8)
        .fontColor(0xffffff)
        .backgroundColor(0x0000ff)
    }.padding(8).width('100%')
  }
}

método ts

La implementación específica del método ts en HSP :

// liba/src/main/ets/ui/MyUIComponent.ets
export function hello(name: string): string {
       
       
  return "hello + " + name;
}

export function foo1() {
       
       
  return "foo1";
}

export function foo2() {
       
       
  return "foo2";
}

método nativo

Por lo tanto, lo escrito en C++ también se puede incluir en HSP . Para los métodos nativos en so , HSP se exporta indirectamente, tomando la interfaz de multiplicación multi de libnative.so como ejemplo:

// liba/src/main/ets/ui/MyUIComponent.ets
import native from "libnative.so"

export function nativeMulti(a: number, b: number) {
       
       
    let result: number = native.multi(a, b);
    return result;
}

Posibilidad de exportar usando HAR

Antes de hacer referencia a HAR , debe configurar la dependencia de HAR . Para conocer los métodos de configuración, consulte la documentación . Una vez que HAR se haya configurado correctamente, se generará información de dependencia relevante en module.json5 del módulo de configuración, como se muestra a continuación:

"dependencies": [
      {
       
       
        "bundleName": "com.share.liba",
        "moduleName": "liba",
        "versionCode": 10001
      }
]

Entre ellos, bundleName es el nombre del paquete del HSP entre aplicaciones , moduleName es el nombre del módulo del HSP entre aplicaciones y versionCode es el número de versión del HSP entre aplicaciones .

Usando componentes ArkUI en HAR

Una vez que las dependencias de HAR se hayan configurado correctamente, puede hacer referencia al componente ArkUI de HAR . El método de importación de los componentes de ArkUI es el mismo que el método de importación de ts. Los componentes de ArkUI exportados por HAR se introducen mediante import . El ejemplo es el siguiente:

import {
       
        UIComponent } from 'liba'

@Entry
@Component
struct Index {
       
       
  @State message: string = 'Hello World'
  build() {
       
       
    Row() {
       
       
      // 引用HAR的ArkUI组件
      UIComponent()
      Column() {
       
       
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

Usando el método ts en HAR

Haga referencia a las clases y métodos ts exportados por HAR mediante importación. El ejemplo es el siguiente :

import {
       
        foo1 } from 'liba'
import {
       
        foo2 } from 'liba'

@Component
struct Index {
       
       
  build() {
       
       
    Row() {
       
       
      Column() {
       
       
        Button('Button')
          .onClick(()=>{
       
       
            // 引用HAR的ts方法
            foo1();
            foo2();
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

Utilice métodos nativos en HAR

Haga referencia al método nativo exportado por HAR mediante importación. El ejemplo es el siguiente :

import {
       
        nativeMulti } from 'liba'

@Component
struct Index {
       
       
  build() {
       
       
    Row() {
       
       
      Column() {
       
       
        Button('Button')
          .onClick(()=>{
       
       
            // 引用HAR的native方法
            nativeMulti();
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

Método de distribución HSP entre aplicaciones (solo abierto a aplicaciones del sistema)

Dado que el HSP entre aplicaciones no está integrado directa y completamente en la aplicación de desarrollador, debe preestablecerse en la versión del sistema con anticipación o instalarse en el dispositivo simultáneamente con la aplicación de desarrollador. Hay dos formas principales:

  1. Con el lanzamiento del sistema, las HSP entre algunas aplicaciones de uso común estarán preestablecidas en la versión del sistema.
  2. Cuando se lanza la aplicación, es decir, cuando el usuario descarga la aplicación del mercado de aplicaciones, si la aplicación depende de uno o más HSP entre aplicaciones y el HSP entre aplicaciones del que depende no está instalado en el dispositivo , la aplicación Market descargará la aplicación ordinaria y otras aplicaciones para el usuario al mismo tiempo.HSP entre aplicaciones dependientes . Esto garantiza que las aplicaciones normales puedan utilizar normalmente las funciones de la biblioteca compartida.

Cómo depurar HSP entre aplicaciones

Cuando los desarrolladores depuran localmente funciones relacionadas con HSP entre aplicaciones, es posible que no cumplan con las condiciones de distribución anteriores. En este caso, la distribución de HSP entre aplicaciones se puede completar localmente a través de instrucciones relacionadas con BM . Los pasos principales son los siguientes:

  1. Obtenga el paquete de instalación de HSP entre aplicaciones .
  2. Primero instale el paquete de instalación de HSP entre aplicaciones mediante el comando bm .

bm install -s sharebundle.hsp

  1. Instale la aplicación del desarrollador después de pasar el comando bm .

bm install -p feature.hap

  1. Inicie la aplicación propia del desarrollador y las funciones relacionadas con la depuración.

Nota : Los pasos 2 y 3 no se pueden revertir; de lo contrario , la instalación de la aplicación del desarrollador fallará debido a la falta del HSP entre aplicaciones necesario. Para obtener más instrucciones relacionadas con BM , consulte la documentación .

Supongo que te gusta

Origin blog.csdn.net/OpenHarmony_dev/article/details/132812535
Recomendado
Clasificación