2019最全Android面试题总结(持续更新中。。。)

1. Android

1.1 View相关

1.1.1 基础
  • Q:SurfaceView和View的区别?
  • Q:自定义View/ViewGroup需要注意什么?
1.1.2 系统View组件
  • ListView(详解见Android面试—ListView原理及fling分析)

    • Q:ListView为什么可以加载1000个条目不崩?
    • Q:什么是RecycleBin,它是怎么和ListView回收和复用的?
    • Q:你知道notifyDataSetChanged方法干了啥吗?调用之后为啥ListView就刷新了?
    • Q:你知道ListView的跟手滑动和fling是怎么实现的吗?
  • ScrollView

    • Q:ScrollView的测量过程,滑动过程以及fling的实现?
  • FrameLayout

    • Q:FrameLayout的布局过程?
  • LinearLayout

    • Q:LinearLayout的布局过程?
  • RecyclerView

  • CoordinatorLayout(协同布局)

  • ConstraintLayout(约束布局)

1.1.3 测量
  • Q:View的三次measure,两次layout和一次draw
  • Q:onMeasure里面的MeasureSpec哪里来的?它的数据结构怎么样?怎么用?
  • Q:LinearLayout和RelativeLayout选择哪个更好?为什么RelativeLayout需要测量2次
  • Q:requestLayout()的原理,什么是责任链模式?
1.1.4 绘制相关
  • Q:什么是 SurfaceFlinger FrameBuffer Surface
  • Q:为什么我们说主线程的操作不要操作16ms?
  • Q:什么是VSYNC(垂直同步)、格栅化?
  • Q:什么是掉帧jank,怎么处理?(双缓冲和三缓存机制)
  • Q:invalidate()和postInvalidate()的区别?
1.1.5 事件传递
  • Q:谈一谈View的事件分发机制?
  • Q:MotionEvent是什么?包含几种事件?什么条件下会产生?
  • Q:如何解决View的滑动冲突(方向相同、方向不同)?
  • Q:onTouch()、onTouchEvent()和onClick()关系?
  • Q: InputManageService的事件是怎么传递到Activity的?
  • Q:主线程和InputManageService的通信建立?(WindowStateWindowSession)
  • Q:InputReader、InputDispatcher线程是干嘛的?运行在哪个进程?
1.1.6 滑动
  • Q:Scroller中最重要的两个方法是什么?主要目的是?
  • Q:scrollTo()和scrollBy()的区别?
  • Q:fling方法的实现?

2. 图片相关

  • Q:什么是LRU,什么是LinkedHashMshap?
  • Q:本地、内存2级缓存怎么设计?
  • Q:怎么加载一张大图又防止OOM?
  • Q:了解哪些Drawable?适用场景?

3 系统组件

3.1 Activity
  • Q:Activity的启动过程?
  • Q:说下Activity的生命周期?
  • Q:onStart()和onResume()/onPause()和onStop()的区别?
  • Q:Activity A启动另一个Activity B会回调哪些方法?如果Activity B是完全透明呢?如果启动的是一个Dialog呢
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值