【Android高开面试全攻略】01 开篇!如何准备面试?

本文是Android高开面试全攻略的开篇,分享如何准备面试。作者强调深度学习如系统源码、并发和插件化,同时注重知识广度的提升,包括组件、性能优化等方面。建议通过输出笔记或文章来巩固知识,并推荐了算法准备方法。面试准备期建议为两周,期间制定计划并持续学习。
摘要由CSDN通过智能技术生成

开篇!如何准备面试?

前言

在笔者面试这一个月,看了不少文章,也关注了不少付费课,但真正有深度,适合4年及以上Android高工的内容少之又少

在面试准备阶段,笔者准备了两周的时间,结合相关资料及源码,完成了一系列的深度学习和输出

  • 在系统源码层面,包括系统启动,应用启动,四大组件相关,插件化等;

  • 在并发方面,完成了ConcurrentHashmapCopyOnWriteArrayList, CountDownLatch等相关源码剖析,及线程协作相关内容输出

  • 在插件化方面,完成了插件化整体方案的总结和输出,及VirtualApk核心源码分析;

    具体内容请查看 http://yilin.fun

面试准备技巧

如果说面试准备有什么技巧的话,笔者的经验是,深度为主,广度为辅

如何提升知识的深度?

针对高开面试来讲,哪怕是最简单的问题(比如老生常谈的Handler)也会有超乎寻常的深度问法,而所谓的深度, 即对系统源码的理解程度。因此,对源码的研读是十分重要的

我的学习方法论是,输入 + 输出,如果没有输出,第一是会忘,第二是没有办法内化为自己的知识。可能大家都会去看技术文章,但看过两天后,你还会对那些内容印象深刻吗?大多数情况是不会

因此,不论是自己整理笔记也好,还是写文章分享也罢,输出是很必要的,跟别人交流的过程,也是不断内化和成长的过程

在高工面试中,一般会着重考察面试者对技术问题里理解的深度,我的建议是,在几个点上进行深度学习,比如系统源码,插件化等等

在编写简历时,可以将这些内容放在显眼的位置,暗示面试官这是我的强项,一定记得问我!

如何提升知识的广度?

就广度上来讲,其实主要看平时的积累,但是面试的复习也必不可少

内容上来说,包括性能优化多线程并发, JVM虚拟机相关算法问题设计模式网络相关知识,等等;

拿性能优化来讲,从整体方案上来说,有一些比较成熟的开源库可以参考,比如腾讯的Matrix, 滴滴的Booster

针对具体的优化细节,就涉及到相关的开源库及相关原理,可参考的三方库有:

  • LeakCanary ,内存泄漏监测
  • BlockCanary,UI卡顿监测
  • Glide,对Bitmap内存的优化及防止内存泄漏
  • Jetpack , 官方支持库 ,避免内存泄漏
  • AspectJ , AOP切面编程

不同的岗位方向关注的侧重点也会有些不同,我们在后面的分享中也会涉及到

在大厂的面试中,也有一些面试官(尤其是一面的时候)会拿一些常见的面试题来进行考察,比如UI绘制 , 自定义view触摸事件分发 等高频考点也应该着重复习和掌握

因此,如果没有面试准备方向,找一份面试题集锦来进行热身复习也可以

笔者在面试期间做了一张复习表格,在此也贴出来供大家参考

准备项详细内容是否完成
更新简历简历项目及技术点准备
常见面试题目刷题Java部分
Android部分
系统源码专题学习系统启动流程
应用启动流程
Activity启动流程
Service启动/绑定流程
广播收发流程
屏幕刷新机制
hanlder消息机制
binder流程及原理
性能优化专题内存优化bitmap加载流程
卡顿优化
UI卡顿及监测工具
线程安全相关
Jvm相关知识
算法练习高频算法练习排序算法:归排,快排 ✅
插件化类加载四大组件插件化 ✅
资源加载资源插件化 ✅

如何准备算法面试?

什么是算法面试?

算法是大厂考察的非常重要的一项

某些公司甚至会将是否正确的写出算法题目作为面试通过的最低门槛(也就是算法挂掉意味着面试挂掉,某手属于此类)

比较灵活一些的公司会对算法思想及代码细节进行考察,比如边界判断,循环终止或递归终止条件的处理,对指针/变量的维护等(某条属于此类)

因此,我们准备算法面试的目的,是要向面试官展示自己的代码编写能力和逻辑思考能力,并不一定要刷完leetcode的所有题目

如何准备算法面试?

在准备算法面试中,我基本上参考了两个付费内容,bobo老师的算法课(慕课网)及谭超老师的算法训练营(极客时间)

bobo老师强调对算法思想的理解,以及跟面试官的沟通,在面试中展示自己的算法思维;

谭超老师强调刻意练习(这也是混沌大学所强调的),即不断的重复练习从而形成肌肉记忆;

在真正准备算法的过程中,这两种方式我也是结合来使用的:

  • 针对高频算法题目进行刻意练习,培养自己写算法的手感(高频算法题链接https://www.nowcoder.com/activity/oj);
  • 针对经典算法思想和解法(比如双指针,快慢指针,哨兵节点,链表穿针引线,深度优先,广度优先,递归算法等)进行整理和理解

以笔者的经验来看,刷3遍高频算法面试题足以应对一众互联网大厂,因此算法虽然很重要,但要适度,我们需要在有限的时间内获取最大的面试收益

面试准备期多久比较合适?

先说结论,两周比较合适

按照笔者给自己制定的计划,是要在两周之内完成面试准备加简历编写,到第三周的时候开始投简历面试

另外,制定deadLine是非常必要的,尤其针对裸辞的同学(比如我),在准备面试的过程中,尤其是分析源码的过程中,会发现其中涉及大量细节和自己曾经不了解的知识,因此这也是输出的必要性,写成文章或者笔记,初步检验自己到底掌握到的什么程度

笔者准备的所有内容,基本上都写成了文章,量化的输出内容也可以更好的检验是否完成了相关准备工作

如果超过了两周,还没有完成,我们也要进入面试阶段了,在投简历和面试阶段我们还有时间可以再继续学习

跟面试官交流的过程,就只是把文字输出转化成语言表达的过程了,哪里有不足再继续准备和学习

最后

面试准备过程中,最好能找到志同道合的小伙伴一起交流,如果你也在准备面试,不妨加入技术群一起交流吧!加 wx: YahahaLtd,备注Interview_Android 邀请你加入专栏交流群

如果本文对你有帮助,欢迎分享给正在准备面试的朋友

我是释然,我们下期文章再见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

释然小师弟

觉得不错?不妨请我喝杯咖啡?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值