肝完了,我的Android Framework学习之路!

前两天,我跟一个面试官聊天,发现一个普遍现象,不少候选人,对Framework的认知,还处在比较基础的阶段,以为会写几个UI、业务代码就足够了,那些工作中经常遇到的复杂场景问题和性能问题,却支支吾吾答不上来,比如常说的 Handler,MessageQueue,Looper。看源码你就可以更好的理解那些概念:

  • ThreadLocal 做什么的?
  • Thread 和 Handler 的关系
  • 为什么不能在子线程更新 UI?
  • idleHandler 什么时候运行?
  • 主线程为什么循环却不会卡死?
  • ContentProvider、Broadcast、Service 是怎么利用 Message 监控 ANR 的?

再比如说 Android 的卡顿掉帧问题,很多文章都说卡顿是由于主线程耗时造成的,这其实只是一部分,其他的比如:

  • RenderThread 耗时也会导致卡顿
  • Binder 通信耗时也会导致卡顿
  • 60 fps 下没问题的 app 90fps或者 120fps 下也可能会卡顿
  • 有时候低内存下你主线程读个文件可能都会导致卡顿

作为过来人,发现很多学习者和实践者都在 Android Framework上面临着很多的困扰,比如:

  • 工作场景中遇到难题,往往只能靠盲猜和感觉,用临时性的补救措施去掩盖,看似解决了问题,但下次同样的问题又会发作,原因则是缺乏方法论、思路的指引以及工具支持&#x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值