金三银四。求职的好机会。第一个需求发展,第二个看看市面上需要什么样的人才,找准自己的定位。坐标南京。面试了努比亚,苏宁,焦点科技,地平线机器人。
地平线机器人
fragment与activity的交互,fragment的生命周期,什么时候绘制view。 怎么使用fragment,不带参数的fragment有什么好处?带参数的fragment会有什么弊端?
android有几大布局,一般你用什么?为什么?(估计是从性能优化的角度说,但是还没搞懂后续他会问什么,因为没回答出来他满意的答案,他也没继续问)
RelativeLayout 会调用两次onMeasure()方法,
groupView自己是不会测量的,交给子view测量。
RelativeLayout会根据2次排列的结果对子View各做一次measure,一次横,一次竖。
这是为什么呢?首先RelativeLayout中子View的排列方式是基于彼此的依赖关系,
而这个依赖关系可能和Xml布局中View的顺序不同,
在确定每个子View的位置的时候,需要先给所有的子View排序一下。
又因为RelativeLayout允许ViewB在横向上依赖ViewA,ViewA在纵向上依赖B。
所以需要横向纵向分别进行一次排序测量。
LinearLayout 如果不使用weight属性,只会调用一次,使用weight属性,调用两次
RxJava使用,Rxjava的好处。对Rxjava的理解。RxJava 操作符,比如map 和 flatMap 的区别,更高阶的东西需要去掌握;
Touch事件传递。比如说我现在有个两层布局,里面有一个button,点击button的时候,说说调用的方法。
封装了网络了,说说封装思路是什么?对httpClient的理解,google还支持使用它么?(这个我说不知道,估计后面本来还会问为什么不支持。)
用过多线程么?多线程之间是怎么通信的。
封装网路用了观察者模式,能解释观察者模式么?
地平线机器人是福利待遇最好的,还没面试前,hr就开始介绍福利。技术面试官非常深入,基本上围绕你的经历然后深度挖掘内容,是技术氛围非常厉害的一家公司。
努比亚
看过Glide源码么?介绍一下里面的缓存机制。
用过handler么,谈谈handler机制。
使用过动画么,为啥引进属性动画?
了解过内存泄漏么?怎么解决的?
ANR问题怎么处理?
线程池用过么?
中等偏上的公司,问题比较有代表性,对系统性能要求比较高。
苏宁金融:
fragment的生命周期?view是在什么时候绘制出来的?
设计模式用过么?说说你熟悉的几种?单例模式有几种。手写一个。
HashMap是无序的么?说出几个无序有序的map。
HashMap底层设计是什么样子的?为啥这么设计。
简要说一下,hashmap put 一个数值进去,是怎么进去的。怎么查找的?又聊了聊数组。
使用过kotlin么?
苏宁更偏向于基础问题,面试苏宁的时候,正好碰上了苏宁扩张。面试官非常真诚,讲了很多脱离技术的问题,对于一个技术来说,还是受益匪浅的。虽然过了苏宁的技术面试,但是被人事卡下来了。工资要的过高。还是挺可惜的,没有进苏宁金融。
焦点科技
v7包里面使用过什么控件?
怎么保证推送的覆盖率?
进程间通信有经验么?
android 安全有过经验么?
service用过么?
焦点科技面试我的部门。大概android7,8个人,负责7,8个app。不缺业务码农,需要对性能,安全,进程间通信方面有经验的人才。会RN,在焦点科技是加分项。
总结
技术上欠缺的是:
- 进程间通信,
- 多线程并发,
- view的绘制处理,滑动事件的冲突,
- Android安全,
- java基础
- 设计模式
- 对开源库的代码理解
- RN混合开发(加分项)
需要去做的是:
- 对源码的深度理解。
- think in java
- java设计模式
- 高并发
- JS那本经典
- Android两本经典