好了,开始上面经吧:
==============================================================
CVTE一面:
介绍项目架构
MVP,MVC 介绍及优缺点
Butterknife源码(直接问源码~~~~)
EventBus源码
腾讯Bugly 原理及实现,如果是你的话,你怎么实现日志上传传策略,答到 后台sevice+守护线程
安卓跨进程通信方式
内存泄露,如何检测内存泄露 LeakCany原理
Binder 原理
(加一个)冷启动优化
项目中文件的下载
断点续传的实现
Java线程安全,jmm,可见性,原子性,有序性 synchornized和lock的区别,以及原理
TCP 如何实现 可靠传输?
拥塞控制的四种方法,这个实在想不起来
安卓学习了多长时间,平时怎么学习安卓?
CVTE二面:
设计模式的六大原则,对六大原则的理解,在项目中的应用
说说你最熟悉的三种设计模式
单例模式如何实现线程安全
Builder模式 和set方法有什么区别
观察者模式 推和拉,有什么区别
MVC MVP MVVM 的区别,在项目中的应用
MVP如何进行解耦合,P如何实现V 和M 的交互
看过什么源码?
Retrofit源码,如何实现动态代理,和rxjava如何交互,可不可以设置多个convertFactory,如果设置了怎么办?如何动态确定
Volley源码,缓存超时如何判断
然后是编程 题,不能使用 java数据结构,实现栈,需要考虑 线程安全 ,泛型 ,扩容, 限定 5分钟
能不能优化,scyronized 和 volitle 区别,votile原理
IPC方式?
Binder原理?Binder连接池(这个真不会)
Client调用Server方法的过程?
看过Framework那些源码?
自定义View 需要注意的问题,MesureSpec, 自定义View 动画的实现
Handler原理?子线程如何实现Handler,Message如何存储在MessageQueen?
有没有学习什么新技术,有没有看今年的Google IO 大会。
面试官看了我的博客,问了一些简单的问题
金山WPS一面
介绍一下Volley,okhttp,retrofit
volley的基本流程,OKhttp的拦截器链,retrofit的动态代理
photoview如何实现
Glide与Picasso区别
如果让你设计图片加载框架,你如何设计(三级缓存机制)
插件化,热修复,andfix原理,如何做到机型适配(native如何做到机型适配 我很慌啊~~~~)
Hashmap原理,如何实现线程安全,HashTable,CourrentHashmap原理
介绍一下java中的锁
单例模式,dcl存在的问题,如何解决
http/https区别,HTTPS加密如何实现。
get/post区别,post 如何实现密文传输
事件分发机制
activity的四种启动模式,及其应用场景
Handler的使用及其原理,子线程如何实现
eventbus干什么的,和handler有什么区别
eventbus能否实现IPC
IPC方式
AIDL底层,没问Binder原理
金山WPS二面
hashmap的实现方式
hashmap如何查找元素
static关键字
final关键字
volatile关键字
单例 线程安全的实现方式,细节
事件分发
volley源码
java函数的访问权限
图片缓存框架的区别
java垃圾回收
算法:
二叉树遍历
中序遍历的下一个节点(剑指offer原题,看了四五遍,还没记住,该打)
翻转链表
二叉树深度
途牛一面
应用上线细节(说要搜我上线的应用)
retrofit源码涉及的设计模式
handler asynctask HandlerThread 的源码
热修复与插件化
Java类加载机制
线程,线程池,线程池核心参数
30M图片的加载,如何预防oom
内存泄漏 的检测与预防
事件分发机制
自定义view
listview 与recycleview 的复用和回收
tcp udp区别
三次握手和四次挥手(这个真没背,那图怎么记啊)
360一面
static关键字
syrizoned原理
自定义控件
事件分发
滑动冲突
四种引用
弱引用的使用
内存泄漏
插件化 dla原理
65535方法的解决
360二面
介绍一下项目
service的使用
IPC java 安卓 把知道的IPC 全说出来,p/v 信号量 管道 信号量 ,复制黏贴版 什么的
性能优化
ANR
OOM
内存泄漏
UI卡顿
BItmap优化
Listview优化
launcher的启动过程
volley源码
butterknife源码
热修复,andfix,sophix,hotfix原理
因为金山二面,和360在同一天面试,金山二面约了45分钟,结果聊了70分钟,错过了360二面的时间,二面面试官一脸嫌弃的看着我。当然这也怪我没安排好时间,希望大家以后面试时间好好安排一下。
腾讯 一面
activity的四种启动模式,具体场景分析
volley,OKhttp有什么区别
OKhttp 复用连接池怎么实现的(这个没看过,面完赶紧看)
volley的源码,OKhttp源码,eventbus源码
httpclient,httpURLconnection内部实现(太原理了,没看过)然后问httpclient,httpURLconnection是哪个组织开源的,黑人问号脸???,还有这种操作。哈哈 。我知道。httpclient是Apache开源实现的,httpURLconnection是sun开源实现的
activity的启动流程(面试完了赶紧看),说没看过,看过其他framework源码,说来一下handler,asynctask源码
Android的任务栈
类的加载过程
不允许写代码,如何定位anr。
service的保活
极光推送的原理 ,心跳包的发送间隔时间(我回答的是5s,面试官让我好好思考思考,然后回答根据具体的应用场景进行判断。巴拉巴拉一大堆)
热修复原理,andfix,hotfix源码?
方法数超过65535怎么办?分包是哪个版本开始支持的,之前的版本不支持,如何加载dex文件。
腾讯 二面
介绍第一个项目的功能,大部分问题是根据第一个项目问的
用户登录与服务器进行交互的过程,如何优化。加密:HTTPS,base64,md5,非对称加密算法 及其使用场景。
listview 如何进行优化,无限下拉加载如何优化
bitmap的优化
jpg和png图片的区别(这个打错了,面试官让我下去查一下)
三级缓存机制,什么时候内存缓存,什么时候磁盘缓存
热修复,阿里andfix,腾讯 hotfix 原理,方案对比
腾讯面试官 还是主要看 思考过程,对安卓整体的理解,而不是答案。后面网易也是一样的。
可能是因为春招面过,评价不太好(当时准备基础,没想到面试官面问框架源码,16分钟,gg),导致秋招无法通过。
网易云音乐一面
安卓常用的布局,特点。LinearLayout和relaviteLayout 区别
fragment与view的区别
fragment的切换方式
fragment的生命周期
fragment的内存泄露
bitmap优化
反射的作用?编译时还是运行时?
java IO 多线程
抽象类和接口的区别
hashmap的底层实现,hash算法,为什么选择hashcode 高16位于低16位异或?直到问到不会~~
synchronized 与reentrantlock 的区别? 等待可中断的内部实现(what~~~ 说了一下如果是我我该怎么实现)
eventbus的内部实现 一直问到不会~~~