【HarmonyOS】鸿蒙arrayBuffer和Uint8Array互相转化
前言
ArrayBuffer
ArrayBuffer内部包含一块Native内存,该ArrayBuffer的JS对象壳被分配在虚拟机本地堆(LocalHeap)。与普通对象一样,需要经过序列化与反序列化拷贝传递,但是Native内存有两种传输方式:拷贝和转移。
Uint8Array
Uint8Array是一种基本的JavaScript数组类型,用于处理二进制数据。它是无符号的8位整数数组,每个元素固定为1字节(8位)。这种数组类型主要用于操作二进制数据,如文件、图像数据或网络通信中的原始数据。
在鸿蒙(HarmonyOS)开发中,Uint8Array经常被用来处理二进制数据,例如在证书管理模块中,它被用来表示签名结果或证书二进制数据。由于Uint8Array能够有效地处理二进制数据,它在处理网络通信或文件操作时非常有用,可以提高性能并减少内存使用。
工具函数:
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;
}
}