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

一个34岁的应聘者

来看一个关于面试的故事分享。

某Android部门小组长奉命去面了一个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的这些底层原理,这里邀请了腾讯课堂的Alvin老师Leo老师给大家带来了一个为期两天,共四个小时的精品小课,本公众号粉丝特享优惠价格:0.1元!

附赠福利

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

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

>>>>452页《Framework精编内核解析》

相信大家在看完这份大佬精心整理的《Android Framework精编内核解析》后,会对Android源码知识有着更深入、更系统的理解。

>>>> 2109页《Android金三银四面试宝典》

(包含腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中高级安卓技术点。希望可以助你面试更加顺利!)

课程安排

授课老师:

Alvin老师

前三星高级研发经理,国内首批Android底层技术导航人

专精领域:精通Android FrameWork源码及性能优化;三星手机Rom核心架构设计,专注NDK底层设计与开发。

Leo老师

8年Android开发项目经验,腾讯战略投资创业公司技术总监

专精领域:Android系统架构,Android Framework底层源码,性能优化,flutter混合开发等技术。

适合人群:

1. 具备移动开发基础;

2. 具备一定自学能力;

3. 立志成为高级工程师、架构师的安卓开发者

课程日期:

4.13—Alvin老师(Handler面试必问知识要点讲解)

1、线程切换的原理(阿里)

2、looper什么时候进入循环(汇丰)

3、handler内存泄露,最终是谁持有的activity?(小米)

4、handlethread 原理(顺丰)

5、handler的post(Runnable)如何实现的。callback,runnable,msg的执行优先级。(字节,手百)

6、handler没有消息处理是阻塞的还是非阻塞的?为什么不会有ANR产生?(腾讯)

7、Handler如何处理发送延迟消息(腾讯)

8、你听过异步消息么?它实现原理是什么?(微信)

4.14—Leo老师(Binder机制及其常见面试题讲解)

1、Android为什么要采用Binder作为IPC机制?

2、Binder是如何做到一次拷贝的?

3、MMAP的原理?

4、Binder机制是如何跨进程的?

5、AIDL生成的Java类细节是怎样的?

6、四大组件底层的通信机制是怎样的?

7、为什么Intent不能传递大数据?

报名全部获取

文中资料免费赠给参加训练营的学员

加薇薇老师微信报名训练营

立即领取

(如遇扫码频繁受限,点击左下角的阅读原文)

推荐阅读:

我的新书,《第一行代码 第3版》已出版!

Jetpack新成员,Paging3从吐槽到真香

Android 11新特性,Scoped Storage又有了新花样

