全新一次的安卓面试

转载请注意:http://blog.csdn.net/wjzj000/article/details/77763065

本菜开源的一个自己写的Demo,希望能给Androider们有所帮助,水平有限,见谅见谅…
https://github.com/zhiaixinyang/PersonalCollect (拆解GitHub上的优秀框架于一体,全部拆离不含任何额外的库导入)
https://github.com/zhiaixinyang/MyFirstApp(Retrofit+RxJava+MVP)
以及一个可以依赖的自定义验证码View:
https://github.com/zhiaixinyang/VerifyCodeView


写在前面

因为闲的蛋疼,又偷摸的去面了一家公司,原因是hr说他们公司的安卓非常吊,吊到在腰上绕三圈还能托马斯回旋接转体三周半。

事实证明的确如此,有很深的大公司的背景…和很多安卓分享届知名大神都公事过(有待考证)。从面试技巧角度来说(不考虑技术本身)。技巧非常的丰富,只用了40分钟基本上把我所会的所有东西都问出来了,而且在面的过程及其擅长引导和发散…

以下记录内容只涉及到面试官的话,也就是他的问题,和如何引导我回答问题。


开始

面试的开始从属性动画切入:

如果我们使用属性动画,如何改变View的长和宽,不是缩放。(其间提到了插值器和估值器)谈一谈插值器和估值器吧。
聊了一会,他提到既然咱们聊到了属性动画,那就谈一谈View吧。既然长和宽被改变那么势必引起了View的重绘,能引起重绘的方法都有那些?
View的绘制是先绘制父View呢还是子View?
你来谈一谈View绘制的流程吧。(期间提到了ViewRootImpl,谈一谈ViewRootImpl在哪里被初始化)
draw()和onDraw()的执行先后顺序,彼此的不同点。
在自定义View中复写一个参数的构造方法和俩个构造方法的区别。
如果我不复写俩个参数的构造方法,能在xml中使用么?
提到xml,你来说一下xml的解析是什么样的流程,用了什么样的解析类?
既然提到了树形结构,来说一说二叉树吧,深度优先遍历的流程是怎么样的?

View咱们用的时间比较多,来聊一聊别的。关于Service我有这么一个情况,一个Activity绑定了一个服务,另一个Activity也绑定了这个服务,服务的生命周期的调用是怎样的?
如果我想要这么服务能够较长时间的存活,我在onStartCommand中怎么处理呢?
我现在有个场景,同一个进程之下,我在onBind方法返回的IBinder对象和被绑定的Activity拿到的IBinder对象是同一个对象么?(说实话,到服务这块我就已经虚了,这个问题都没明白啥意思…啥叫同一个对象?看到我很迷茫,他换了一种说法。这样一下子就好多了,换个问题压根就听不懂了)如果我在另一个进程开启一个服务,现在app中有几个Application实例?(反正也不明白,我就随口说了一个)好的,我们假设是一个,那么我在Activity这个进程中写一个静态的变量,能否在服务的进程中拿到这个变量的值。(我回答:不能,因为不能跨进程通讯)这样不就很清晰了,如果是一个实例那怎么会不能通讯呢?接下来他简单说了一下进程通讯的原理…

咱们在聊一聊另一个组件,ContentProvide,简单谈一谈你对它的认识吧?
如果这个内容提供者并没有启动,其他应用是否也能正常的获取提供的数据呢?
(这里自己给自己挖了个坑,我说可以,因为对通讯录提供的内容是可以正常获取的。当时有点短路,很明显通讯录这些是后台运行的。(马上到给自己挖坑的地方了)接下来我有提到,静态注册广播接受者的时候,app不启动也可以收到系统的广播)
关于广播的这个情况,我有一个问题,既然响应了广播,那么很明显onReceive方法被回调,那么此时onCreate方法是不是提前被回调?…
…卒…

到此技术的连环发问基本结束,从服务开始,就开始有跨掉的痕迹,内容提供者一出,整段垮掉…)
接下来简单问了一下项目经验,没怎么发问。看到简历上提到了插件化换肤,随便聊了几句,主要是听他说:他在插件化这条路上踩的坑….

然后也就是最经典的一句话,OK,我觉得你源码层面上看的还可以,项目经验上有些不足(我找实习,当然经验不足了,汗),后续情况我会让HR联系你。


尾声

到此这个面试就完事,虽然时间用的并不多,但真的是酣畅淋漓…
(很幸运,以实习生的身份得到了他们的邀请)

最后希望各位看官可以star我的GitHub,三叩九拜,满地打滚求star:
https://github.com/zhiaixinyang/PersonalCollect
https://github.com/zhiaixinyang/MyFirstApp

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值