神操作:我凭借“ Android 面试技能手册”,竟收割了21个Offer

前言

这篇文章主要是分享去年下半年的面试心得,现已就职于某一线大厂有半年之久了,近期有很多公司差不多已启动春招,也祝大家在2021 的“金三银四”中面试顺利,获得理想的offer!

之前找工作的那段时间感想颇多,总结一点面试经验和面试建议分享给大家。

面试经验

①、小米面试经验(第一个大厂offer)

因为我上一家公司的同事在我面试之前就已跳槽进小米,在他的内推帮助下我开启了我的疯狂收割offer之路。(一共是拿到了2个一线的offer,6个二线offer,还有其他小公司的offer)

小米一共有三轮技术面:

  • 一面,两个面试官(一个我们小组Android的leader,一个是另一个小组的资深架构师),上来先当着他们的面写了一个笔试题(都是很基础的题没啥难度,算法题也就是一个list的反转,但是小米比较注重手写代码的一些细节,所以要考虑好该判空的判空,还有防止越界啥的问题),然后就开始问,90%都在问Java基础(GC的机制,GC算法,内存相关的问的比较多,多线程线程安全问题是如何发生的,HashMap的原理)
  • 二面,主管(全程聊项目,没有问技术相关的了,然后介绍了一下这个部门的工作内容啊之类的。
  • 三面,部门领导了解情况后,就问了些 Android 源码、底层原理的一些问题,所幸全部都在我的知识范围内,在一个小时的面谈后就隐约有些邀请的意思了。

最后,听说HR要来跟我谈薪,我就基本确定已经OK了。最终,以还算满意的薪资收获了小米的offer!

②、字节跳动面试(第二个大厂offer)

一面
1:插件化。启动activity的hook方式。taskAffity。
2:okhttp支持HTTP2?http2的功能有哪些?tcp方面拥塞控制?tsl的握手和具体的非对称加密算法。非对称名称
3:handler的post(Runnable)如何实现的。callback,runnable,msg的执行优先级。阻塞是怎么实现的?为什么不会阻塞主线程?
5:求二叉树中两个节点之间的最大距离。
6:206含义,未修改资源是哪个,302含义,301含义
7:多进程通信问题。binder优势。aidl生成的java类细节。多进程遇到哪些问题?
8:动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM的原理
9:Application和Activity在Context的继承树上有何区别?二者使用上有何不同?
10:任意一颗二叉树,求最大节点距离

二面
1:设计一个日志系统。
2:内存泄露的分类。怎么查看内存泄露的问题
3:touch事件源码问题。
4:组件化的问题。module和app之间的区别。moduler通信是如何实现的。
5:native奔溃的日志采集,怎么处理?
6:注解实现一个提示功能:如果int的值大于了3需要提示。

三面
1:介绍下flutter的启动流程
2:介绍下flutter与weex的区别
3:组件化介绍一下
4:webview中与js通信的手段有哪些?
5:介绍下flutter_boost的原理

四面
1:适配器和装饰模式各自特点和使用场景
2:视频编解码是怎么做的
3:三色球排序

最后,以24K+16的薪资拿到了字节跳动的意向offer。

面试建议

首先作为一个资历不浅的 Android 开发,这几年我经历过不少面试也面试过不少人。 发现大多数面试者,虽然看起来工作努力,但他们表现出来的能力水平,却不足以通过面试,或拿到期望的薪资。

在我看来,造成这种情况的原因,主要有这么两方面:

  • 第一,“知其然不知其所以然”。做了几年技术,开发了一些业务应用,但没有思考过这些技术选择背后的逻辑。所以,我很难定位他们日后的成长潜力,也不会放心把有一定深度的任务交给他们。

  • 第二,知识碎片化,不成系统。事实上,当面试者无法完整、清晰地描述自己所开发的系统或使用的相关技术时,面试官就会怀疑他是否具备解决复杂问题、设计复杂系统的能力。

所以,如果你平时只知道埋头苦干,或过于死磕某个实现细节,没有抬头审视过这些技术,那么在准备面试时,很有必要好好梳理一下 Android 知识体系,这样才能拿下满意的 Offer。

这里,我把自己的面试时帮助很多的《Android面试技能手册》分享出来,希望能帮助大家梳理、建立起自己的Android知识系统。但是由于CSDN的推荐机制,不能展示全部的技术内容,需要的朋友可以在文末打包获取

《Android面试技能手册》PDF高清版知识点整理

①、Java知识点汇总

  • JVM
  • Object
  • static
  • final
  • String、StringBuffer. StringBuilder
  • 异常处理
  • 内部类
  • 多态
  • 抽象和接口
  • 集合框架
  • 反射
  • 单例线程
  • volatile
  • synchronized
  • Lock
  • 引用类型
  • 动态代理
  • 元注解

②、Android基础知识点汇总

  • Activity
  • Fragment
  • Service
  • BroadcastReceiver
  • ContentProvider
  • 数据存储
  • View
  • 进程
  • Parcelable接口
  • IPC
  • Window / WindowManager
  • Bitmap
  • 屏幕适配
  • Context
  • SharedPreferences
  • 消息机制
  • 线程异步
  • RecyclerView 优化
  • Webview

③、Android进阶扩展知识点汇总

  • ART
  • Hook
  • Proguard
  • 架构
  • Jetpack
  • NDK开发
  • 类加载器

④、Android性能优化知识点汇总

  • 启动优化
  • UI渲染优化
  • 崩溃优化
  • 内存优化
  • 卡顿优化
  • 存储优化
  • 网络优化
  • 耗电优化
  • 多线程并发优化
  • 安装包优化

⑤、Android 开源库源码分析知识点汇总

  • OKHttp源码分析
  • Retrofit源码分析
  • Glide源码分析
  • GreenDao源码分析
  • RxJava源码分析
  • LeakCanary源码分析
  • ButterKnife源码分析
  • Dagger 2源码分析
  • EventBus源码分析

⑥、Kotlin知识点汇总

  • 对象
  • 继承
  • 常量
  • 静态常量
  • 定义方法
  • 重载方法
  • 基本数据类型
  • 比较类型
  • 转换符
  • 字符串比较
  • 数组
  • 循环
  • 角标循环
  • 高级循环
  • 判断器
  • 构造函数
  • 类创建
  • 私有化set方法
  • 私有化get方法
  • 枚举
  • 接口
  • 匿名内部类
  • 内部类
  • 内部类访问外部类同名变量
  • 抽象类
  • 静态变量和方法
  • 可变参数
  • 泛型
  • 构造代码块
  • 静态代码块
  • 方法代码块
  • 可见修饰符
  • 无需findViewById
  • Lambda
  • 函数变量
  • 空安全
  • 方法支持添加默认参数
  • 类方法扩展
  • 运算符重载
  • 扩展函数
  • 协程

⑦、设计模式核心知识汇总

  • 设计模式分类
  • 面向对象六大原则
  • 工厂模式
  • 单例模式
  • 建造者模式
  • 原型模式
  • 适配器模式
  • 观察者模式
  • 代理模式
  • 责任链模式
  • 策略模式
  • 备忘录模式

⑧、Gradle知识汇总

  • 依赖项配置

⑨、C++知识点汇总

  • 头文件
  • 数据类型
  • typedef
  • 类型限定符
  • 定义常量
  • 存储类
  • 引用vs指针
  • struct Vs class
  • 成员函数
  • 析构函数
  • 拷贝构造函数
  • friend友元
  • inline 内联函數
  • 继承类型
  • 运算符重载
  • 动态内存
  • 命名空间
  • 预处理器
  • 信号
  • 线程
  • 强制类型转换
  • 智能指针
  • 内存空间

⑩、算法面试题知识汇总

  • 排序
  • 二叉树
  • 链表
  • 栈/队列
  • 二分
  • 哈希表
  • 堆/优先队列.
  • 二叉搜索树
  • 数组/双指针
  • 贪心
  • 字符串处理
  • 动态规划
  • 矩阵
  • 二进制/位运算
  • 其他

《Android面试技能手册》PDF高清版(部分截图)

总结

这份《Android面试技能手册》笔记,适应人群:

  • 第一,学习知识比较碎片化,没有合理的学习路线与进阶方向。
  • 第二,开发几年,不知道如何进阶更进一步,比较迷茫。
  • 第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。

最后,需要这份《Android面试技能手册》的朋友可以“扫描下方的二维码即可免费打包获取”(记得备注:CSDN),希望你们拿到后能够梳理出自己的技术知识盲区,拿到自己心仪的offer。

猜你喜欢

转载自blog.csdn.net/qq_39477770/article/details/114268104