Android 面试笔记

@bingoogolapple 2014-09-29 01:26:24发表于 bingoogolapple/bingoogolapple.github.io Android

ListView

  • Adapter 适配器模式
    • 保证数据和 ListView 的分离,ListView 相当于 MVC 中的 V,Adapter 相当于 MVC 中的 C
    • getCount、getView
  • RecycleBin 机制
    • 复用 item,保障了 ListView 中存储很多数据时不会导致 OOM
  • ListView 优化
    • 复用 convertView
    • 使用 ViewHolder,将其作为 convertView 的 tag,避免多次 findViewById(二叉树遍历)
    • 数据源中有多种数据类型时使用 getViewTypeCount、getItemViewType
    • getView 方法中少做耗时操作,保证 ListView 的滑动流畅性
    • 监听 ListView 滑动事件,停止滑动时才加载图片
    • 异步加载图片,三级缓存
    • 避免半透明,半透明绘制需要大量乘法计算。实在要弄半透明的话可以在滑动的时候把半透明设置成不透明,滑动完再重新设置成半透明