HarmonyOS鸿蒙Next中在开发应用过程中希望同时开发内部测试用的伴生应用 可以通过此应用和主应用进行一些数据的打通以及log的导出 最终不随主应用上线 想问下是否有成熟的方案可以参考

HarmonyOS鸿蒙Next中在开发应用过程中希望同时开发内部测试用的伴生应用 可以通过此应用和主应用进行一些数据的打通以及log的导出 最终不随主应用上线 想问下是否有成熟的方案可以参考 【问题描述】:在开发应用过程中希望同时开发内部测试用的伴生应用 可以通过此应用和主应用进行一些数据的打通以及log的导出 最终不随主应用上线 想问下鸿蒙上是否有成熟的方案可以参考

【问题现象】:不涉及

【版本信息】:不涉及

【复现代码】:不涉及

【尝试解决方案】:不涉及

3 回复

【解决方案】

目前没有这种解决方案,方舟数据管理提供了跨应用数据共享方案;或者可以考虑手动导出数据和log日志。 参考文档: 跨应用数据共享

更多关于HarmonyOS鸿蒙Next中在开发应用过程中希望同时开发内部测试用的伴生应用 可以通过此应用和主应用进行一些数据的打通以及log的导出 最终不随主应用上线 想问下是否有成熟的方案可以参考的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙Next支持通过HarmonyOS App Bundle(HAP)的分包机制实现。主应用和测试应用可分别打包为独立HAP,共享同一Bundle Name但不同Module Name。通过Ability间通信或公共文件目录实现数据互通,测试应用的调试日志可通过hilog接口输出到独立文件。使用编译构建脚本控制测试HAP的打包与发布流程,正式发布时排除测试模块即可。

在HarmonyOS Next中,实现一个用于内部测试和数据导出的伴生应用,有成熟的方案可以参考。核心是利用HarmonyOS的应用模型和分布式能力。

1. 方案设计思路 伴生应用可以作为独立的HarmonyOS应用(同一个包名下或通过相同证书签名的不同应用),与主应用通过以下方式进行数据交互:

  • 分布式数据管理:使用分布式数据对象(DistributedDataObject)或分布式数据服务(DistributedDataService),在同一个组网环境下,实现主应用与伴生应用之间的实时数据同步。测试应用可以读取主应用的特定测试数据或状态。
  • 公共文件访问:主应用将日志、测试数据等写入应用沙箱内或公共目录(如Preferences或特定媒体目录)下的文件。伴生应用通过相同的包名签名或申请适当的权限(如ohos.permission.READ_MEDIA),读取这些文件以实现日志导出。
  • 隐式Want启动与IPC:主应用可以定义一些仅供伴生应用调用的隐式Want(Action),用于触发数据导出、状态查询等调试操作。两者通过进程间通信(IPC)进行指令交互。

2. 关键实现步骤

  • 应用配置:确保主应用和伴生应用使用相同的证书签名,并在各自的module.json5配置文件中声明相同的bundleName(或使用不同的bundleName但通过签名建立信任关系)。对于文件共享,需合理配置requestPermissions权限。
  • 数据共享实现
    • 对于分布式数据,在主应用和伴生应用中创建相同标识的DistributedDataObject,并加入同一网络组。主应用更新对象属性,伴生应用可监听变更。
    • 对于文件共享,主应用将日志写入指定目录(如context.filesDir下的子目录)。伴生应用通过fileIOpicker等接口访问该路径。
  • 调试功能调用:伴生应用可通过隐式Want启动主应用的特定Ability(如一个隐藏的调试Ability),并传递指令参数。主应用收到指令后执行数据打包或状态反馈。

3. 上线与打包

  • 在最终发布时,只需在AppGallery Connect的版本配置中不包含伴生应用的HAP包即可。主应用可保留数据共享接口,但移除对伴生应用的显式依赖或通过编译条件(如debug编译配置)关闭调试功能,确保上线版本的安全性。

此方案已在多个HarmonyOS应用的开发测试中得到实践,能有效支持内部测试数据的打通与日志导出需求。

回到顶部