小言_互联网的博客

一个34岁出来面试还被拒绝的Android程序员有多惨?

290人阅读  评论(0)

我强烈建议大家定期去参加一下外面的面试,尤其是BAT大厂的面试,不要一直闷在公司里,不然你很容易被这个世界遗弃。

前言

昨天,我们小组长奉命去面了一个34岁的Android程序员。

去了大概半个多小时吧,回来后,他的脸色就变得很凝重。因为刚好坐在他的旁边,我就多嘴问了句“怎么了”,组长叹了一口气,打开了话匣子。

一位34的应聘者

“我去面了一个34岁的Android开发……”

这个我们早知道了,摸鱼闲的,但我还是表示出十分的耐心:“然后呢?”

“卧槽!34岁了哎!”前排工位上的一个同事探过头来,一脸听戏的表情,语气满满的不可置信。

“尼玛,这么大的年纪了还出来面试……”后排工位上的同事也过来凑热闹。

小组长看了一圈围过来的人,突然暴怒:“艹!我也34,有意见?!!”

周围瞬间就安静下来作鸟兽散了,好像刚刚根本就没人提过“34岁大龄”这几个关键字。

我追问了一句:“那人技术咋样?过了没?”

小组长一脸复杂:“问啥啥不会……问个底层都答不上来……”

“你问了些啥?”

“就Handler和Binder那些啊。”

面试过程

问:先做下自我介绍吧。

应聘者:我是**,本科学历,以前在阿里做Android开发,带过十人的小团队……

……

小组长一边看简历一边听,得到大致信息:大厂出身,“高龄”被裁,带过团队,做过大项目,能力不错,因就业大环境一般,现在选择降薪求职。

问:我看你简历里面这个项目用到了广播,说说广播底层的设计原理吧。

应聘者:哦,不是Binder吗?

问:那为什么要用Binder呢?说说Binder的原理?或者简单说一下Binder的优势是什么也行。

应聘者:我当时做的那个项目……(顾左右而言他)

小组长开始怀疑这人到底行不行,决定换个问题:那你知道Handler吗?说说为什么建议子线程不更新UI吧。

应聘者直接懵圈了,最后结结巴巴地回了一句:这……不是会用就行了吗?

小组长也很懵,没有想到做过大项目有过大厂经验的人一问三不知。

问:同步屏障和异步消息的实现和使用场景知道吗?

……

不到半小时,小组长就告诉他“回家等消息”了。

虽然很同情他的年龄和遭遇,但是规矩不能坏。

Android面试躲不过Handler和Binder

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

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

  • 系统中的各个进程键的通信
  • Android系统启动过程
  • AMS、PMS的原理
  • 四大组件的原理(比如Activity的启动)
  • 插件化原理
  • 系统服务的Client端和Server端的通信原理(比如MediaPlayer和MeidaPlayerService)

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

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

如何进行高效复习呢?

那些底层知识都很枯燥,每次学完就忘,一合上书就忘得差不多了,不知道要怎样学才好了。

其实造成这样的现象最主要的原因是没有掌握系统的学习方法,也没有系统的资料辅助理解和学习

知识点就是那些,基本上,翻来覆去就是那些换汤不换药的问法。

但是现在大家上班要写业务代码,下班又是家庭琐碎,要想自己静下心来好好学习根本不可能,仅仅只是有用信息的筛选就足够麻烦。

鉴于“金三银四”已经过半,为了让大家快速掌握Framework的这些底层原理,这里给大家免费分享一份 452页的《Android Framework精编内核解析》。

需要的朋友可以直接【点击此处】,管理会发给你。

这份资料通过对最近两年这些大厂面经的收集和分析,把面试中常问的Handler和Binder以及相关的知识点整理成了一份有针对性的PDF。

手把手,保姆式教学,教你透彻理解这两个知识点,吊打面试官。

Framework精编内核解析

目录总览

第一章:深入解析Binder

Binder机制作为进程间通信的一种手段,基本上贯穿了andorid框架层的全部。所以首先必须要搞懂的Android Binder的基本通信机制。

本章知识点

  • Binder 系列—开篇

  • Binder Driver 初探
    Binder 驱动概述
    Binder 核心方法

  • Binder Driver 再探
    Binder 通信简述
    Binder 通信协议
    场景总结
    Binder 内存机制
    ……

  • Binder 启动 ServiceManager
    启动过程
    核心工作
    ……

  • 获取 ServiceManager
    获取 ProcessState 对象
    获取 BpBinder 对象
    获取 BpServiceManager
    ……

  • 注册服务(addService)
    ProcessState
    服务注册
    Binder Driver
    ServiceManager
    ……

  • 获取服务(getService)

  • Framework 层分析
    Binder 架构
    Binder 类图
    Binder 类分层
    初始化
    注册服务
    获取服务

  • 如何使用 Binder

  • 如何使用 AIDL

  • Binder 总结

  • Binder 面试题全解析

第二章:深入解析Handler

相信大家都有这样的感受:网上分析 Handler 机制原理的文章那么多, 为啥还要画蛇添足整理这份笔记呢?不是说前人们写的文章不好,我就是觉得他们写的不细, 有些点不讲清楚,逻辑很难通顺的,每次我学个什么东西时遇到这种情况都贼难受。

本章先宏观理论分析与 Message 源码分析,再到MessageQueue 的源码分析,Looper 的源码分析,handler 的源码分析,Handler 机制实现原理总结。最后还整理Handler 所有面试题大全解析。

Handler这章内容很长,但思路是循序渐进的,如果你能坚持读完我相信肯定不会让你失望。

第三章:Dalvik VM 进程系统

Andorid系统启动、init 进程、Zygote、SystemServer启动流程、 应用程序的创建使用,Activity的创建、销毁 Handler和Looper。

第四章 深入解析 WMS

窗口管理框架 系统动画框架 View的工作原理。

第五块 PackagerManagerService

包管理服务。资源管理相关类


由于篇幅原因,这份纯手打笔记已经被整理成了PDF文档,有需要的朋友可以点击下方找我领取!(备注“CSDN”粉丝才会通过哦)

可以直接【点击此处(937659705)】,管理会发给你。


转载:https://blog.csdn.net/weixin_49559515/article/details/115616549
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场