2018年广州Android面试题(技术+总监+人事)

一,技术面

不用多说,技术是至关重要的一面。

1.说一声你对handler的理解

2.安卓线程间通信有哪几种方式

3.能在子线程创建handler嘛?有什么要注意的吗?

4.Looper能创建多个实例嘛?能自己创建Looper实例嘛?

5.在子线程创建的handler能与主线程通信嘛?如果能怎么实现。

6.handler,asyncTask有什么区别?

7.说一下为什么要用线程池?线程池的几个参数,以及它是怎么工作的?核心线程数一般有多少?

8.屏幕适配方式

9.各大图片框架之间的区别,如果让你自己实现,怎么实现?

10.okhttp的源码了解过吗?(回“能”的话,下一个问题不用我说了吧(๑˙ー˙๑))

11.二叉树排序方式

12.冒泡排序,选择排序,快速排序

13.二分查找(手写)

14.Activity启动方式和使用场景

15.进程间通信方式

16.kotlin有什么优点,或者说你在使用它之前做了什么考虑?

17.系统的启动流程,从桌面点击图标开始。

18.自定义view的实现,以及注意事项

view的绘制流程

19.事件分发

20.安卓的动画有哪几类,有什么区别

21.反射能反射私有方法以及静态方法嘛?

22.tcp,udp的区别

23.为什么要三次握手

24.tcp包过大怎么办?

25.内存泄露(怎么定位问题所在),性能优化

26.MVC和MVP的区别,为什么要使用MVP?MVP有什么缺点嘛?

27.Eventbus的原理

28.你知道哪些设计模式?

29.单例有哪几种?单例为什么要双重检查,优点? 那么双重检查就绝对是安全的嘛?

30.既然双重检查还不是绝对安全的,那么有没有办法完善呢?(我回答静态内部类,利用类的加载过程安全的) 如果我非要用双重检查的方式,有没有办法?

31.多个进程,会创建几个application实例?(有的问:oncreate会走几次)

32.anr怎么定位

33.LRUCache原理

34.网络传输你们是怎么加密的?

35.Tinker热修复的原理

36.介绍一下什么是NDK

37.如何实现一个bug统计框架(如bugly,友盟)

38.混淆的注意事项(反射不能混淆等),第三方框架能混淆嘛?

39.Linux的基本命令

40.apk瘦身技巧

41.webp使用的注意事项

42.断点续传实现原理。怎么从断点处继续下载?下载完怎么确保文件是正确的?

43.卡槽函数,EIT造型,IOC(我在简历上写了……)

44.黄油刀(butterknife)实现原理

45.rxjava是如何实现线程切换的

46.JVM的相关知识

二,总监面

    一般来说,总监比较少面技术,当然我说的是安卓,可能大部分总监不懂安卓吧!所以他们更倾向于面你的能力,学习能力,解决问题的能力。

0.自我介绍

1.项目中有没有遇到什么难题?或者你认为比较棘手的问题?

2.如果你项目中遇到一个从来没遇见过的问题,你会怎么办?

3.假如有个流水线,有10个环节,到了最后一个环节出问题了,你怎么快速定位问题所在?(可从二分法回答)

4.有个一段音频从后台到安卓端播放,突然发现安卓端播放丢帧了,你怎么定位问题所在(排除法,对比法,参与对象等入手)

5.职业规划

6.算法(基本要求:冒泡,选择,快速),数据结构

7.有看过安卓相关的书籍嘛

8.自己的优缺点…

三,人事面

    一般能到人事基本上稳了…除非你工资远远超出他们预算…

0.自我介绍

1.倘若你到现场为客服调试,客服提了一些不合理的需求,你怎么回他?(考你随机应变能力)

2.离职原因(必问)

3.对我们有什么要了解的嘛?(面之前最好了解一下他们的产品,这时候就能用上。)

4.上一家公司有人让你很尊敬的人吗?理由

5.对加班的看法(有些是真加班,有些是看你愿不愿意为公司付出而已…)

6.把我当成一个用户,不懂什么技术,给我介绍一下你们的产品

7.手上有没有其他公司offer

8.选择公司的时候,你更看重什么?

9.剩下的就是调查户口了…

你可能感兴趣的:(2018年广州Android面试题(技术+总监+人事))