gpt4 book ai didi

android - 在 Android intent extras 中使用 protobuffers 而不是 Parcelables?

转载 作者:太空狗 更新时间:2023-10-29 13:40:45 25 4
gpt4 key购买 nike

使用 Protocol Buffer 对象(序列化为字节数组)在 Android Activity 之间作为 intent extras 传递而不是在经典 POJO 上实现 Parcelable 是个好主意吗?它将如何影响性能?

谢谢马库斯

最佳答案

要确定您必须针对您的特定情况进行测试。

关于 Parcel 的注意事项:

  1. 您可能知道,这是一个手动过程:您必须遍历对象树并调用 Parcel 的各种序列化方法,例如writeFloatArray(..)。没有魔法,它是最底层的。

  2. Parcel.java 是 native 实现的包装器,因此它应该已经非常优化:http://www.google.com/codesearch/p?hl=en#uX1GffpyOZk/libs/binder/Parcel.cpp&q=Parcel.cpp%20package:android&sa=N&cd=1&ct=rc

  3. 不要使用 Binder,因为它会创建一个代理(如果跨进程)。

  4. 可能最重要的是:使用 setDataCapacity(int size) 正确调整初始缓冲区的大小。这样内部数组就不需要增长(= 内存分配 + 复制)。

  5. 如果您多次使用 Parcel,则使用 recycle() 将其还给池。

关于android - 在 Android intent extras 中使用 protobuffers 而不是 Parcelables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6028369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com