谈谈这次-Android-金九银十面试之后的一些感受,附面试题!(2)

  • Handler消息机制,生产者和消费者模型
  • View、ViewGroup的事件传递机制,如何解决滑动冲突? 回答如何滑动冲突最好是举出实际的场景和怎么解决的
  • View、ViewGroup的绘制流程
  • okHttp、Retrofit的源码,原理
  • 解释一下什么是MVP架构
  • Https原理,加密算法
  • RecyclerView的缓存机制
  • 常见的设计模式主要问到了这几个(单例、代理、适配器、建造者),先说概念,然后面试官会问具体的使用场景
  • 最新的Google AAC架构(ViewModel、LiveData、Room等等)有没有在使用,以及背后的实现原理
  • Kotlin有没有在使用,问这个问题的公司,基本上自己的公司在使用Kotlin开发新App,要么在使用Kotlin迁移、重构、与java混合在一起
  • Android常见的内存泄漏原因,以及检查工具,主要是问如何使用Android Profile检查内存泄漏的,性能分析怎么做?以及第三方检查内存泄漏的工具LeakCanary的原理?
  • 开发的App有哪些亮点,难点、如何排查线上的bug,有没有重构代码的经验

以上的面试题,主要是Android应用层知识,需要面试之前造造火箭的,还需要平时的耕耘、积累和总结。

再说说面试印象比较深的公司

###浦发信用卡

浦发信用卡是被怼的最惨的,刚开始问了几个基础的问题,然后问我你做的app传参数是怎么防止别人窜取的。因为我上家公司主要是做金融理财贷款类型的app,在加上是浦发信用卡研发团队的性质,想想问这个问题很正常。 我回答用so库对参数进行验证,对一些特殊的参数进行md5加密,跟后台进行比对。面试官so库就安全嘛,不可以反编译嘛。然后接着问https原理,加密算法知道哪些?压根回答不出,信心一下子就没了。面试官接着问RecyclerView的缓存机制,更加回答不出,因为平时也看过,里面的代码也太多,平时没遇到上万,几十万的数据,有很多种不同类型的布局的列表。所以不会往深入看,也看不太懂。

###天天拍车(D轮的专业个人卖车平台,类似瓜子二手车)

面试官问了两个半的小时的技术问题,涵盖了上面总结的大部分面试题(除了浦发信用卡总结的),总体发现聊的还不错,因为大部分都答出来了,过了两天收到了复试。

###工程师爸爸(B轮的专业做儿童教育的)

面试官主要是问了最新的**Android Jetpack最新的组件原理、Kotlin有没有在使用、android的进程间的通信方式、多线程下载你是怎么做的?断点怎么做?**总体回答的还可以,问到后面面试官说,我看了你的github。因为我的github上面开源了一个多线程下载文件实例和Kotlin写的一个开源的App。过了两天收到了复试。

总结了几家公司,还有其它公司的复试,offer。没一一列举了。复试的都没去,因为打电话过来复试,都快入职了我现在公司。

入职的公司记得是第一个星期周六面试的,印象比较两个深的问题:

1、Handler消息机制、生产者和消费者模型如何理解,如何应用到实际开发中的。
2、帧动画有上多张图片如何保证内存不OOM?

问的技术点基本上都答出了来了,然后人事面,问我什么时候尽快入职,往后推了一个星期入职。 目前入职的公司是主要做智能交互、智能机器人这块,10几个搞android的。发现前人敲的代码,有好的,也有差的。这个也正常,自己也有敲的差的代码也留给了别人。

总体发现整个面试下来,投简历发现今年996的公司还蛮多的,前两年没有这么多。有的人事,boss会直接说是996,要么自己面试过程中问是不是996,996的公司是拒绝的,压根不想去。面试的过程中发现自己的信心不够,技术能力也不够、自己也着急。面试想想这几点要特别注意。

1.像大一点的厂,投简历过去,在加上面试的时间回复,需要两周。
2.如果面试官过程中,发现面试官没有问什么技术问题,或者问的问题不够深入,基本上可以断定这家公司不是靠技术作为驱动公司发展的。
3.提高自己的信心,自己要会的多,对知识点的理解要深入。

写这篇文章的目的主要是做个总结。记得之前刚出学校时,希望自己能遇到一个大牛带带自己,要多学习,可能进公司的目的都是为了学习。我想有很多刚出学校的有我这样的心态,哈哈,这个当初的心态…现在想想整个心态都不一样了,进公司是为了体现价值、给公司带来效益。至于技术很大一部分是需要靠自己的,还一部分是公司的业务、产品需求是做哪块,技术点就会主要攻哪块。平时学习需要多积累、多体会、代码需要多动手敲。 刚出学校来写代码很乱,没编程风格,没思路。这个很正常,大部分人都这样,能力是慢慢提升的,经历过一两年这一点会好多了。现在我看看自己两年前的敲的代码,很菜,很次。

由于自己做开发三年了,主要是在做android端的app,这其中也学习了Spring、SpringMVC、ios开发等等。之所以会接触其它的,一是待的公司的需要,有的公司人手不够或者有的岗位并不想在招人,拉你去做做、去看看,对于这个自己开始工作的第一年内心是很拒绝的,并不想做其它的。二是随着工作时间久了,学习能力也慢慢的提高了,发现需要学习其它的东西,光Android的应用层压根不够,再加上市场的竞争越来越激烈。去年开始接触Kotlin、Rect、ios的时候,学习的过程中发现很多东西的都是相通的,即使是不同的平台,不同的开发语言。比较像金庸小说里面描述武学的那样 “天下武学殊途同归”。

###写代码总结以下几点:

1.需要确认需求的,理解有偏差的。写代码之前一定要和产品经理沟通交流。宁愿多花时间去和测试的、设计师沟通,也不要去埋头写代码。同样的,认真想想怎么实现这样一个功能,思路理清了在敲代码。
2.养成良好的编码习惯,风格。多看看Google开源的在github上示例,或者其它知名公司的。
3.六大设计原则、一些常用的设计模式理解透牢记于心,多在编码过程中使用。
4.代码要有思路,写好注释,写的代码不单单是自己要看,也是给别人看的。
5.平时学习需要多总结、多体会、代码需要多动手敲。

###结束语
其实整个求职的过程是一个不断认清自己的过程,所以心态是最重要的,我们要把面试当成一个学习和成长的过程,大部分人能得到的结果是和我们过去的努力程度直接挂钩的,所以永远不要抱怨什么,我们今天的现状往消极了说是在为过去的选择买单,往积极了说还要感谢那个曾经努力过的骚年。

最后

光有这些思路和搞懂单个知识的应用是还远远不够的,在Android开源框架设计思想中的知识点还是比较多的,想要搞懂还得学会整理和规划:我们常见的**Android热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应式编程框架、IOC依赖注入框架、最近架构组件Jetpack等等Android第三方开源框架,**这些都是属于Android开源框架设计思想的。如下图所示:

image

这位阿里P8大佬针对以上知识点,熬夜整理出了一本长达1042页的完整版如何解读开源框架设计思想PDF文档,内容详细,把Android热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应式编程框架、IOC依赖注入框架、最近架构组件Jetpack等等Android第三方开源框架这些知识点从源码分析到实战应用都讲的简单明了。

由于文档内容过多,篇幅受限,只能截图展示部分

image

image

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值