前言
从8月中旬开始,准备换工作的事情。之前近一年的时间一直在武汉做Android开发,接下来的工作也瞄准的是Android开发工程师的职位。 目前工作已基本确定,地点在深圳,十一以后就会上岗,把这段时间的经历简单总结一下,一来对自己是个交代,二来希望对网友们,能够有一点帮助和参考的作用
计划好就成功了一半
0. 整体情况
我从8月中旬开始筹备换工作的事情,之前两个星期主要做了三件事:
1) 在网络上搜集各类Android招聘的信息。挑其中自己比较中意的储备起来,以备后来集中投递简历。信息来源主要包括智联招聘、51job、eoe论坛、安卓巴士论坛。
2) 收集网络上流传的各类Android面试笔试题,学习准备,为求职做准备(整理过程中发现,网上流传的题目,其实就那么一点点,不断地重复)
3) 制作简历
接近9月份的时候在几大求职网站上投递简历,也向一些公司官网上提供的招聘邮箱投递了简历。陆陆续续收到了许多面试电话,在武汉面了4、5家。之后请假4天,去深圳面了3家。最后敲定了深圳的一家手机公司。薪资不上不下,但是比原来的公司涨了50%,公司在业界也算是比较有名了,希望在这里能够有更正规、更深入的工作机会,能够在Android上做更多的积累。
1. 地域考虑
毕业以后一直留在武汉,开始找工作的时候也面试了几家武汉的公司。总的感觉是在武汉还是机会不够多(过两三年以后情况应该会好一些)。之前一直在收集一些自己比较感兴趣的公司,统计下来发现,主要都集中在了上海北京和深圳,上海北京要多一些,因为这两个地方的互联网公司更多,而深圳主要是做电子产品的公司要多一些。本人在武汉也无牵无挂,所以决定到深圳这座年轻的城市奋斗几年。
2. 行业选择
做Android开发大概有两条路可以走,一是去互联网公司做App开发,而是去手机公司做整机的开发。前者主要就是应用层的东西,后者可能就得往底层发展。自己本来一直倾向于去互联网公司的,但是没有太好的机会,只能作罢。未来的几年也要把注意力转移到手机行业上来,多在底层上花一些功夫。
3. 面试相关问题
这是写这篇文章主要想说的东西,这一个月的面试经历总结下来,技术方面主要会问三类问题
1) Java基础
2) Android基础
3) 项目经历
其中笔试的时候,实际上基本考的都是Java基础相关的东西,算法、数据结构、Java知识。笔试中Android涉及得很少,有的话也大概是些简答题,比较简单。
面试的时候考官也不会问太多Android基础知识,毕竟这已经是一个比较成熟的框架,技术难度不大。我想公司主要想招到的人才,还是基本功扎实,项目经验丰富的人吧。而真正想把Android做好,没有扎实的Java基础是行不通的。
之前也提到过,网络上流传的Android面试题,翻来覆去其实就是那么几样,四大组件、多线程、UI相关知识,在面试中问到的,也逃不过这几块。主要还是跟你聊项目,项目中遇到过哪些难题,怎么克服的?接触过哪些组件?如何在工作中做优化?
所以,想要在这一行踏实做下去的话,一是专注于工作,做点真的能拿出手的东西,随时做总结;二,基本功的练习,不能够荒废了。
【一面】
1. View绘制流程?
2. LayoutInflater.inflate的过程?布局是如何加载的?
3. Handler机制及Handler内存泄漏?
4. 简单说一下okHttp?(可以往拦截链上靠)
5. 手写单例模式,并分析一下双重校验锁的作用?
6. 手撕代码:2个单序链表合并
7. 判断什么样的对象需要回收?GC ROOTS有哪些?
8. 说一下Java的4种引用?
9. ListView如何优化,说一下RecyclerView相对于ListView的区别、优点?
10. RecyclerView 缓存机制?
11. 说一下熟悉的设计模式?
12. 说一下Volatile?什么是可见性、有序性?
【二面】
1. ReactNative如何实现跨平台开发?
2. ReactNative的原理?
3. ReactNative如何使用WebView组件的?RN与原声交互的方式?
(因为项目是基于RN的,所以面试官针对RN的原理问了挺多。准备Android比较多,对RN的关注度不大够)
4. touchSlop是多大?单位是什么?
这道题的第一问我没答出来,但是小哥哥非常温柔,循循善诱问我认为touchSlop的单位应该是什么?我思考了一下说应该是dp,因为考虑到用户触摸时抖动距离对于不同机型可能有差别,这里需要统一。小哥哥似乎听到他想要的答案了,然后肯定了我的思考,并告诉我第一问的答案应该是8dp~
5. 为什么按照 onMeasure、onLayout、onDraw的顺序绘制?这些方法可以合并吗?
6. 手撕代码:之字形打印二叉树
7. 事件分发的机制
8. 描述一下滑动嵌套时防止冲突的方式,有了解过ACTION_CANCEL吗?
9. 说一下ANR的原理?
【三面】
1. 说一下HTTPS
2. 深入探讨了一下EventBus中的安全问题
3. 非对称加密一定安全吗?对黑客技术的了解?
大概要分享的就这么多,具体的面试笔试题解析,与学习书籍我整理在了我的【GitHub】里!
其实最近国内的IT环境真的不是太好,大公司纷纷裁员,各类公司也紧缩招人名额。我在深圳去面的三家公司都是之前在武汉已经联系好的。去深圳海投了一大片,基本上一点回应都没有。听同事说上海的情况要好一些,具体情况我并不清楚。
但是,深圳,我终究要来了。这座年轻的城市,充满机会的城市。希望年轻如我,能够安心踏实地在这里积累,避开一些浮躁焦虑,踏实生活和工作。希望能结识更多的朋友,希望生活会更好。
总结
以上这些都是我从事这行多年的一些经验总结,大家当作一个参考就好,希望彼此印证查缺补漏,不断在技术道路上前行。有什么疑问和建议欢迎一起探讨。以下的资料都是我多年来的一些收集的:Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料,我可以分享给大家,一起交流学习。
点击【获取所有学习笔记】即可获得!
网友评论