前言

本人16年毕业于一家普通二本,考研裂开了且没有实习经验,只做过两个项目,每天就是不断地投简历、刷面经,感觉自己都要抑郁了,最后勉强进入了一家学校合作的互联网公司,后面陆陆续续也换了几家公司,毕业快5年了,每个月拿着9-10k地薪水还要被迫接受996,感觉未来没有希望。在去年的金九银十中看着自己的同学跳槽涨薪拿着月薪25k+的薪水,我决定做出改变,离开这里!

刚开始准备地时候其实并不轻松,感觉自己的技术层面落后太多,对于当前互联网企业的技术栈了解的太少,于是我开始在网上各种找资料,但是资料要不就是不全,要不就是乱七八糟的学起来特别费劲。还好有很多同学的帮助,其中一位成功上岸字节的同学(室友)给了我一份资料,这也是他能够成功上岸字节的秘诀!我拿着这份资料每天都在学习,不断地去提升自己的技术能力,历经三个多月最终成功上岸字节。 下面就是这份足足1296页的“Android高级开发面试题”,涵盖了BAT一线大厂高频出现的大部分面试题。

Handler相关知识

  • Handler Looper Message关系是什么?
  • Messagequeue 的数据结构是什么?为什么要用这个数据结构?
  • 如何在子线程中创建Handler?
  • Handler post方法原理?
  • Android消息机制的原理及源码解析
  • Handler 都没搞懂,拿什么去跳槽啊?
  • Android Handler消息机制(解惑篇)
  • Android消息机制
  • Handler 引起的内存泄露原因以及最佳解决方案
  • 为什么我们能在主线程直接使用Handler,而不需要创建Looper ?
  • 主线程的Looper 不允许退出
  • Handler 里藏着的Callback 能干什么?
  • 创建Message 实例的最佳方式
  • 子线程里弹Toast 的正确姿势3.7妙用Looper机制 ..........

Activity 相关

  • 启动模式以及使用场景?
  • onNewIntent()和 onConfigurationChanged()
  • onSaveInstanceState()和 onRestoreInstanceState()
  • Activity 到底是如何启动的
  • Activity 到底是如何启动的
  • zygote是什么?有什么作用?
  • SystemServer是什么?有什么作用?
  • 它与zygote的关系是什么?
  • ActivityManagerService是什么?什么时候初始化的?有什么作用?
  • Launcher是什么?什么时候启动的?
  • lnstrumentation是什么?和ActivityThread是什么关系?
  • 如何理解AMS和ActivityThread之间的Binder通信?
  • AMS接收到客户端的请求之后,会如何开启一个Activity? .........

Fragment、Service相关

  • Fragment生命周期和Activity对比
  • Fragment 之间如何进行通信
  • Fragment的startActivityForResult
  • Android Fragment完全解析,关于碎片你所需知道的一切
  • Fragment重叠,如何通信
  • Fragment回退栈管理
  • Fragment与Activity通信
  • Fragment重叠问题
  • Fragment与ActionBar和Menultem
  • 没有布局的Fragment—保存大量数据
  • DialogFragment的使用
  • Fragment的startActivityForResult
  • FragmentPagerAdapter与FragmentStatePagerAdapter的区
  • Fragmenti间的数据传递
  • Activity与Fragment生命周期探讨
  • Activity注意事项
  • Fragment生命周期探讨Fragment注意事项
  • Service进程保活
  • Service的运行线程(生命周期方法全部在主线程)
  • Service启动方式以及如何停止
  • ServiceConnection里面的回调方法运行在哪个线程?
  • Android进程保活的一般套路
  • 关于Android进程保活,你所知道的一切
  • 保活手段;黑色保活;白色保活;灰色保活;唠叨的分割线
  • 进程回收机制 ..........

Android布局优化之ViewStub.include.merge

  • 什么情况下使用ViewStub.include.merge?
  • 他们的原理是什么?
  • 布局优化神器include . merge. ViewStub标签详解
  • Android布局优化之ViewStub、include.merge使用与源码分析 BroadcastReceiver相关
  • 注册方式,优先级
  • 广播类型,区别
  • 广播的使用场景,原理
  • Android 广播Broadcast的两种注册方式以及比较
  • Android四大组件: BroadcastReceiver全面解析定义、作用、应用场景、实现原理、使用流程
  • 自定义广播接收者BroadcastReceiver
  • 广播接收器注册
  • 静态注册5.2.2动态注册
  • 两种注册方式的区别
  • 广播发送者向AMS发送广播
  • 广播的发送、类型 AsyncTask 相关
  • AsyncTask 是串行还是并行执行?
  • AsyncTask 的基本用法
  • 分析 AsyncTask 的源码
  • 使用 AsyncTask 的规则 ..........

Android 事件分发机制

Android View 绘制流程

Android Window、Activity、 DecorView 以及 ViewRoot

Android 的核心 Binder 多进 程 AIDL

Android 高级必备 : AMS,WMS,PMS

Android ANR

Android内存相关

Android屏幕适配

Android缓存机制

Android 性能优化

Android MVC.MVP、MVVM

Android Gradle知识

RxJava

OKHTTP和Retrofit

图片加载库:Glide

最后

我想,可能还有很多人在今年的金三银四春招中保持着观望的形势,害怕自己的能力不够,或者是安于现状,觉得目前拿着几千的月薪觉得能够接受,那么你就要注意了,这是非常危险的!

我们身为技术人员,最怕的就是安于现状,一直在原地踏步,那么你可能在30岁就会迎来自己的职业危机,因为你工作这么久提升的只有自己的年龄,技术还是万年不变!

由于整个笔记比较全面,内容相当的多 ,这里仅展示面经中的部分资料,如有需要获取文中提到的 “Android高级开发面试题” 的朋友可以**【点击这里直达免费获取方式】**

如果你想在未来能够自我突破,圆梦大厂,那或许以上这份 1296页的“Android高级开发面试题” 你需要阅读阅读,应该能够对你的职业发展有所帮助。