Andriod开发经验谈:细节优化

一、Android中尽量不要采用静态变量存储关键数据

原因:Android APP在运行后,放置在后台,一旦被回收后,再重新打开,app会恢复原有的activity,但是静态变量则会被初始化。Application也会被初始化。

建议用文件存储,或者sp,或者contentProivder。

 

二、关于Sharepreference

1、sp是不能跨进程同步,不能跨进程读写数据。

原因在于每个进程都会维护自己的一份sp副本。其他进程无法获取,只有在应用结束后才能够修改到文件系统中。

2、存储文件过大

主要是保存配置类文件,如果文件太大,获取值会阻塞主线程。引起UI卡顿。

解析大Sharepreference文件的时候,会产生大量的临时对象,会导致频繁GC。

key和Value值一直存在于内存当中,如果文件太大,会造成内存占用过大。

绝不能滥用

三、内存对象序列化

serializeble是java中的序列化接口,采用serializeble会产生大量的临时变量,导致大量的垃圾回收。

在Android中采用Parcelable来序列化对象。比serializeble性能更好,但是不能用于磁盘文件的序列化。主要是实现对象在进程中传递。

内存中的序列化建议采用Parcelable

磁盘文件建议采用serializeble

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二蛋和他的大花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值