首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏HarmonyOS知识集合

    【HarmonyOS Next】 共享HSP和应用内HSP,useNormalizedOHMUrl详解

    【HarmonyOS Next】共享HSP和应用内HSP,useNormalizedOHMUrl详解一、useNormalizedOHMUrl是什么? 使用集成态HSP和字节码HAR需使用标准化的OHMUrl格式。 存在bundleName和签名的一致性要求,而且在调试阶段需要先安装HSP包,导致多模块集成开发存在很多集成的问题。 例如笔者开发了一个日志HSP,需要给其他公司使用,不可能别的公司应用包名和我的日志HSP包名一致吧?但是前期HSP是要求bundleName和签名的一致的。 官方为了解决该问题,提供了集成态HSP的方案。集成态HSP是应用内HSP的一种中间编译产物,目的就是解决使用方的bundleName和签名之间的强耦合问题。

    49800编辑于 2025-03-24
  • 来自专栏万少的技术分享

    Harmony中的HAP、HAR、HSP区别

    项目中,建立一个HAR模块的示例如下: HSP HSP(Harmony Shared Package)是动态共享包,可以包含代码、C++库、资源和配置文件,通过HSP可以实现应用内的代码和资源的共享。 HSP往往是和 HAP做为对比区分了解。 HSP 是动态共享包 HAR 是静态共享包 项目中,如果其他模块引入了 HAR,那么其他模块中都会存在 一份HAR的拷贝,此时会存在资源冗余。 而HSP则是通过多个模块共享一个引用,资源空间得到利用。 举个例子 项目是个多模块结构,多处地方都存在 显示用户头像+用户姓名等需求。此时可以考虑采用 HSP 实现该功能。 - 多包(HAP/HSP)引用相同的HAR时,会造成多包间代码和资源的重复拷贝,从而导致应用包膨大。 Shared Library HSP 动态共享包,运行时复用。 - 当前仅支持应用内共享。 - 当多包(HAP/HSP)同时引用同一个共享包时,采用HSP替代HAR,可以避免HAR造成的多包间代码和资源的重复拷贝,从而减小应用包大小。

    1.1K00编辑于 2025-02-10
  • 来自专栏鸿蒙开发笔记

    OpenHarmony应用间HSP开发指南

     应用间HSP用于不同应用间的代码、资源共享。 应用间HSP的宿主应用是一种特殊状态的应用,只能由一个HSP组成,不会独立运行在设备上,而是被普通应用模块的依赖项引用。 应用间HSP的代码会运行在开发者应用的进程中,调用相关代码时,需要做好异常捕获与容错处理,防止由于应用间HSP功能异常导致的稳定性问题。2.  一个应用可以同时依赖多个应用间HSP。3.   的bundle名称,moduleName为应用间HSP的模块名称,versionCode为应用间HSP的版本号。 随应用发布,即用户在应用市场下载应用时,如果应用依赖了一个或者多个应用间HSP,同时设备上没有安装这个其依赖的应用间HSP时,应用市场会为用户同时下载普通应用以及其依赖的应用间HSP。 应用间HSP的调试方式开发者本地调试应用间HSP相关的功能时,可能并不具备上述分发的条件,此时可以通过bm相关指令本地完成应用间HSP的分发,主要步骤如下:1.  获取到应用间HSP的安装包。2.  

    42410编辑于 2025-05-09
  • 来自专栏HarmonyOS知识集合

    【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解

    【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解(图1-1)一、鸿蒙中App、HAP、HAR、HSP是什么? 说人话,HAR可以理解为SDK依赖,与HSP的区别在加载机制上。多包(HAP/HSP)引用相同的HAR时,会造成多包间代码和资源的重复拷贝,从而导致应用包膨大。 并且如果我的HAR包并不会在很多HAP中引用,那做成HAR包的加载效率是比做成HSP包高很多。 (4)HSP(Harmony Shared Package) 是动态共享包,分为应用内HSP和集成态HSP。 模块中的一个页面,如何实现:因为HSP中不能创建 UIAbility,那主模块entry下跳转到HSP模块中的页面需求实现如下:import { router } from '@kit.ArkUI';

    1.9K10编辑于 2025-03-20
  • 来自专栏个人路线

    鸿蒙har hap hsp 等包类型的区别

    HSP 概述 HSP(Harmony Shared Package)是动态共享包,可以包含代码、C++库、资源和配置文件,通过 HSP 可以实现代码和资源的共享。 使用场景 多个 HAP/HSP 共用的代码和资源放在同一个 HSP 中,可以提高代码、资源的可重用性和可维护性,同时编译打包时也只保留一份 HSP 代码和资源,能够有效控制应用包大小。 HSP 在运行时按需加载,有助于提升应用性能。 同一个组织内部的多个应用之间,可以使用集成态 HSP 实现代码和资源的共享。 约束限制 HSP 不支持在设备上单独安装/运行,需要与依赖该 HSP 的 HAP 一起安装/运行。HSP 的版本号必须与 HAP 版本号一致。 HSP 不支持在配置文件中声明UIAbility[7]组件与ExtensionAbility[8]组件。 HSP 可以依赖其他 HAR 或 HSP,但不支持循环依赖,也不支持依赖传递。

    2.2K10编辑于 2024-08-01
  • 来自专栏HarmonyOS知识集合

    【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解

    【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解**(图1-1)**一、鸿蒙中App、HAP、HAR、HSP是什么? 说人话,HAR可以理解为SDK依赖,与HSP的区别在加载机制上。多包(HAP/HSP)引用相同的HAR时,会造成多包间代码和资源的重复拷贝,从而导致应用包膨大。 **(4)HSP(Harmony Shared Package)** 是动态共享包,分为应用内HSP和集成态HSP。 模块中的一个页面,如何实现:**因为HSP中不能创建 UIAbility,那主模块entry下跳转到HSP模块中的页面需求实现如下:import { router } from '@kit.ArkUI' 二、鸿蒙中App、HAP、HAR、HSP的关系三、如何创建App、HAP、HAR、HSP**App**Build - Build Hap/APP - Build APP**HAP:**1、在工程目录上单击右键

    1.2K10编辑于 2025-03-28
  • 来自专栏HarmonyOS知识集合

    【HarmonyOS】HAR和HSP循环依赖和依赖传递问题详解

    三、HSP不支持依赖传递,也不支持循环依赖与HAR一致,HSP也不支持依赖传递和循环依赖。 不支持HSP循环依赖:例如有三个HSPHSP-A、HSP-B和HSP-C,循环依赖指HSP-A依赖HSP-B,HSP-B依赖HSP-C,HSP-C又依赖HSP-A。不支持循环依赖会报错。 不支持HSP依赖传递:例如有三个HSPHSP-A、HSP-B和HSP-C,依赖关系是HSP-A依赖HSP-B,HSP-B依赖HSP-C。 不支持传递依赖指HSP-A可以使用HSP-B的方法和组件,但是HSP-A不能直接使用HSP-C的方法和组件。并且HSP不支持转移依赖。 即:HAP->HSP1->HSP2->HSP3,这里的HSP2和HSP3不能转移到HAP上面。如果两个HSP相互依赖,使用对方的组件。可修改为将需要共用的组件抽离出来,然后放到一个共享包中使用。

    50121编辑于 2025-07-04
  • 来自专栏鸿蒙开发笔记

    HarmonyOS 开发实践——基于原生的跨模块资源访问

    1.hsp.type.name获取资源。其中,hsphsp模块名,type为资源类型,name为资源名称。 Text($r('[hsp].string.test_string'))   .fontSize($r('[hsp].float.font_size'))   .fontColor($r('[hsp]. Index {   text: string = '[hsp].string.test_string';   fontSize: string = '[hsp].float.font_size';   fontColor: string = '[hsp].color.font_color';   image: string = '[hsp].media.string';   rawfile: string 场景三、HSP包的资源导出引用1.创建HSP,新建模块,选择shared library。2. 导出需要使用的资源导出ResManager1,以便其他模块获取到hsp中的resource资源。

    71720编辑于 2024-11-02
  • 来自专栏C++

    【HarmonyOS Next之旅】DevEco Studio使用指南(二十二)

    集成态HSP:构建、发布过程中,不与特定的应用包名耦合;使用时,工具链支持自动将集成态HSP的包名替换成宿主应用包名。 2.1 -> 使用约束 HSP及其使用方都必须是API 10及以上版本Stage模型。 HSP及其使用方都必须使用​​​​​​​模块化编译模式。 2.2.2 -> 编译HSP模块 说明 如果HSP未开启混淆,则后续HSP被集成使用时,将不会再对HSP包进行混淆。 打包HSP时,会同时默认打包出HAR,在模块下build目录下可以看到*.har和*.hsp。 如需在应用内共享HSP,请将HSP共享包上传至私仓,请先按以下操作编译生成*.tgz包。 1. 说明 OpenHarmony三方库中心仓仅支持HAR共享包发布,不支持HSP共享包发布。如需在应用内共享HSP,可将HSP共享包发布至私仓使用。 1.

    61910编辑于 2025-05-13
  • Flutter + OpenHarmony 架构演进:从单体到模块化、微前端与动态能力的现代化应用体系

    实现真·动态下发 HSP(Harmony Shared Package):OpenHarmony 支持的动态特性包,可独立更新。 // apps/main_app/module.json5 { "dynamicFeatures": [ "health_analysis.hsp", // 健康分析引擎 "car_voice_control.hsp " // 车机语音控制 ] } 用户首次使用“健康报告”时,自动从 AppGallery 下载 health_analysis.hsp 修复车机语音 Bug,仅需更新 HSP,无需主应用审核 3.3 : - cd packages/features/health_analysis - flutter build hsp --release - agc-cli upload-hsp health_analysis.hsp 六、架构治理:让规范可执行 6.1 自动化架构检查 // tools/arch_lint/bin/check.dart void main() { final

    20310编辑于 2026-02-09
  • 来自专栏鸿蒙开发笔记

    HarmonyOS 开发实践 —— 应用包体积大小优化解决方案

    分析应用包体积大的原因1.app-check-tool app-check-tool 应用包扫描工具,可以扫描指定路径的HAP、HSP、App包内容并输出检测结果报告,为开发者优化包结构或排查问题提供数据支撑 ,HAP包可以独立安装和运行,是应用安装的基本单位,一个应用中可以包含一个或多个HAP包HSP(Harmony Archive)动态共享库,用于实现代码和资源的共享, HSP中的代码和资源可以独立编译, HAR和HSP在APP包中的形态示意图:从上图可以看到如果应用中的某个HAR包被多个HAP/HSP引用,那么HAR包会存在多分拷贝,会存在冗余代码和资源,而使用HSP来替换HAR可以共享一份代码和资源, 如果通过扫描发现是包中的so文件较大,可以在HAP/HSP(HAR中不需要配置)模块的module.json5中配置compressNativeLibs字段为true来压缩HAP/HSP包中的so的体积 可通过在HAP/HSP(HAR中不需要配置)模块的build-profile.json5中开启strip,来移除.so文件中的符号表、debug信息,从而可以大大降低so的体积。

    61620编辑于 2024-12-02
  • 来自专栏生信技能树

    housekeeper基因在肿瘤与正常样本中会发生显著差异表达吗?

    下面是对这三个基因的具体解读: HSP90AA1: 也被称为HSP90α(alpha),是HSP90家族中的一种主要亚型。 在细胞质中表达,参与广泛的细胞内蛋白质折叠和稳定。 HSP90AB1: 也被称为HSP90β(beta),与HSP90α共同存在于细胞质中。 在结构和功能上与HSP90α相似,但表达水平通常较低。 与HSP90AA1和HSP90AB1相比,HSP90B1在进化上更为古老,具有不同的调控机制。 总的来说,HSP90家族蛋白在细胞内发挥着关键的分子伴侣功能,对于维持蛋白质稳态和细胞功能至关重要。 ": "HSP90AA1" "HSP90AB1" "HSP90B1" housekeeper_genes <- c("ACTB", "GAPDH", "HSP90AA1", "HSP90AB1", "HSP90B1 ": "HSP90AA1" "HSP90AB1" "HSP90B1" housekeeper_genes <- c("ACTB", "GAPDH", "HSP90AA1", "HSP90AB1", "HSP90B1

    47100编辑于 2025-01-19
  • 来自专栏HarmonyOSNext

    【HarmonyOS学习】应用程序包

    ​ 应用程序包简介​​HAR和HSP两种共享包得主要区别共享包类型编译和运行方式发布和引用方式HARHAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。 HSP一般随应用进行打包,当前支持应用内和集成态HSP。应用内HSP只支持应用内引用,集成态HSP支持发布到ohpm私仓和跨应用引用。​ 开发和编译后得文件视图​发布状态的包结构 一个应用中的所有.hap与.hsp文件合在一起称为Bundle,其对应的bundleName是应用的唯一标识 当应用发布上架到应用市场时,需要将Bundle打包为一个 pack.info文件描述了App Pack中每个HAP和HSP的属性,包含APP中的bundleName和versionCode信息、以及Module中的name、type和abilities等信息。

    32400编辑于 2024-12-24
  • 来自专栏作图丫

    基因家族分析方法概览

    第一篇-Hsp20家族识别 Genome-wide analysis of the potato Hsp20 gene family: identification, genomicorganization and expression profiles in response to heat stress 1、数据下载:PGSC数据库下载potato所有的蛋白序列,Pfam数据库下载Hsp20基因家族 2、使用hmmsearch 阈值 e-value <=0.001 来搜索Hsp20 家族基因。 3、使用拟南芥Hsp20蛋白作为队列与potato所有的蛋白库进行比对,阈值e-value <=0.001。 4、“Hsp20” and “small heat shock protein”关键字 在PGSC中搜索。 5、Hsp20不完整domain或分子量在15-42之外的蛋白过滤掉。

    2.4K42编辑于 2022-03-28
  • 来自专栏DrugOne

    J. Chem. Inf. Model. | 基于MoE的解离动力学模型助力设计“长效药”

    HSP90候选抑制剂设计为例,本文成功设计出许多全新的潜在HSP90候选抑制剂,与已知性能优异的HSP90抑制剂相比,潜在HSP90候选抑制剂的驻留时间(τ = 1/koff)最多提高了45.7%。 4.2 数学规划法为HSP90蛋白设计定制虚拟抑制剂库 针对HSP90靶标,本文集成深度学习模型与数学规划法设计慢解离HSP90候选抑制剂,设计流程如图5所示。 图 5. 慢解离HSP90候选抑制剂设计流程 首先,收集具有慢解离动力学的HSP90抑制剂及其koff实验值,并将其视为参考化合物。 HSP90候选抑制剂的设计结果。(a)使用ECFP描述符和t-SNE方法设计的HSP90候选抑制剂的化学空间。(b)参考化合物的二维分子结构。(c)潜在HSP90抑制剂的二维分子结构。 显然,潜在HSP90候选抑制剂的R1取代基大于参考化合物,因而提高了τ值。 图 7. HSP90结合位点的两种主要构象 图 8.

    41510编辑于 2024-11-23
  • 来自专栏鸿蒙开发笔记

    鸿蒙(HarmonyOS)性能优化实战-APP体积包瘦身方案

    应用存在多包(HAP、HSP)的场景时,可以使用 HSP(Harmony Shared Package) 动态共享包在应用的多个包(HAP、HSP)之间共享代码和资源,消除使用 HAR(Harmony 在多包场景下,如果应用的多个HAP或HSP包使用HAR包实现代码和资源的共享,那么打包后的每个HAP或HSP包中都会存在一份共享HAR包的拷贝,导致App包中存在冗余代码和资源。 这种场景下,推荐开发者使用HSP代替HAR实现代码和资源共享。 如下图示例,使用HSP2对原应用进行升级改造,打包后,App包中HAR2和HAR3只存在一份拷贝,HAR2、HAR3总大小大于HSP(11k)时,可以减小应用包大小。 多包(HAP、HSP)间重复资源,可以使用HSP实现资源的复用。较大文件确认是否为应用必需,是否可删除。JPG、PNG、GIF等文件,可以考虑压缩。

    71330编辑于 2024-10-25
  • 鸿蒙5开发宝藏案例分享---优化应用包体积大小问题

    HSP动态共享包:干掉多包重复资源****问题**:多个HAP/HSP包引用相同HAR静态包时,每个包都重复打包资源(如图片、代码)。 **优化**:用 **HSP动态共享包** 替代HAR,实现资源复用:```// 在HSP的module.json5中声明共享资源{ "module": { "type": "shared", - ✅ **HSP动态包**:所有HAP共享同一份HSP代码,物理存储仅1份。 **效果**:资源越多,节省越显著(尤其图片、公共组件库)。* * *### **3. /app.hap```**报告重点看**:- **重复文件**:删除包内重复资源,或多包间改用HSP共享。- **大文件**:<!

    34910编辑于 2025-06-18
  • 鸿蒙5开发宝藏案例分享---模块化设计案例分享

    // ✅ 正确方案:封装共享HSP // 创建common.hsp(动态共享包) // 工具类:CommonUtils.ets export class Logger { static C -->|是| D(HSP动态包) C -->|否| E{跨应用共享?} **​按需加载​**​:月活<5%的功能强烈建议用`HSP` * * * 四、福利:官方隐藏案例入口 在HarmonyOS文档搜索这些关键词,解锁更多案例: 1. ​ **​“动态共享库”​**​ → 获取HSP性能优化Demo 1. ​ 电商级应用:HSP按需加载 + 共享HSP基础库 遇到坑了?​**​随时去华为开发者社区吼我​**​(搜索“模块化”问题区有官方大佬驻场)! ​**​Keep coding, 咱们下期见!​**​

    38910编辑于 2025-06-27
  • 来自专栏全栈程序员必看

    数据增强之cutout变体,添加噪声和mixcut

    rflag = random.randint(2, 6) pflag = random.randint(0, rflag) wsp = 0 hsp sw = w // rflag wsp = sw * pflag; else: sh = h // rflag hsp sh = int(max((h / 2 * hflag / 100), 5)) wsp = random.randint(0, w - sw - 1) hsp nidx2 = np.concatenate([idxs2, idxs1]) img_np = img.cpu().data.numpy() img_np[nidx1, :, hsp :hsp + sh, wsp: wsp + sw] = img_np[nidx2, :, hsp:hsp + sh, wsp: wsp + sw] img = torch.from_numpy(

    43810编辑于 2022-11-08
  • 来自专栏凯哥Java

    SpringBoot 整合 Redis 的简单案例

        } }123456789101112131415161718192021222324252627 6).在service包中建立一个RedisService.java类 package com.hsp.sercice Object value);       public Object get(String key);   }123456789 7).RedisServiceImpl.java package com.hsp.service.impl ;import com.hsp.sercice.RedisService;@Servicepublic class RedisServiceImpl implements RedisService { return vo.get(key);     } }12345678910111213141516171819202122232425 8).UserController.java package com.hsp.controller ;import com.hsp.sercice.RedisService;import com.hsp.sercice.UserService;@Controller @RequestMapping(path

    43220编辑于 2022-12-15
领券