N久以来的第一次跳槽
2015毕业至今,已经在搜狐工作两年了,这段时间也终于下定决心跳槽了。现在的几个offer也在比较中,虽然都不是特别满意,但是好在也算成功脱坑了,以后找一个更加professional的团队去好好工作吧。
一些记录吧
这次主要是面Android 方向,确实很多东西记得不清楚,而且也被多家公司问到,留个记录吧,以后面试可以看看。
1.Android生命周期,被问到了A切换到B,各个的生命周期如何
2.Java 对象的初始化过程,以后复习的时候重新看看吧,坑还挺多的。
3.Binder机制,AIDL。好多人问到了。
http://blog.csdn.net/huachao1001/article/details/51504469 //这个写的更简单一点
http://blog.csdn.net/coding_glacier/article/details/7520199
为何binder只需要一次数据copy呢?
正常的IPC:source进程->copy -> 内核进程 -> copy -> 目标进程 (2次)
binder:
1.地址映射(内核进程和目标进程的内存使用同一块物理内存地址)
2.source进程->copy -> 内核进程(因为目标进程的内存和内核进程内存物理地址一样,所以相当于目标进程的内存也有了这段数据)
4.Touch事件,这个答的还不错,问到的也多。
5.Java 值传递和引用传递。
6.属性动画吧,了解的比较浅。
7.View的绘制过程
http://blog.csdn.net/qinjuning/article/details/7110211/
8.Linearlayout 里的weight,说实话我特么现在也不会用。看下边这个吧。
http://blog.csdn.net/goodlixueyong/article/details/50004837
weight是指对父view中的额外空间(注意这个额外空间)按比例分配给每个view
尤其是matchParrent的时候,如果有多个matchParent的子view,额外空间是负数(父width-n*子width)
9.Handler的looper为什么不会阻塞主线程
10.通用的性能分析工具:overdraw,Traceview,Systrace,到时候能说出几个就行吧,这玩意也没啥问的。
http://blog.csdn.net/innost/article/details/9008691/
11.Launch Mode
12.SurfaceVIew 和 TextureView
13.RecyclerVIew
ItemDecoration://www.greatytc.com/p/b46a4ff7c10a
14.JVM, GC等(其实感觉问的也不深,能说出引用计数,根搜算法,Concurrent Mark Sweep(CMS),以及分代,堆栈,可能也就够了,当然,深入理解JAVA虚拟机那本书可以继续看)
15.可以关注的源码,说出来估计都是加分项吧:RxJava,EventBus, Fresco,OkHttp,ORM,ButterKnife等吧
16.mvc,mvp,mvvm
https://www.tianmaying.com/tutorial/AndroidMVC