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客户端面试基础(五)-数据结构与算法

链表与数组数组静态分配内存,链表动态分配内存; 数组在内存中连续,链表不连续; 数组元素在栈区,链表元素在堆区; 数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n); 数组插入或删...
  • johnWcheung
  • johnWcheung
  • 2017-06-02 12:32:41
  • 1839

常见Android面试题及答案(详细整理)

成功没有捷径,脚踏实地一步一个脚印,不好高骛远,不急功近利,付出总有回报,不管出于哪个阶段,都要一步一个脚印,踏实的走好每一步。让技术来强大自己,让技术改变世界。...
  • Ericpengjun
  • Ericpengjun
  • 2016-03-16 10:10:15
  • 53750

android面试——数据结构

1. 链表与数组。   2. 队列和栈,出栈与入栈。   3. 链表的删除、插入、反向。 (1)反向链表的定义:   class Node{     public int val;     publi...
  • qq_39037047
  • qq_39037047
  • 2018-03-29 09:21:32
  • 29

给Android程序员的一些面试建议

前言应大家的邀请,写一篇关于Android面试相关的博客,需要说明的是本文只针对Android应用开发,不针对rom开发以及逆向工程。我想面试对于程序员来说是很重要的一件事件,面试结果的好坏直接决定了...
  • singwhatiwanna
  • singwhatiwanna
  • 2015-10-18 23:12:18
  • 56762

常见的数据结构面试题

常见的数据结构面试题,看看你能做出几题来2007年01月11日 星期四 14:15 1.       在一个单链表中p所指结点之前...
  • cabbage_mm
  • cabbage_mm
  • 2008-05-09 09:38:00
  • 15964

[干货]2017已来,最全面试总结——这些Android面试题你一定需要

全网最全的Android面试题总结,2017年跳槽的你必备
  • xhmj12
  • xhmj12
  • 2017-01-25 20:29:45
  • 53453

Android之算法编程题

Android面试之编程题
  • gaolei1201
  • gaolei1201
  • 2016-10-11 12:14:41
  • 2232

Android面试题集合

http://yuweiguocn.github.io/android-interview-list/Java基础简述题(一) &和&&的区别。 Get和Post的区别 http response c...
  • axi295309066
  • axi295309066
  • 2017-01-05 09:28:07
  • 1186

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

2017-2018最新Android面试题 版权声明:本文为博主原创文章,未经博主允许不得转载。 原文链接:http://blog.csdn.net/huangqili1314/article/d...
  • huangqili1314
  • huangqili1314
  • 2017-05-28 13:07:49
  • 92517

【毕设记录】第一篇:开题,整体App计划

都说找工作难,选个毕设也这么麻烦,都几乎可以画个流程图表示这个复杂的过程了! 流程: 舍友帮忙找了位老师 ---> 写好任务书 --->老师觉得“题目”太简单 ---->修改题目 ---->老师同...
  • u011240877
  • u011240877
  • 2015-12-08 17:20:43
  • 2765
收藏助手
不良信息举报
您举报文章:Android可能会遇到的几种类型面试题
举报原因:
原因补充:

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