大家一起来写面试攻略(Android)

//这里是前言,可略过
看标题就知道我最近去面试了,为了让后来人(跟我一样要面试的人).
毕竟马上到毕业季了嘛!
我觉得写下我的面试经历会对后来人有帮助。
其实是为了给自己写攻略,哈哈哈

《大家一起来写面试攻略(Android)》 百口难辨

号召

  • 如果你在面试中也遇到过类似的问题,但是你有更好的回答方案,可以在评论中回复,我会带着你的名字加到文章中
  • 如果你在面试中遇到过本文中没有的问题,可以在评论中回复,我们一起来写攻略,我会带着你的名字加到文章中
  • 如果你是面试官(技术的),如果你想让大家明白你问这些问题的良苦用心,可以在评论中回复,这样我们就没必要在这里猜想你有该问道什么问题了

我遇到的问题

  1. 介绍一下你做过的项目.(纯属扯淡,简历上说的已经很清楚了,不知道面试时人家会很紧张的吗)
  2. 在你做过的这个项目中遇到过什么技术难点.(尼玛,难点我都解决了,就不是难点了,关键是一紧张就忘记了。。。)
  3. 说说你在这个项目中用到了那些知识.(加载数据,绑定视图。。。。敲控件)
  4. 你最擅长的技术是哪方面,讲讲.(敲代码。。。。。copy)
  5. 地图,即时通讯,自定义View这些你做过吗.(百度,高德都有api可以直接用,融云,环信都可以直接用的,github上可以找到各种需求的轮子,没必要重复制造)
/*
以下是笔者观点,仅供参考,不是标准答案,
如果你有异议请在评论中回复,如果你是面试官,
觉得这样答不对,请在评论中回复,谢谢
*/

1.介绍一下你做过的项目.

从以下几个方面来回答

  1. 项目背景介绍,可以简介一点,一句带过(毕竟我们是做技术的)
    比如,金融项目(可能会被问到安全问题),打车项目(可能会被问到地图问题),
    直播项目(可能会被问到视频流问题)…等等
  2. 项目模块介绍(你负责的),例如:登录注册模块,账户模块,订单模块等等
  3. 项目采用什么架构,例如: MVC (Model+View+Controller),
    MVP (Model+View+Presenter), MVVM (Model+View+ViewModel)可查看文章结尾的外链解释
  4. 项目中使用到的第三方库,例如:用Rxjava来做异步操作和流程控制,用retrofit来做网络请求,
    用picasso来做图片显示和缓存库,用EventBus来做线程间通信,用DBflow来做数据缓存,等等
  5. 如果项目中有请求库或者UI库是你自己写的,那你就有的聊了,面试官肯定会问你实现过程的,所以自己做过的东西一定要熟悉

我想通过以上你的 这些介绍,面试官肯定有很多问题要问你了,只要你对自己说出来的东西有一个比较全面的认知,
应该就可以给出满意的回答了,如果当时遇到自己不知道的,可以把面试官往你了解的问题上引导,比如这个项目中我对数据库操作用到的比较少,对图片显示的研究比较多….,
趁现在还有时间,赶紧去了解了解你用过的那些知识吧,让面试官难不到我们,哈哈

2.在你做过的这个项目中遇到过什么技术难点.

//有坑就得填,这个问题就是一个坑,当你说出难点后,
//下一句肯定是你是怎么解决的呢,所以你答完后,记得问问面试官
//您觉得这些问题应该如何解决,有来有往才能增进感情,哈哈

从以下几个方面

  1. 内存管理上的,例如,OOM等
  2. 触摸事件冲突的,例如,scrollview嵌套RecyclerView等
  3. 网络请求上的,例如,文件上传下载
  4. 进程间通信的,例如,activity和fragment之间的通信
  5. 打包,分包上的,例如,超过65k方法限制
  6. 项目管理上的,例如,svn提交,分支,合并,git提交,分支,合并

项目中遇到问题,要记录下来,方便他人,也方便自己,面试的时候拿出来看看就ok了,别人的还得理解,
自己的看看就能记起来了!作者就是因为太懒了,没做记录,都石沉大海了!哭。记得自己不知道的,
一定要回问面试官,这样影响更深刻,哈哈

3.说说你在这个项目中用到了那些知识.

//其实第一个问题已经包含了这个问题的回答

从以下几个方面

  1. 用到的第三方库包,例如:用Rxjava来做异步操作和流程控制,用retrofit来做网络请求,
    用picasso来做图片显示和缓存库,用EventBus来做线程间通信,用DBflow来做数据缓存,等等,这些个库的好处和短处(其实我也不知道,有没有大神来回答下,哈哈)
  2. 如果对android中的设计模式比较了解,也可以说说,例如,工厂模式,单例模式,适配器模式等等,具体可以看文章末尾的链接
  3. 项目架构,可以说说自己比较熟悉的,比如说说MVP的原理
  4. 要是那种常驻后台的应用,还可以说说后台保活的方案
  5. 其实基础一点的可以说说控件的使用,RecyclerView,ScrollView,自定义Dialog,自定义Popwindow,AutoCompleteTextView,等等
  6. 多线程的使用,数据流的使用
    等等。

关键是这个问题,一定要说自己熟悉的,因为面试官最喜欢问,用这个的长处和短处(这个问题真是坑死我了。流汗),
如果不熟悉就趁现在赶紧熟悉熟悉,背都得背下来啊,,

4.你最擅长的技术是哪方面,讲讲.

//我觉得这个问题也是一个坑
  1. 不能说很擅长,要谦虚点,就是相对于其他方面,我对这个了解的多一点
  2. 就拿上面那些个知识点其中一点(用的最多,对原理很清楚,可以举一反三的知识点,最好是你面试官不知道的,哈哈)来说说

5.地图,即时通讯,自定义View这些你做过吗.

  1. 这个问题就要看项目了,最好是带着手机,给面试官看你做的项目
  2. 即使以往做的项目中没有集成过这些,没有自己写过控件,你也可以说熟悉这方面的api,有自己写过demo,
  3. 说明你是一个爱学习的好孩子哈,没有写过这方面demo的同学得赶紧熟悉熟悉了,文章末尾有链接可供参考

福利

面试中,作者遇到了一个很憋屈的问题,对于有些控件和库的发音说不出口,特地记录在此,如果有同学跟作者一样那趁现在练习练习,不要在面试的时候出丑,哈哈

英文 翻译 -> 中文发音
Presenter 支持人 ->普热身特
Picasso 毕加索-> 疲擦手
Retrofit 改造->瑞去哦菲特
RecyclerView 回收View->锐赛可乐View

文章涉及到的知识点

android设计模式系列
MVC,MVP,MVVM与架构经验谈
自定义View系列
百度地图android api
高德地图android api
RecyclerView的使用
Okhttp上传下载
Android内存优化之OOM

Activity与Fragment通信
65536方法限制解决

如上描述中有任何错误请指出,作者会感激不尽!错别字也算哈

    原文作者:熏银
    原文地址: https://www.jianshu.com/p/e79142f2820b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