zoukankan      html  css  js  c++  java
  • Android异常与性能优化相关面试问题-其他优化面试问题详解

    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线程中做繁重的操作:

    这个就不多说啦~~

  • 相关阅读:
    bzoj 3308 九月的咖啡店
    8.13模拟赛
    8.10模拟赛
    8.9模拟赛
    8.8模拟赛
    Codeforces Round #406 (Div. 2) D. Legacy (线段树建图dij)
    BZOJ 2957: 楼房重建 (分块)
    SPOJ BGSHOOT
    Codeforces Round #404 (Div. 2) E. Anton and Permutation(树状数组套主席树 求出指定数的排名)
    Lightoj-1356 Prime Independence(质因子分解)(Hopcroft-Karp优化的最大匹配)
  • 原文地址:https://www.cnblogs.com/webor2006/p/8989143.html
Copyright © 2011-2022 走看看