2017找Android工作,都会面试哪些技术问题?「附答案总结」
Tips:
Android本月免费课程报名中,点击文末“阅读原文”快速抢!
这是一位资深安卓猿今年找工作的总结,都说今年安卓萧条,其实经过几位小伙伴的找工作经历,我们发现不是萧条,是没有以前那么疯狂,越来越趋于正常化啦,所以安卓猿们可以放心了。
最重要的是提升技术,走到哪都不怕。这篇文章里面有很多技术的总结,保持学习哦~~
个人近况
先说下博主最近近况,今年 2 月份从信和财富出来,去了一家创业公司结果不堪 996 的压榨,5 月底毅然离职,目前整理几家去过的公司,整理了一些技术问题,给大家参考。
金开门(好贷网旗下孵化创业公司)
这公司是在 BOSS 直聘上投的
总体面试还算不错吧 Android 技术那面一般也不会问特别深主要是最新的主流技术一般会问下,还有就是之前的项目会大致问一下
接下来是总监面,总监是个蛮不错的人,满有亲和力的,大概就是聊推送这一块的,还有支付,因为这公司主要业务是聚合支付相关的,总体还 OK
接着是 HR 谈薪水还有介绍公司近况,貌似最近一直是 995 的节奏
最后是大 Boss 面貌似很屌的说了一句目前我们就是 996 的节奏(应该是试探我的),我觉得跟他也没啥好谈,他一幅咄咄逼人的气势,总体感觉 BOSS 应该是个坑比,这个人的感觉貌似跟博主之前在16年遇到的创业公司的老板一个鸟样,所以就没有后续了...
音悦台
这个也是在 Boss 直聘上约的,公司就在三里屯 SOHO
公司主要业务主打 MV 的剩下的我就不多说了,前几年业务还是挺火的HR 人还是很不错的,公司的环境神马的都没得说,妹子也多╮(╯_╰)╭没给offer确实感觉挺遗憾的
首先光技术面问的就蛮深入的,基本最近貌似招人都比较苛刻~多线程,线程池,handler,Looper 源码层,activity 源码,四种启动模式,生命周期,View 的绘制流程,自定义 view,手势传递问的最复杂也最多
还有一些开源项目相关的问题吧 okhttp,glide,eventbus 相关的
1905 电影网
这个是在拉勾上投的,公司在西直门
我敢说这个面试官是这么多年我遇到的最能装逼一个,当然人家技术也蛮不错的,你不会的,遇到问题的,人家也耐心给你讲解哟,无形装逼,最为致命啊!如果你技术不是很好的话千万不要去这家公司找虐博主之前有个朋友也来过这家面试,貌似最后给说开不了他的工资,还跟他说来面试很多
给我种感觉 就是面试造核弹,工作拧螺丝?最后还问了我项目里有啥亮点
问题蛮多的好多都忘了,大致记住几个
Glide ,Picasso 都分别有几个线程池
Asynctask 源码,为什么 android4.0 以后是串行
OnMeasure 方法几个参数对应含义(这个题问的最多的所以我把答案贴上O(∩_∩)O~
首先我们要理解的是 widthMeasureSpec, heightMeasureSpec 这两个参数是从哪里来的?onMeasure() 函数由包含这个 View 的具体的 ViewGroup 调用,因此值也是从这个ViewGroup 中传入的。这里我直接给出答案:子类 View 的这两个参数,由 ViewGroup 中的 layout_width,layout_height 和 padding 以及 View 自身的 layout_margin 共同决定。权值 weight 也是尤其需要考虑的因素,有它的存在情况可能会稍微复杂点。
了解了这两个参数的来源,还要知道这两个值的作用。我们只取 heightMeasureSpec 作说明。这个值由高 32 位和低 16 位组成,高 32 位保存的值叫 specMode,可以通过如代码中所示的 MeasureSpec.getMode() 获取;低 16 位为 specSize,同样可以由MeasureSpec.getSize() 获取。那么 specMode 和 specSize 的作用有是什么呢?要想知道这一点,我们需要知道代码中的最后一行,所有的 View 的 onMeasure() 的最后一行都会调用 setMeasureDimension() 函数的作用——这个函数调用中传进去的值是 View 最终的视图大小。也就是说 onMeasure() 中之前所作的所有工作都是为了最后这一句话服务的。
我们知道在 ViewGroup 中,给 View 分配的空间大小并不是确定的,有可能随着具体的变化而变化,而这个变化的条件就是传到 specMode 中决定的,specMode 一共有三种可能:
MeasureSpec.EXACTLY:父视图希望子视图的大小应该是 specSize 中指定的。
MeasureSpec.AT_MOST:子视图的大小最多是 specSize 中指定的值,也就是说不建议子视图的大小超过 specSize 中给定的值。
MeasureSpec.UNSPECIFIED:我们可以随意指定视图的大小。)
广播怎么不跨进程
Rxjava 操作符
Rxjava 1 2的区别
还有问了轮播怎么让用户按下三秒之后继续翻页
还有五种进程级别
多线程下载,3个线程如何下载10M的文件
两列 Recyclerview 如果是表格布局怎么添加 header view
Thread 和 intent service
最牛B的一个问题是类似天猫这种大厂APP实现的全局应用代理是怎么实现的
(本意就是类似于推送的时候处理推送的逻辑不写一大堆switch case,而是在入口处动态去配置就可以)
凡普金科(普惠金融旗下)
这个是在拉勾上投的,公司在银河 SOHO
当时面试地点其实是发的有问题的,前台大门明明在A座嘛,你非得发个 D 座那边的位置,结果那边的门锁了,我敲了半天才有人开,我才知道走错门了应该从 A 座的电梯上来,可是就是发的 D 座,这里吐槽下。。。然后前台妹子给我的笔试题居然是 Java 的(貌似给错了)面试的深度基本跟 1905 那哥们差不多,也是 activity 启动模式跟手势传递还有 Looper 的源码那块问的比较多只是这个人最后问了一个尺子的效果:附上项目地址哈
https://github.com/kailaisi/WheelSelect
类似这个地址 demo 的实现效果只是年龄换成了金额(毕竟是做金融的公司 当然这样咯)只说还有复试,但是也是没下文了 o(>_<)o
映社(木蚂蚁)
这个公司绝对是坑比中的战斗机,去了就让你一直等啊等,等到花都谢了的那种
PS:他们现在的项目主要是做直播的产品叫“映社”(有种抄袭映客的嫌疑~~)
去的时候公司前台都没人,打电话也没人接,后来一个快递小哥进门了我和另外的一个也是面试的才进去首先是有笔试题的话说蛮弱智的(做完感觉也不会怎么看,完全就是浪费时间啊啊)然后那哥们把你领到一个类似小会议室的屋子里,这哥们给人的感觉技术也很一般,没有之前面的那么强势,基本都是照着简历问的,问直播跟FFmpeg那块偏多,贝塞尔曲线?自定义 View,偶尔穿插下 retrofit,Rxjava,热修复神马的,面完之后就出去了让你一直等啊等,等了快 40 分钟的时候进来说总监在开会
这个公司真特么的是个奇葩,你约人的时候不会挑个没会的时间么,貌似拉勾上有个面php 的哥们跟我一样也是被搁置一直等啊等,真是日了狗了!最后来了一句改天复试吧只说还有复试,让我来我也不会来了。。。
Melons (北京知行远科技)
这家公司是我在拉勾上投的,公司成立于2016年太初创了(我能怎么办,我也很绝望啊,貌似最近拉勾的公司比较少,稀里糊涂就投了╮(╯▽╰)╭)
Boss 也是做 android 的,而且还是前最美应用的联合创始人,技术出身还是蛮不错的公司早 10 晚 8 做海外项目但是目前的状况是跟别人挤在一间办公室里,那个隔壁组的貌似是 Google 天气的团队。。。
技术面还是跟之前的那几家差不多,基本都不会看你做过的项目就咔咔的问底层源码咯,唯一不同的是启动模式那块多问了 taskAffinity 这个属性,我确实是没用过,面试官拿着 macbook 一个一个的循序渐进的问着,面试流程大概一个半小时左右,然后跟 boss 聊了聊薪资和之前为什么离职,因为是早上十点半约的,一直聊到了中午 12 点 40多
我中午饭都没吃,然后紧接着就去中关村准备下午那家的面试
PS:今天还下着雨,挺苦逼的。。。
目测不会发 offer,可能是小公司给不起薪资。。。
NewsDog (公司名字就叫这个薪资标的还挺高)
这家公司是我在拉勾上投的,公司应该是 B 轮了已经
因为是约的是下午两点,而且刚从 Melons 那里面完就来了,所以去这家公司的时候连中午饭都没吃,让前台给接了杯水暂时压压惊。。。看简介公司应该是做海外市场主要是信息推荐跟数据挖掘的业务(不知道他们现在的产品是啥)
技术面主要是根据简历去问的,比较在意内存泄漏,内存优化还有 View 的过渡绘制这一块的东西,还有就是问了问图片开源库 Picasso v/s Imageloader v/s Fresco vs Glide 区别以及如何去选择吧,还有 eventbus 的源码以及注解的优点,其它的大概就是还问了问项目的难点之类的
比较操蛋的是没有讨论薪资,然后就直接送客了,不造差在哪里。。。
这样的公司也是比较无语的,面试官给人的感觉是屌的一逼,有点高高在上了。。
曙光无限
曙光无限 这家公司是在 boss 上约的,公司地址在回龙观东大街的腾讯众创空间(办公楼的环境蛮好的),公司主打产品是海外的项目,旗下产品几十种还是蛮多的
第一面 :只是人事先照着简历初略的聊了聊以前的项目经验,由于公司是做海外滤镜软件的,可能对图片算法这块要求蛮高的,福利这块目前是采取接近避税的方式,第一年还不给交住房公积金,貌似还需要第二面总监面,而且还要上机写demo...
目前 android 行情 :从以往的面试分析来看基本 android 的行情接近饱和状态,薪资这块基本稍微要高点的话直接就给你 pass 然后可能用其它人候选人去对比,市场的行情还真是惨淡
后续 :没有通知进一步的面试~~~~
遇见科技
遇见科技 这家公司是在 boss 上约的,公司地址在知春路附近,公司的办公环境也还不错哈,项目应该是一款社交软件,貌似起步还是蛮早的,已经做了几年了
第一面 :主要是技术面,问的以简历的内容为主还有面试官会看以往做过的项目(现在看项目的公司确实不多了)比较在意的是之前做过的项目整体的流程,整体架构设计模式还有业务这块的详情,基本都是围绕做的项目这块的技术点来的涉及的知识点也基本涵盖了目前比较流行的开源组件,还有会问一些关于同类框架之前的区别与对比:比如 volley 与 okhttp,图片框架,数据库 greenDao,realm,litepal 等等性能方面的问题
第二面 :第一面没什么问题之后会和 HR 进一步沟通,主要介绍了公司目前的产品方向还有项目节奏,福利待遇神马之类的
总监面 :能见到总监也基本很不容易了,基本也是聊了聊以往的项目,可能比较看重的是解决问题的能力,会问擅长哪方面(Ui 还是业务?)项目难点等等。。。
后续 :没有通知是否给 offer(难道是薪资问题??现在市场要到 20 K左右貌似就要考虑考虑了)
邻动
邻动 这家公司是在 boss 上约的,公司地址也是在知春路附近,公司的办公环境没的说,门口摆着各种零食饮料,面试等待的过程,前台妹子还给了一杯饮料喝O(∩_∩)O~,公司主要做视频方向的项目,目前已知产品叫“快牙”
第一面 :主要是技术面,基本问的跟之前遇到的问题一样,其中回答的不是很好的问题户要是 MessageQue 的源码实现(我回答错了,应该是链表)还有自定义线程池(应该是问线程池那几个参数),但是公司的技术要求可能希望更倾向于有 FFmpeg 相关经验还有做过视频剪切,裁剪之类的经验吧,问完就送客了....内心其实还是挺喜欢做视频这块的项目(⊙﹏⊙)b
元宝亿家
元宝亿家 这家公司是在 boss 上约的,公司地址在东直门,去了直接在前台填表,然后一个目测像总监的人直接面试,他们现在的项目是采用 MVP 写的应该是想找个人快速接手
第一面 :主要是技术面,问的东西感觉还好,但是感觉自己发挥的不是很好,Java String 类的底层源码,Hashmap 实现原理,Android 广播 Service 相关的,ANR,gson 高级用法(比如序列化的时候如何排除某个字段),项目里用到的设计模式,android 手势机制用到了什么设计模式(是责任链模式,这个我回答错了),内存泄漏和内存溢出,子线程不能更新 view 的机制,Rxjava retrofit okhttp,给我印象比较深的是问了 mac 上 pwd 这个命令是干嘛的(我用了这么久mac 确实没有用过这个命令,是显示当前文件全路径的)还有用没用过 Home brew,最后问了问 Git 相关的命令 pull 跟 fetch
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
PS:技术很耐心的给我讲解了我没能答对的问题
总结 :感觉自己跟目前市场上需求真正意义的 Android 高级工程职位还是有一定差距的,好多东西还是欠缺好多,还要继续恶补了,fighting...
约了第二天复试,信心严重受挫,不知道能不能谈拢...
0基础能学Android开发吗?
Android开发好找工作吗?
学了Android开发工作薪资多少?
如果你也想进入IT行业拿高薪,可以点击“阅读原文”报名6月达内Android免费训练营课程,技术大牛亲授,4个月后,进入名企拿高薪。
6月Android免费训练营火热报名中,点击查看课表
与你有关
各类干货和励志鸡血,更有各种好玩好看的资讯!
点击阅读原文报名Android免费课程