Android可能会遇到的几种类型面试题

原创 2016年08月01日 22:43:25

题外话:

      生活本就有许多不如意,谁不想家庭幸福,谁不想开心快乐,谁又不想过得舒舒服服,但,天下从来都没有免费的午餐,就算是李刚他儿子也有属于他的烦恼,

所以,我们有什么理由不笑对生活呢?!当感到无能为力时,请问问自己,是否真的够努力?--------2016.08.01

      正文分割线------------------------------------------------------------------------------------------------------------------------------------------------------------------

      

     最近在复习准备找工作,搜索网上一些笔试、面试题时不乏经验之谈,也总结、普及了不少知识,但作为一个“笨小孩”,还是没能扎根心底,究其原因,一句话:

--------------没过脑子!-----------------------------------

     故打算将今后在这个过程中所了解到的,学习到了,都作整理并加上自己的理解记录之,也算整理思路吧。

     本文是根据某位有5年Android开发经验的前辈最近的面试经验整理的技术要点,首先向前辈致敬!~

     Android开发属于技术岗,一般过了简历和笔试后,面试大多分三轮;

 第一轮    基础面

 1. 最常用的Android基础知识

     包括很多,像四大组件(生命周期)、Andoroid内存回收机制、如何解决OOM、线程创建的方式、多线程的通信、异常相关(Java异常处理、平时如何处理抛出的异常、当用户用APP的时候发生异常咋办)、指定某个功能,问怎么实现、界面相关、Android系统原理性的东西(多看例如handler原理、WindowManager,且从原理上进行分析(《Android开发艺术探索》就是从源码、原理上深入分析这些东西))等

 2. Java基础知识

       Java层面的东西,像多态、抽象类、多线程、内存管理;

       Android的内存回收机制和Java比较的区别?

       Android的dalvik虚拟机与Java虚拟机之间的区别?


 3. 项目中的技术点

(1)简述项目里都用到了那些技术点?做项目的过程,遇到的问题?怎么解决的?项目里遇到过的最难的一个问题是什么?怎么解决的?

(2)你的项目里有没有什么比较NB或者有亮点的地方?

(3)谈谈某个项目?怎么实现的?(一定要对自己做过的项目很熟悉) 

   

4.能侧面反映性格、知识、解决问题能力及习惯的问题

    为什么喜欢Android?从什么时候开始学习Android?一开始怎么学习Android?(了解学习能力、学习方法)

    平时都上什么技术论坛?(用知乎涨姿势,看源码用Github)?

    遇到问题一般都怎么解决?(看源码、看API、网络查看别人的分析总结)

    最近都看什么博客?关注了什么新技术点了吗?(了解你是否在关注新技术?是否真的喜欢?追求创新)

    指出某个开源框架,问你有没有研究过它的源码?(看你是否真的研究过,平时可多看开源框架的源码)

    例如,2016年6月份去面试时,那位有5年Android开发经验的前辈就被问到一个问题:

   你了解过Android的黑科技么?比例Android 5.0之上有一个辅助功能,若用户开启后,就能像豌豆荚那样自动安装app,等同于拥有了root权限,但手机重启后,这个就自动关闭了,有没有办法可以自动打开呢?面试官提出有很多不知名的小APP都实现了这个功能,但很多大公司却还没用。

-------这就要求面试者关注最新技术,并喜欢开动脑子,是在回答不了的问题,也希望听到你的思路,而不是一句简单的“不知道”

---这个问题,面试官说他们研究了很久才发现,这些小APP上开启了一个进程(或service,具体时什么,还有待进一步了解)来守护,因此能够开启

5.简单的算法和数据结构、设计模式相关

Android开发人员不是专业的算法工程师,不需要有多厉害的算法背景,但数据结构和算法相关的基础知识还是必不可少。比如:

(1)二分法(二分查找):在一个有序数组里,多次查找时从中间点开始对比,大于就右边找,小于就左边找

(2)队列的实现

(3)单例模式的code等

 第二轮    进阶面(需要了解更深层次的东西)

1. Android事件分发机制

从WindowManager→Window→Decorview→子View.当所有的View都不处理事件时,事件最后会传递给Activity的TouchEvent上

2. Android绘图机制原理

     onMeasure、onLayout、onDraw

   举例:一个自定义的滚动viewA里面放另外一个滚动的ViewB?

-----把ViewB将onMeasure里面的高设置为最大,就能解决冲突问题

    onMeasure里面的几个参数等

3. WindowManager的相关知识

4. 进程间传输方式

 进程间通信的几种方式(Bundle、文件共享、Messenger、ContentPrivider、Socket等)

5. Java内存管理机制

6. 一些常用的list、map原理以及子类之间的差别

7. 线程、线程池相关的知识

8.网络编程、异步编程相关

例如,推送怎么实现的?

Android发送网络请求的过程?

