Taro 鸿蒙技术内幕系列(四):JDImage 自研鸿蒙图片库

基于 Taro 打造的京东鸿蒙 APP 已跟随鸿蒙 Next 系统公测,本系列文章将深入解析 Taro 如何实现使用 React 开发高性能鸿蒙应用的技术内幕

背景

2024年初,京东正式启动了鸿蒙 APP 的开发工作。由于电商 APP 大量依赖图片来展示商品信息,对图片库的性能和加载体验要求极高,因此图片库被作为核心基础能力提前纳入京东鸿蒙首期基础建设计划。本文将详细介绍京东自研鸿蒙图片库的开发过程及其技术原理。

技术实现

前期调研

经过前期的调研,我们发现HarmonyOS平台的网络图片加载主要依赖以下两种实现方式:

系统 - Image组件

仅仅提供基础的图片组件用于图片加载,但功能、图片格式支持和扩展性都较弱,无法实现更丰富的图片库能力。存在的一些问题:

  • 性能一般,尤其在同时加载多个图片时较慢

  • 不支持 AVIF 图片格式并且无法扩展

  • 无法搭建完善的质量监控体系

  • 无法控制和扩展图片下载、解码、缓存流程,无法加入更多的性能优化手段和扩展定制

第三方库 - ImageKnife

社区参考Android图片库GlideHarmonyOS版本实现,使用ArkTS开发。虽然能力比系统Image组件完善,但在性能、稳定性和扩展性都无法满足诉求。存在的一些问题:

  • 性能一般

  • 代码质量一般,存在一些 bug 和 Crash

  • 整体架构、扩展性设计不够,无法加入更多的性能优化手段和扩展定制

由于系统Image组件和ImageKnife开源库无法满足诉求,我们决定自主研发鸿蒙图片库。此外,随着HarmonyOS系统的引入,客户端在原有的iOSAndroid基础设施上新增了一个平台,增加了维护成本。现有iOS/Android图片库也存在双端部分能力不一致的情况。集团内部期望未来的客户端基础设施能够支持跨端复用,以提高开发效率和一致性。

因此,团队选择基于C++为核心进行图片库开发,这种实现方式有以下优势:

  • 跨端复用:将更多的公共模块下沉到C++层以实现跨端复用,未来图片库可以扩展到iOSAndroid平台。

  • 适配 Taro:Taro Harmony框架基于鸿蒙CAPI进行开发,需要依赖CAPI的图片组件,可以避免ArkTSC++<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值