HarmonyOS putString与getString最终获取的value值不一致问题
1.putString和getString最终获取的value不一致问题:结尾会拼接上"true" “\B” 之类的莫名奇妙的多余字符。
2.该问题在调试中(模拟器和真机)是偶现的,分步骤拆解:1)创建对象 2)对象转成JSON串 3)写入 4)读取 5)再解析成对象,以上步骤执行最高1万次的压测,结果是随机的:正常的时候1万次都正常,但是不正常的时候第一次就不行。
3.putString的实现原理:在TS层把 string类型转成ArrayBuffer(通过TextEncoder去转)传递到C++ 层,然后C++层做真正的写入。读取时候类似。
4.怀疑点:通过Encoder或者Buffer去转格式时,华为底层可能存在兼容性问题,但又是随机的。
5.瓶颈:根据目前现象来看不像是代码逻辑的问题,比较难通过直接改代码的方式解决。