大厂资历程序员求职以为很容易,没想到栽在这里…相关推荐

  1. GitHub超4.4k星:程序员求职,一个算法模板就够了

    来源:新智元 本文约1800字,建议阅读5分钟 本文为你介绍程序员求职中科学的.高效的刷题方式. [ 导读 ] 近日,GitHub上一个名为"算法模板"的项目引发热议,获得了超4. ...

  2. 低学历、文科出身,我如何从月薪不到 3000 逆袭为大厂高薪程序员?

    作者 | 阿文 责编 | 伍杏玲 封图|视觉中国 出品 | 程序人生(ID:coder_life) 从 2011 年毕业至今,工作将近 10 年了,从初入职场至今,我也算互联网老兵了,今天我给大家分享 ...

  3. 程序员求职简历,项目经验怎么写?免费修改简历并提供简历模板

    我是一个典型的互联网公司程序员,在BAT有超过10年的工作经验,面试超过200个程序员.也见过无数的程序员简历,包括很多优秀的程序员简历,看了可以让人眼前一亮,优美简洁的简历模板,项目经验工作重点突出 ...

  4. 初级开发:我还在Android路上披荆斩棘,转眼就被大厂的程序员凡尔赛了

    前言 现在对于大多数应届生来说,现在正是紧张的时候,不仅需要忙着毕业论文和答辩的事情,还需要忙碌校招面试的事情.对于IT专业的学生来说,现在就要面对各大IT企业面试官的考验,很多人会成为从0开始的An ...

  5. 初级开发:我还在Android路上披荆斩棘,转眼就被大厂的程序员凡尔赛了(1)

    我相信每个应届生都想能得到一个在大厂实习的机会,毕竟这会让之后的简历更加漂亮,也对于之后找工作会方便许多,进入大厂工作意味着平台好,薪资高.晋升空间大,学到的东西多,于是成为人人都想进的理想地方,那在 ...

  6. c语言sin程序怎么写_程序员求职简历,项目经验怎么写?免费修改简历并提供简历模板...

    我是一个典型的互联网公司程序员,在BAT有超过10年的工作经验,面试超过200个程序员.也见过无数的程序员简历,包括很多优秀的程序员简历,看了可以让人眼前一亮,优美简洁的简历模板,项目经验工作重点突出 ...

  7. 在制造业大厂当程序员是什么感受?

    大家好,我是DD. 昨天给大家分享了一篇<怎么选?阿里P7 or 副处级干部?>,还挺受欢迎的,后面计划持续多分享一些不同领域程序员的工作感受,给大家参考.今天接下来要分享的是一位在制造业 ...

  8. 程序员的未来真的一片阴霾吗,大厂女程序员从未摆脱焦虑

    简介:熬夜.秃头.996.多金,一样都不真 ​程序员向来是热搜体质,熬夜.秃头.996.多金.而女程序员更是其中的稀缺物种,即便是阿里巴巴这样的大厂,女程序员的比例也不过在10%上下.而在阿里云建站部 ...

  9. 个人经历:谈一谈的程序员求职途径

    个人经历:谈一谈的程序员求职途径 互联网招聘网站的确是五花八门,种类繁多,在投递简历,接听面试电话的过程中,要擦亮眼睛,慎重选择和沟通.我是去年跳槽的,下面就来说说我投递简历的过程,希望对大家有所帮助 ...

最新文章

  1. 微生物组-宏基因组分析第8期(报名直播课免费参加线下2020.7)
  2. GlobalSign 荣登网络信任联盟 2013 年网络信任荣誉榜
  3. JSP(1)—基础知识
  4. 《编译原理》实验预习报告——递归下降语法分析器的构建
  5. 如何获取组SPGroup的描述Description信息
  6. vert.x_选择Vert.x的3个理由
  7. 第一章 概率论的基本概念
  8. emacs php 配置文件,如何配置emacs进行正确的PHP开发?
  9. 部署在IIS服务器的asp.net 网站,禁止访问指定类型文件
  10. mysql的动态建表_mysql数据库动态创建表的实例分享
  11. 模糊数学与matlab
  12. 武汉理工计算机保研去华科,武汉理工大学2021届保研率14.9%,主要保研本校、武大、华科...
  13. POJ 有关动态规划的题目
  14. PHP独立ip统计,通过nginx日志统计独立ip的个数 新乡独立ip 独立ipvps 独立公网i
  15. 微信域名防封跳转系统的原理,微信域名防封的注意点
  16. mini2440 linux驱动程序,基于linux的mini2440 led驱动及应用程序
  17. 拼多多TOKEN独享方法
  18. 滤镜艺术---新海诚(你的名字)滤镜特效的实现解密
  19. 使用v-show不起作用的原因有哪些-
  20. TextInputLayout字数统计功能

热门文章

  1. OMG Partical Practice
  2. 【Twitter爬虫】Twitter网络爬虫
  3. pytorch获取全部权重参数、每一层权重参数
  4. 薪资真相:程序员薪资被医生碾压!
  5. 10-5 查询全部学生都选修的课程的课程号与课程名
  6. 工作中常用的Stream集合处理
  7. 谷歌日本造了1.65米长的键盘,被骂惨了...
  8. otsu阈值分割算法原理_大津法---OTSU算法
  9. 如何修改系统提示音 (ex:触摸提示音)
  10. 电商中的spu和sku的区别