ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

耗时两个礼拜,8000字安卓面试长文,真香

2021-06-10 12:53:58  阅读:208  来源: 互联网

标签:知识点 专业技能 学习 面试 源码 字安卓 长文 Android 8000


前言

博主14年毕业后从事Android移动应用开发,至今已是第六年了。在深圳摸爬滚打了好几年,也都是在小厂的圈子里跳来跳去。在我拿到这份新offer钱,15K是我拿过的最高工资。已经有快一年没有涨过工资了。疫情在家隔离了两个多月,开始系统复习、学习。梅花香自苦寒来。终于是在五一前后获得了上市公司的offer,虽不是什么一流大厂,但对于我来说,从15K的薪资涨到将近30K,已经非常满足了。下面分享一下我的复习、学习指南,以及一些心得体会吧。

简历上表达出专业技能

1. 方便 HR 查看技能匹配度

任何面试岗位都有要求,部分 HR 也会关注简历与发布岗位的匹配度的。

这里也有个小技巧:你可以灵活的匹配这个岗位的要求(但不要把不会的写上去)。

2. 面试问题的主要来源

面试官,主要通过交流、提问,来确定你的技术深度、广度,以及对该岗位的匹配程度。

那么,提问问题哪来呢?

当然是从你的简历内容中来。

所以你简历中要明确表现出专业技能的掌握情况:

例如这样:

专业技能

  • 熟悉Android热修复、插件化、dex,arsc等相关技术
  • 熟悉Android 常规的事件分发、自定义控件、动效等相关
  • 熟悉面向对象,在意封装、继承,和接口设计
  • 熟悉Android性能优化常规手段,有一定的实战经历
  • 熟悉Android 四大组件相关framework代码
  • 熟悉编写gradle plugin,有一定的实战经历
  • 熟悉Https在Android上的适配、以及应用防破解相关知识
  • 了解NDK开发,有过一点JNI开发经验

如果你项目比较出彩,也可以将专业技能拆分到项目介绍中去。

这样你可能会遇到一个很 nice 的面试过程:

A:看你做过XXX,说说怎么实践的。
B:我在项目中这么实践的,而且遇到过以下几个问题,是这么解决的。
A:我也遇到过,我是这样解决的,不过感觉你的方案好像也不错。
AB: 开心的深入交流下去。

但是,如果你没有写专业技能。

那么遇到好点的面试官,可能会跟你交流项目,从你的陈述中去确定你用到哪些技术才能进行发问。

当然,很多时候面试还挺紧张,一问一答,项目介绍也很简单就过去了。

面试官就很郁闷了,问啥呢?

那只能问他比较熟悉的东西了,可能面试官主要是做插件化相关的,而你主要是做组件化相关的,这种情况就可以能造成你俩不在一个频道了,非常吃亏。

很可能面试流程就变成了:

A:你有没有做过 XXX。
B:没做过。
A:那你有没有做过 XXX。
B:没做过。
A:(内心)这B到底做了哪些事…
B:(内心)问的什么屌问题…

当然,千万不要写自己没有深入了解过的技能,凡是你列出来的,会默认你对此有掌握有一定的深度,而不是被提问时,回答:

  • 这个我就用了一下…
  • 这是我同事接进来的…
  • 源码我还没来得及看…

对于第三库原理回答要有针对性

对于回答问题,在回答出问题的同时,尽可能关联到自己所经历的具体的项目场景

下面我说一个真实的体验,关于第三方库原理,基本上面试都会被问到。

比如问你图片加载框架 freso 的原理:

有的同学回答是这样的:

“首先根据 url,看看有没有缓存,有缓存从缓存中取,没有 build 一个 request,放到线程池执行。”

乍一听好像也没错,但是,任何一个完备的图片加载框架不都有这个流程么。

所以,问你一个开源库,除了回答基本原理流程,你心里要明确知道这个库的核心架构与特点,设计的比较好的地方,可以扩展的地方。

如果项目中还针对做过优化、监控等就更好了。

比如刚才问到的 fresco:

  • 你可以说说他的整体设计架构;
  • 你可以说说他的图片内存管理机制,在不同的版本手机上,然后深入下去;
  • 你可以说说他的Producer/Consumer 机制,以及如何利用这个机制去做扩展,项目中的定制;
  • 你可以说说根据自己业务情况做了哪些优化;
  • 甚至说一些它的缺点;

所以,对于第三库的原理,希望你能掌握:

1.基本原理流程;
2.整体的架构设计;
3.做的比较好的地方,以及这些地方设计与原理;
4.结合项目的定制、优化、扩展;

其实这个建议,也能反推出另一个问题:

如何学习开源项目源码?

很多同学学习一个开源库源码,花费了非常大的力气去梳理代码执行流程,然后终于衔接起来,长舒一口气就结束了,那么就有点可惜了。

根据上面建议的回答可以看出来,梳理清楚执行流程只是第一件事。

你要去深入发现:

1.核心的架构设计是什么样子的?
2.和其他类似开源库相比有什么优势?
3.这些优势是如何做到的?
4.哪些部分可以定制,方便我们日后进行扩展?

最后,虽然有很多优秀的简历模板,各种面试技巧,但是千万不要舍本求末,始终要牢记个人履历才是关键,希望大家随着工作年限的增长,履历也越来越丰富

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以加一下下面的技术群来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

文末

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

最后想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
以上进阶BATJ大厂学习资料可以免费分享给大家,需要完整版的朋友,点这里可以看到全部内容

进阶学习视频

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-S6kyMQSk-1618322120543)]

标签:知识点,专业技能,学习,面试,源码,字安卓,长文,Android,8000
来源: https://blog.51cto.com/u_14932157/2889294

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有