Android面试题目20171009

关于技术准备,主要是包含下面几项:

项目经历
Java基础
设计模式
算法
网络相关知识
Android基础
Android源码
Android性能优化
开源库源码


蓝厂 :
一面就挂了,主要是以下几个问题:
事件分发流程
View的渲染机制
动画的原理,底层如何给上层信号
编译打包的过程
Android有多个资源文件夹,应用在不同分辨率下是如何查找对应文件夹下的资源的,描述整个过程
ANR的原理(回答主线程5秒阻塞是不行的,要读源码)


度娘 :
Bitmap 使用时候注意什么?
Oom 是否可以try catch ?
内存泄露如何产生?
适配器模式,装饰者模式,外观模式的异同?
ANR 如何产生?
String buffer 与string builder 的区别?
如何保证线程安全?
java四中引用
Jni 用过么?
多进程场景遇见过么?
关于handler,在任何地方new handler 都是什么线程下
sqlite升级,增加字段的语句
bitmap recycler 相关
强引用置为null,会不会被回收?
glide 使用什么缓存?
Glide 内存缓存如何控制大小?
如何保证多线程读写文件的安全?


某海外直播公司
一面:
线程和进程的区别?
为什么要有线程,而不是仅仅用进程?
算法判断单链表成环与否?
如何实现线程同步?
hashmap数据结构?
arraylist 与 linkedlist 异同?
object类的equal 和hashcode 方法重写,为什么?
hashmap如何put数据(从hashmap源码角度讲解)?
简述IPC?
fragment之间传递数据的方式?
简述tcp四次挥手?
threadlocal原理
内存泄漏的可能原因?
用IDE如何分析内存泄漏?
OOM的可能原因?
线程死锁的4个条件?
差值器&估值器

二面:
简述消息机制相关
进程间通信方式?
Binder相关?
触摸事件的分发?
简述Activity启动全部过程?
okhttp源码?
RxJava简介及其源码解读?
性能优化如何分析systrace?
广播的分类?
点击事件被拦截,但是相传到下面的view,如何操作?
Glide源码?
ActicityThread相关?
volatile的原理
synchronize的原理
lock原理

三面:
三道算法题,要求在一个小时之内做完。
翻转一个单项链表 1->2->3->4->5->null =====> 5->4->3->2->1->null
string to integer
合并多个单有序链表(假设都是递增的)

四面:

总监面,问了一些java 同步相关的。


由鹅厂与其他公司合资创立的公司

一场笔试加一场面试后挂了,面试官T4级别……。

笔试:
Activity生命周期简述
.常见内存泄漏情景及避免内存泄漏的措施
Actvity启动模式简述
简绘观察者设计模式UML图
算法,求公共子序列(或者是子串,记不清了)
Java四种引用
自定义view重写哪几个方法?
http 的session&cookie的区别
简述工作线程更新UI的方法

面试:
应用最多占多少内存
滑动卡顿如何解决(不同原因及对应处理方式)
自定义view实战
多线程,多进程 相关
Java四种引用的使用


某ding

一面就挂。
XX项目你负责什么
Sqlite 怎么增加一个字段
XX项目中是怎么创建数据库的
Sqlite 怎么删除一个字段
有什么你觉得自己做得好的地方
为什么用Retrofit(一个开源库)
Retrofit与之前的网络库有什么优势
XX项目中你们自己定义的线程池来管理任务,不使用框架,那么,后来新的项目怎么设计的
你认为Rxjava的线程池与你们自己实现任务管理框架有什么区别?
内存泄漏的常见场景
怎么发现&分析内存泄漏


某条

面了三轮技术加一轮HR,HR事业线不错,笑得职业化,其他的没记住。

其他

处理有序数组为什么比无序数组更快 参考StackOverflow
热修复与插件化相关
Integer类是不是线程安全的,为什么
不使用同步锁如何实现线程安全
面试头条的时候在线编程:从上到下从左到右输出二叉树
针对concurrent包下面的一些类的问题

Android面试再也不是“能答出来Activity生命周期就OK”的时代了,你们看前面的面试题,有些问题牵扯到底层原理。另外光是concurrent包下面的东西就能把你问懵逼了。


你可能感兴趣的:(Android面试)