Android开发者出路在哪?已拿到offer

### 第一面 > **面试官看起来很年轻,感觉是一个刚毕业不久的小伙汁,声音很青涩哈哈哈哈 > 开始面试的时候把我给问懵了,当时刚午觉睡醒,还没缓过神** **计算机网络部分:** 1.http的一套流程是什么? 2.https发起连接的流程是什么? 3.http请求的请求头中包含哪些字段?(这里忘了不少字段,只说了三四个,呜呜呜) 4.一次http请求的结构是什么样的?(这里因为网络的问题,听了三遍,终于弄懂了面试官的意思,呜呜呜) **操作系统:** 1.能简单说说线程和进程间的区别吗? 2.进程间通讯的方式你知道有哪些吗? 3.听说过Messenger吗?(知道,但是底层还是使用的AIDL+Handler的形式,AIDL底层还是使用的Binder驱动) **数据库:** 1.能简单说一下数据库如何修改一张表中的数据吗? 2.给一张表增加一个字段该用什么关键字? **Java:** 1.能简单说说Lock,synchronize,CAS之间的关系,以及具体实用的场景吗? 2.能详细说一下CAS是什么吗?AtomicInteger是怎么实现线程安全的? 3.具体的锁升级机制能简单讲讲吗? 4.能简单说说代理模式吗?动态代理和静态代理有什么区别? **Android:** 1.能简单说一下事件分发机制吗? 2.MeasureSpec.UNSPECIFIED是什么意思?如果外层的ViewGroup的模式是AT_MOST,内层是match_parent,那么最终传递到内层的模式是什么?(AT_MOST)? ? ps:这个问题没啥意义 (听你说了View中有scrollTo,scrollBy,那么我们分析一个场景题) 3.场景题:首先有一个FrameLayout,其中嵌套着两层View,我们在进行重写onTouchEvent的时候,如何让上层View滑动并且暴露出下层的View?(这里有一个坑,面试官说的scrollTo、scrollBy,我就在这俩上面思考怎么暴露出下层的View,最后突然想到可以通过事件来调整整个View的布局位置) **源码:** 1.看过那些优秀的开源框架源码吗? 2.知道那些源码相关的设计模式呢? 3.HashMap简单说一下原理吧 ### 二面: > **二面是一个女面试官,年龄可能在40岁左右** **设计模式:** 1.熟悉那些设计模式呢? 2.动态代理底层是如何实现的? 3.讲讲Retrofit的动态代理吧 **Java:** 1.能简单说说JVM内存模型的目的以及在内存中区分为哪些区域吗? 2.内存回收机制大致讲讲呗? 3.类加载机制完整细致的描述一下把 4.类加载器的双亲委派原则说一下吧?(这里有一个疑问,我说父子类加载器不是继承关系,然后面试官说不太对,这里我有一点点疑问,还请大家告知一下) 5.能说一下Java .class文件的结构吗? 6.线程池的基本机制有了解吗?非核心线程如何保证延迟结束? 7.为什么内部类会默认持有外部类的引用? **Android:** 1.Handler消息机制简单说一下吧(延时的消息是如何发送的?以及通过Looper.loop()是如何处理延时消息的?) 2.为什么Handler会出现内存泄漏? 3.View中的post和handler的post有什么区别?(我说view中的handler是经过重写的,会处理关于View的相关绘制事件,然后面试官说只回答对了一部分,我有些疑问,还有其他的区别吗?) 4.有用到什么内存泄漏检测的框架吗?知道原理吗?(就是上面所说的JVM内存回收机制) 5.知道关于性能优化相关的吗?能简单讲一下吗?(布局,异步,过渡绘制) 6.能讲一下Activity的启动流程吗? 7.听你讲到了进程间通讯,PackageManagerService和ActivityManagerService进行通信的方式是什么? 8.Binder驱动底层原理了解吗?(mmap的内存地址映射) 9.Serializable和Parcable有什么区别?如何使用? 10.听你说到了sp(SharedPreference),你知道sp能跨进程通讯吗? ## 最后 其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。 以上分享[【我的阿里P7移动开发架构师学习笔记】](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)七大模块整套学习资料均免费分享,需要的小伙伴,我已经上传到石墨文档了,大家自取就可以了。白嫖可以,别忘了给我点个关注哈。 当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。这也是我这些年来养成的习惯,一定要学会把好的东西,归纳整理,然后系统的消化吸收,这样才能极大的提高学习效率和成长进阶。碎片、零散化的东西,我觉得最没有价值的。就好比你给我一张扑克牌,我只会觉得它是一张废纸,但如果你给我一副扑克牌,它便有了它的价值。这和我们收集资料就要收集那些系统化的,是一个道理。 如果你需要,我把他放在GitHub了,无偿分享的。 [【Android架构视频+BATJ面试专题PDF+学习笔记】](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md) ![](http://www.icode9.com/i/li/?n=2&i=images/20210708/1625677333643004.jpg) 网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
上一篇:Android未来路在何方?看这一篇就够了!


下一篇:Android开发者必看避坑指南!实战解析