9.算法/数据结构题

  二面要考数据结构和算法的话,一般会侧重于结合实际场景,让你写出一个算法,要具备的能力就是抽象,处理问题的思路与细节,以及最基本的编码能力。

   例如:有一个数组最多存储6个数,若有普通用户的话,存储4个vip客户,另外两个是普通用户(留出一定的空间给普通用户,让考虑全面点儿)-----首先要考虑各种情况,非空。。。。每个条件里写上对应的存储数据的过程

例如:不能用ArrayList,用数组写一个队列------

主要实现put()、get()、peek()方法,考虑下队列的特性,一端进入,一端出去

               

 10.动画实现原理

   动画实现原理,handler原理,一步步深入各种原理?

   这就要求平时做了的要深入理解原理,吃透

11.拿出面试公司所做的APP,打开某一页,让说说怎么实现的?   或者说有什么问题?有什么优化策略?

    主要考查抽象能力以及分析问题的能力,这个可以平时多做练习,例如选择一款APP,对着某一页,就想别人是怎么实现的?为什么要这样做?有什么地方可以优化?

12.综合性问题

 例如,Service上能不能弹出对话框?

 面试官说,Dialog必须要依附于Window才能显示出来,Toast其实也是一个Window

     ------可以弹出,但弹出时有条件的,条件是:

   必须在AndroidMenifest里注册系统权限,先显示Dialog时必须要加一个flag

   理由:系统对话框可以在低电量的时候弹出对话框,我们同样页可以采用这种方式实现

          

 经验:平时要多参加团队,多做项目,很多东西不是用了或做出来了就好了,要去深入剖析它的原理

 第三轮    HR面(leader面)

问的问题比较有深度和广度

比如你的兴趣是什么?

个人发展问题?有什么规划?

你最擅长什么?(UI?不妥当,根据需求吧)

薪资问题(大公司要慎重,如果心里实在没底,可让对方给一个合理的薪资范围)


  

   



Android面试总结(不定时更新版)

前言因为个人原因想换个公司,所以最近一直忙着交接工作和准备面试,可能准备得比较充分面了几家都过了,然后进了第一家,一直想写个文章记录下面试的事情,所以每次面试完我就在笔记本上记录了面试的问题,然后断断...
  • lxzmmd
  • lxzmmd
  • 2016年06月12日 16:10
  • 2549

Android算法面试题(1)

Android算法面试题(1)相信Android程序猿在找工作的过程中经常会遇到面试算法,下面是我记忆中的一些面试题,整理如下(尊重原创,转载请注明出处。原文地址):1, 一个房间有100盏灯(全是关...
  • WECANACE
  • WECANACE
  • 2015年10月21日 11:37
  • 3384

Android 面试精华题目总结

下面的题目都是楼主在android交流群大家面试时遇到的,如果大家有好的题目或者好的见解欢迎分享,楼主将长期维护此帖。 1、请解释下在单线程模型中Message,Handler,Message Q...
  • lmj623565791
  • lmj623565791
  • 2014年04月18日 14:39
  • 178751

Android2017最新面试题(3-5年经验个人面试经历)

2017最新Android面试题,面试技巧
  • huangqili1314
  • huangqili1314
  • 2017年05月28日 13:07
  • 22007

2016Android某公司面试题

2016年4月某公司面试题及面试流程。 静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它? 静态内部类:使用static修饰的内部类 内部类:就是...
  • jdsjlzx
  • jdsjlzx
  • 2016年04月20日 16:28
  • 23080

Android程序员必会的十大基础面试题----阿冬专栏

Android程序员必会的十大基础面试题!   1   Android中五种数据存储方式分别是什么?他们的特点?   Android提供了五种存取数据的方式 ...
  • zhangdong305
  • zhangdong305
  • 2016年10月14日 21:09
  • 5416

Android 算法排序面试——七大基础算法(附源码)

导语 在计算机软件专业中,算法分析与设计是一门非常重要的课程,很多人为它如痴如醉。很多问题的解决,程序的编写都要依赖它,在软件还是面向过程的阶段,就有‘程序=算法+数据结构’这个公式。算法的...
  • csdn_aiyang
  • csdn_aiyang
  • 2017年06月12日 15:17
  • 1291

Android之算法编程题

Android面试之编程题
  • gaolei1201
  • gaolei1201
  • 2016年10月11日 12:14
  • 1847

2016Android某公司面试题

2016年4月某公司面试题及面试流程。 静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它? 静态内部类:使用static修饰的内部类 ...
  • qq_35114086
  • qq_35114086
  • 2016年09月17日 13:05
  • 906

Android面试题集合

http://yuweiguocn.github.io/android-interview-list/Java基础简述题(一) &和&&的区别。 Get和Post的区别 http response c...
  • axi295309066
  • axi295309066
  • 2017年01月05日 09:28
  • 1053
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android可能会遇到的几种类型面试题
举报原因:
原因补充:

(最多只允许输入30个字)