=====================================================================
昨天,我们小组长奉命去面了一个34岁的Android程序员。
去了大概半个多小时吧,回来后,他的脸色就变得很凝重。因为刚好坐在他的旁边,我就多嘴问了句“怎么了”,组长叹了一口气,打开了话匣子。
===========================================================================
“我去面了一个34岁的Android开发……”
这个我们早知道了,摸鱼闲的,但我还是表示出十分的耐心:“然后呢?”
“卧槽!34岁了哎!”前排工位上的一个同事探过头来,一脸听戏的表情,语气满满的不可置信。
“尼玛,这么大的年纪了还出来面试……”后排工位上的同事也过来凑热闹。
小组长看了一圈围过来的人,突然暴怒:“艹!我也34,有意见?!!”
周围瞬间就安静下来作鸟兽散了,好像刚刚根本就没人提过“34岁大龄”这几个关键字。
我追问了一句:“那人技术咋样?过了没?”
小组长一脸复杂:“问啥啥不会……问个底层都答不上来……”
“你问了些啥?”
“就Handler和Binder那些啊。”
=======================================================================
问:先做下自我介绍吧。
应聘者:我是**,本科学历,以前在阿里做Android开发,带过十人的小团队……
……
小组长一边看简历一边听,得到大致信息:大厂出身,“高龄”被裁,带过团队,做过大项目,能力不错,因就业大环境一般,现在选择降薪求职。
问:我看你简历里面这个项目用到了广播,说说广播底层的设计原理吧。
应聘者:哦,不是Binder吗?
问:那为什么要用Binder呢?说说Binder的原理?或者简单说一下Binder的优势是什么也行。
应聘者:我当时做的那个项目……(顾左右而言他)
小组长开始怀疑这人到底行不行,决定换个问题:那你知道Handler吗?说说为什么建议子线程不更新UI吧。
应聘者直接懵圈了,最后结结巴巴地回了一句:这……不是会用就行了吗?
小组长也很懵,没有想到做过大项目有过大厂经验的人一问三不知。
问:同步屏障和异步消息的实现和使用场景知道吗?
……
不到半小时,小组长就告诉他“回家等消息”了。
虽然很同情他的年龄和遭遇,但是规矩不能坏。
========================================================================================
在项目中,各模块代码运行在不同的进程(线程)中,想要真正理解安卓的这几大服务,势必要掌握安卓的通信机制,而安卓最主要的两个通信机制就是Handler和Binder。
Binder机制在Android中的地位举足轻重,我们需要掌握的很多原理都和Binder有关:
-
系统中的各个进程键的通信
-
Android系统启动过程
-
AMS、PMS的原理
-
四大组件的原理(比如Activity的启动)
-
插件化原理
-
系统服务的Client端和Server端的通信原理(比如MediaPlayer和MeidaPlayerService)
可以说Binder机制是掌握系统底层原理的基石。Handler的地位也是同样的原理。
现在的业界有一句话是这样说的:技术好的未必弄得懂底层,但是底层基础好的学起技术来很快。所以,大公司在挑选公司人才的时候,更加看重的是应聘者对底层原理的掌握和理解。
=============================================================================
那些底层知识都很枯燥,每次学完就忘,一合上书就忘得差不多了,不知道要怎样学才好了。
其实造成这样的现象最主要的原因是没有掌握系统的学习方法
,也没有系统的资料辅助理解和学习
。
知识点就是那些,基本上,翻来覆去就是那些换汤不换药的问法。
但是现在大家上班要写业务代码,下班又是家庭琐碎,要想自己静下心来好好学习根本不可能,仅仅只是有用信息的筛选就足够麻烦。
鉴于“金三银四”已经过半
,为了让大家快速掌握
Framework的这些底层原理,这里给大家免费分享一份 452页的《Android Framework精编内核解析》。
需要的朋友可以直接【点击此处】,管理会发给你。
这份资料通过对最近两年这些大厂面经的收集和分析,把面试中常问的Handler和Binder以及相关的知识点整理成了一份有针对性的PDF。
手把手,保姆式教学,教你透彻理解这两个知识点,吊打面试官。
==================================================================================
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 类图
最后
小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料⬅专栏获取
inder 架构
Binder 类图
最后
小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-FeGaxCeP-1719095578270)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料⬅专栏获取