【HarmonyOS】鸿蒙arrayBuffer和Uint8Array互相转化

【HarmonyOS】鸿蒙arrayBuffer和Uint8Array互相转化

前言

ArrayBuffer

ArrayBuffer内部包含一块Native内存,该ArrayBuffer的JS对象壳被分配在虚拟机本地堆(LocalHeap)。与普通对象一样,需要经过序列化与反序列化拷贝传递,但是Native内存有两种传输方式:拷贝和转移。

Uint8Array

Uint8Array是一种基本的JavaScript数组类型,用于处理二进制数据。它是无符号的8位整数数组,每个元素固定为1字节(8位)。这种数组类型主要用于操作二进制数据,如文件、图像数据或网络通信中的原始数据。

在鸿蒙(HarmonyOS)开发中,Uint8Array经常被用来处理二进制数据,例如在证书管理模块中,它被用来表示签名结果或证书二进制数据。由于Uint8Array能够有效地处理二进制数据,它在处理网络通信或文件操作时非常有用,可以提高性能并减少内存使用。

工具函数:

dart 复制代码
export class Util {

  /**
   * arrayBuffer转Uint8Array
   * @param buffer
   * @returns
   */
  public arrayBufferToUint8Array(buffer: ArrayBuffer): Uint8Array {
    let temp = new Uint8Array(buffer);
    return temp;
  }

  /**
   * uint8Array转ArrayBuffer
   * @param buffer
   * @returns
   */
  public uint8ArrayToArrayBuffer(array: Uint8Array): ArrayBuffer {
    let temp = array.buffer as ArrayBuffer;
    return temp;
  }
  
}
相关推荐
bst@微胖子16 小时前
鸿蒙实现滴滴出行项目之线路规划图
华为·harmonyos
我是华为OD~HR~栗栗呀17 小时前
23届考研-Java面经(华为OD)
java·c++·python·华为od·华为·面试
路很长OoO19 小时前
Flutter 插件开发实战:桥接原生 SDK
前端·flutter·harmonyos
2501_9197490321 小时前
鸿蒙:使用Rating组件实现五角星打分评价
华为·harmonyos
2501_919749031 天前
鸿蒙:实现滑动选择日期操作
华为·harmonyos
程序员潘Sir1 天前
鸿蒙应用开发从入门到实战(十九):样式复用案例
harmonyos·鸿蒙
std860211 天前
华为 Mate80 要来了,或搭载最新麒麟芯片
华为
2501_919749031 天前
鸿蒙:使用@Reusable实现组件的复用,提升性能
华为·harmonyos
高工智能汽车2 天前
棱镜观察|极氪销量遇阻?千里智驾左手服务吉利、右手对标华为
人工智能·华为