-
用MultiDex解决何事?其根本原因在于?Dex如何优化?主Dex放哪些东西?主Dex和其他Dex调用、关联?Odex优化点在于什么?
-
Dalvik和Art虚拟机区别?
-
多渠道打包如何实现(Flavor、Dimension应用)?从母包生出渠道包实现方法?渠道标识替换原理?
-
Android打包哪些类型文件不能混淆?
-
Retrofit主要实现机制?Retrofit的作用、原理
-
动态代理静态代理区别?
-
模块化怎么做?怎么设计?接口发现暴漏怎么做?基于什么基本思想?
-
MVC、MVP、MVVM应用和彼此本质区别?
-
Glide缓存特点
-
擅长哪个方向?
-
算法题:两个线程分别持续打印奇数和偶数,实现两个线程的交替打印(从小到大)
-
模块化、工程化架构思想
腾讯
腾讯是一个哥们帮忙内推的,我也挺想去腾讯的,但没有面过,能记住的内容就这么多了。
-
GC机制;
-
RxJava有没有了解;
-
内存泄漏怎么排查;
-
app的页面突然卡了一下,怎么排查?
-
ANR怎么排查?定义是什么?
-
使用过哪些开源库;
-
对OKHttp有哪些了解?这个框架设计怎么样?
-
Databinding有哪些了解?
-
EventBus了解吗?
-
安卓的注解有什么了解?
-
RelativeLayout和LinearLayout怎么选?为什么?
-
自定义Layout主要有那几个流程?
-
滑动过程卡顿,刷新率太低,怎么排查?
美团
美团是这几次面试中最顺利的一次了。
-
tcp中的3次握手。get和post的区别
-
TCP和UDP的区别,五层协议
-
线程和进程的区别,线程状态,同步锁,Java里面应用到同步锁的情景,Android哪里用到了同步锁
-
项目中做过哪些优化?简单说下。
-
List中的ArrayList和LinkedList的区别,hashmap和hashtable的区别,hashmap的底层实现,如何解决hash冲突
-
算法,一个三叉树,求深度,求最大节点数
-
IPC有哪些(Messenger,AIDL,socket),如果让你分类,如何将它们分类,为什么?
-
Broadcast可以跨进程么?如果可以,是通过什么实现的
-
了解Binder么?
-
了解Service么?说下bindService和startService的区别?
-
项目中的bug,你是如何解决的?
快手
这次面试流程比较长,快手感觉很注重算法,我后来也被HR答复算法需要加强,想去快手的话多刷点题吧。
-
Android/ 布局优化
-
Activity启动模式
-
RecyclerView和ListView区别
-
Handler机制,loop方法为何不会造成ANR
-
View绘制流程
-
SingleTop和standard启动模式下,生命周期回调有何不同
-
onStart和onResume区别
-
Java/ 面向对象三大特性
-
Array和Linked区别
-
HashMap底层
-
进程间通信方式
-
equals和==区别
-
线程间加锁的方式
-
设计模式
-
synchronized的不同使用
-
异常
-
线程池
-
创建线程的方式
-
OS/ 死锁
-
网络/ tcp和udp的区别
-
合并k个有序链表
这就是本次面试记录下来的一些内容,从投简历到面试一系列环节中还是可以感受到就业比较难,我自己水平也有很大的提升空间,总之不要随便裸辞,时刻做好技术提升的准备。