当前位置: 代码迷 >> Android >> Android高级工程师面试题大全
  详细解决方案

Android高级工程师面试题大全

热度:53   发布时间:2016-04-24 11:42:55.0
Android工程师面试题大全

Java基础:

1、内存泄露的原因:

  1. 资源对象没关闭。
    如Cursor、File等资源。他们会在finalize中关闭,但这样效率太低。容易造成内存泄露。
    SQLiteCursor,当数据量大的时候容易泄露
  2. 使用Adapter时,没有使用系统缓存的converView。
  3. 即时调用recycle()释放不再使用的Bitmap。
    适当降低Bitmap的采样率,如:

    复制代码
    ??
  4. 使用application的context来替代activity相关的context。
    尽量避免activity的context在自己的范围外被使用,这样会导致activity无法释放。
  5. 注册没取消造成内存泄露
    如:广播
  6. 集合中的对象没清理造成的内存泄露我们通常把一些对象的引用加入到了集合中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大。如果这个集合是static的话,那情况就更严重了。
  7. Handler应该申明为静态对象, 并在其内部类中保存一个对外部类的弱引用。如下:

更多面试题,查看原文

  相关解决方案