Adi*_*hya 11 serialization android json jackson parcelable
我知道我的问题有一些答案,但答案不是很精细或令人信服.在我的程序中,为了将数据从一个活动传输到另一个活动,我将POJO类的内容转换为Json字符串并通过bundle传递.(METHOD1).
方法1
String jsonString = JacksonSingleton.getObjectMapper().writeValueAsString(object);
bundle.putExtra(KEY_STR, jsonString)
Run Code Online (Sandbox Code Playgroud)
在方法2中,我在bundle中传递一个Parcelable对象.
方法2
bundle.putExtra(KEY_STR, parcelableObject);
Run Code Online (Sandbox Code Playgroud)
如果我要实现方法2,我将必须实现'Parcelable'接口并编写自定义代码,用于编组和解组我的POJO类字段.
我的问题是,哪种方法在性能方面更好/更好?方法1非常方便,但我想遵循最佳实践.
Adi*_*hya 21
编辑: 如果你不喜欢像我一样编写'Parcelable'样板代码,你可以在你的Android Studio/IntelliJ IDE中使用Parcelable代码生成器插件.非常易于使用和设置.
尽管我讨厌回答我自己的问题,但我想我会讨论并分享我的观察,这将有助于将来的其他人.
可以使用在活动意图中传递Serializable或Parcelable对象来完成从一个活动到另一个活动的数据传输.Android开发人员网站建议为此目的使用Parcelable接口(链接).
但是,我的问题与传递Parcelable对象和JSON字符串之间的效率比较有关.
为了测试这个,我使用了旧的和低端的Android设备.我通过在活动意图中发送一个大的Parcelable对象来启动一个活动.接下来,我使用活动意图中相同对象的JSON字符串启动了相同的活动.我观察到的是通过发送JSON字符串而不是Parcelable Object来启动活动时的显着可观察延迟.
总之,即使我们传递JSON字符串,String对象也会实现Serializable.Google建议使用Parcelable而不是Serializable对象.如果长度可以忽略不计,这通常是微不足道的.然而,对于大型物体的大量Json Strings,效率肯定会造成损失.
你可以参考它来获得Parcelable和Serializable的性能基准.
| 归档时间: |
|
| 查看次数: |
3311 次 |
| 最近记录: |