Android不用静态变量存储数据:

  • 静态变量等数据由于进程已经被杀死而被初始化。
    在Android中应用进程不是安全的,因为它会有系统给kill掉,但是在实际中可能会有这样的一个假象:当app被杀掉之后会重新再开的,其实这个再打开是重新创建了一个进程,启动上一次打开的Activity,由于此时的静态变量又会重新初始化则会造成数据不安全。
  • 使用其它数据传输方式:文件 / sp / contentProvider。

有关SharedPreference的安全问题:

  • 不能跨进程同步。
  • 存储SharedPreference有文件过大的问题。一般只是存放一些配置信息,不能过大。如果过大会引起界面卡顿。

内存对像序列化:

序列化:将对像的状态信息转换为可以存储或传输的的形式的过程。其实现方式有如下:

  • Serializable
    注意:它在序列化的时候会产生大量的临时变量从而引起频繁的GC。
  • Parcelable
    它的性能优于Serializable,

总结:

1、Serializable是Java的的序列化方式,Parcelable是Android特有的序列化方式。

2、在使用内存的时候,Parcelable比Serializable性能高。

3、Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。

4、Parcelable不能使用在要将数据存储在磁盘上的情况。也就是不要序列化在碰盘上的情况。

5、虽说Serializable效率较低,但还是推荐序列化使用它。

避免在UI线程中做繁重的操作:

这个就不多说啦~~

最新文章

  1. Todd's Matlab讲义第4讲:控制误差和条件语句
  2. sublime text 全局搜索
  3. Spring JDBC保存枚举对象含关键字报错原因之一
  4. Program B 暴力求解
  5. git常用命令[持续更新]
  6. 页面接口防刷 解决思路一nginx
  7. Xcode-Xcode 7.3 解决不能自动联想问题-备
  8. Scala actor的使用
  9. Spark Shuffle机制
  10. 【IDE】我的花里胡哨VS
  11. element-ui <el-input> +<el-tree>使用
  12. Vue+element组合el-table-column表头宽度自定义
  13. node编译C++,比如安装node-gyp失败的问题
  14. 一次ssh远程不能登录的排查
  15. FastDFS初步认识--上传下载流程介绍
  16. Linux基础-awk、变量、运算符、if
  17. $stateParams 详解
  18. 固定尺寸内存块的缓冲队列类及C++实现源代码
  19. 50篇经典珍藏 | Docker、Mesos、微服务、云原生技术干货
  20. Bind("入库日期", "{0:yyyy-MM-dd}") 关于asp.net格式化数据库日期字符串

热门文章

  1. bug解决思路——插入数据时,前台不展示数据
  2. python 调试技巧
  3. 2019icpc银川网络赛
  4. Compress and decompress string
  5. [转帖]Xenix — 微软与UNIX的短暂爱恋
  6. JSP与Servlet之间的交互,传值
  7. PAT B1042 挖掘机哪家强
  8. pt工具
  9. charindex函数的用法
  10. python-open函数