2013一位 Android 中级程序员的跳槽面经,成功拿下大厂 offer

前言

在这里插入图片描述

在这个竞争激烈的行业中,只有优秀的 Android 工程师才能够生存,需要我们能够为客户提供的最佳技术和资源,需要有优秀的开发工具,保证以最佳质量以及高效时间来构建。

在同一家公司里呆久了,容易不知道外面市场的行情变化,所以通常建议大家定期去了解一下外面的技术栈行情,即使对于大厂的员工也是如此。

当时群里就有一名Android 中级开发因为一些原因去年离职了,今年找工作,结果没有什么面试机会。

就让我帮忙分析,一般而言没有面试机会基本上就是简历有问题需要修饰

我就直接让他发一份简历过来,看了一眼就明白了。这个兄弟就是在一家公司呆太久了,他这个简历估计还没有现在应届生的看着舒服。

当时就直接和他说了原因,以及一些现在面试的技巧。

前面文章有写简历的修改和面试前的准备

不到半月,就和我说他现在入职了一家大公司,也说了说他面试就经历,我就顺便分享出来给大家涨涨经验。

在这里插入图片描述

面试过程

自我介绍

自我介绍看起来很简单,但是需要你在2分钟内把自己的程序员这几年的项目经历清晰的讲出来。听起来不难,确实对于现在一直在面试的人来说很简单,可是如果你很久没有面试了就会结结巴巴,这样一来给人的第一印象就不好。

这位兄弟自己找的朋友进行模拟面试的时候,自我介绍就栽了。不过多说几遍后也是不成问题。

笔试,刷过题的就不是问题。

在这里插入图片描述

项目经历

难点基本上是这一关,而且不同以往。如今的面试官都喜欢项目和八股文结合问。

这个项目我看你用到了啥啥之类的,你是怎么运用的,问完就话锋一转问底层。

Android面试躲不过Handler和Binder

在项目中,各模块代码运行在不同的进程(线程)中,想要真正理解安卓的这几大服务,势必要掌握安卓的通信机制,而安卓最主要的两个通信机制就是Handler和Binder。

Binder机制在Android中的地位举足轻重,我们需要掌握的很多原理都和Binder有关:

系统中的各个进程键的通信

Android系统启动过程

AMS、PMS的原理

四大组件的原理(比如Activity的启动)

插件化原理

系统服务的Client端和Server端的通信原理(比如MediaPlayer和MeidaPlayerService)

可以说Binder机制是掌握系统底层原理的基石。Handler的地位也是同样的原理。

现在的业界有一句话是这样说的:技术好的未必弄得懂底层,但是底层基础好的学起技术来很快。所以,大公司在挑选公司人才的时候,更加看重的是应聘者对底层原理的掌握和理解。

项目经验这方面他自己之前做过准备 基本上问题都能回答,技术面也就没有什么难度。

在这里插入图片描述

HR面试

有些人可能会认为这一关面试无关紧要,一般来说技术面试过了就基本上稳了。

但是如果你面试的是大厂,那你就要小心了。这些负责招人的有可能就是你们的技术老大或者部门负责人。

他(她)是有一票否则权的,而且也会问你一些技术问题。

没有拿到offer之前都应该持正态度。

面经虽然有参考性,但是最重要的还是你自身的技术水平如何,作为一个 Android 开发者,不仅要打好自身基础,更重要的是要建立起自己的知识体系, 你要知道知识是碎片化的,建立知识体系会让自己对技术的运用更加融会贯通,往“T 型”人才发展;

技术上的成长往往是会花费很多时间的,但是利用这些时间帮你技术上更上一层台阶进入大厂,岂不妙哉?

所以这里也就没有放面试题。

现在的知识点就是那些,基本上,翻来覆去就是那些换汤不换药的问法。但是现在大家上班要写业务代码,下班又是家庭琐碎,要想自己静下心来好好学习根本不可能,仅仅只是有用信息的筛选就足够麻烦。

不如掌握Framework的这些底层原理,这里分享一份Framework的学习资料!

扫码领取完整文档

《Android Framework 开发揭秘》

目录

imgimg

第一章 系统启动流程分析

​ ● 第一节 Android启动概览

​ ● 第二节 init.rc解析

​ ● 第三节 Zygote

​ ● 面试题

img

第二章 Binder解析

​ ● 第一节 宏观认识Binder

​ ● 第二节 binder的jni方法注册

​ ● 第三节 binder驱动

​ ● 第四节 数据结构

​ ● 第五节 启动service_manager

​ ● 第六节 获取service_manager

​ ● 第七节 addService流程

​ ● 第八节 Binder面试题全解析

img

第三章 Handler解析

​ ● 第一节 源码分析

​ ● 第二节 难点问题

​ ● 第三节 Handler常见面试题

img

第四章 AMS解析

​ ● 第一节 引言

​ ● 第二节 Android架构

​ ● 第三节 通信方式

​ ● 第四节 系统启动系列

​ ● 第五节 AMS

​ ● 第六节 AMS面试题解析

img

第五章 WMS解析

​ ● 第一节Activity与Window相关概念

​ ● 第二节 Android窗口管理服务WindowManagerService计算Activity窗口大

​ ● 第三节Android窗口管理服务WindowManagerService对窗口的组织方式分析

​ ● 第四节 Android窗口管理服务WindowManagerService对输入法窗口(Input

​ ● 第五节 Android窗口管理服务WindowManagerService对壁纸窗口(Wallpap

​ ● 第六节Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析

​ ● 第七节Android窗口管理服务WindowManagerService显示Activity组件的启

​ ● 第八节Android窗口管理服务WindowManagerService切换Activity窗口(A

​ ● 第九节 Android窗口管理服务WindowManagerService显示窗口动画的原理分析