某互联网公司Android岗社招经历分享
第一面
1、手写算法题。猫扑素数;1到n,求1的个数;单词反转;
2、Activity的加载模式。
standard,singleTop,singleTask,singleInstance。
3、什么时候会用到singleTask?
在MainActivity的时候用到
4、Handler机制?
5、一个线程是否只有一个Looper?
6、如何保证一个线程只有一个Looper?
7、多线程的方式有哪些?
8、ANR异常发生条件
(1)5s内没有响应用户输入事件
(2)10s内广播接收器没有处理完毕
(3)20s内服务没有处理完毕
9、如何分析ANR?
10、自定义View和ViewGroup
11、事件处理:分发,拦截,处理。
12、GC算法
13、View动画,属性动画,帧动画。再说下View和属性动画区别。
第二面
1、OkHttp原理?
2、Retrofit原理?为何用代理?代理的作用是什么?
3、ButterKnife原理?用到反射吗?为什么?
4、ANR异常如何查找并分析?
5、JVM内存模型?性能调优?
6、垃圾搜集算法有哪些?G1算法?
7、Http和Https的区别?
(1)Https是ssl加密传输,Http是明文传输
(2)Https是使用端口443,而Http使用80
(3)HttpsSSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比Http协议安全
(4)Https协议需要到CA申请证书
8、加密算法有哪些?对称加密和非对称加密的区别?
(1)MD5,SHA1,Base64,RSA,AES,DES
(2)对称:使用相同密钥,需要在网络传输,安全性不高。
(3)非对称:使用一对密钥,公钥和私钥,私钥不在网络传输,因此安全性高。
9、TCP的三次握手?两次行不行?为什么?TCP攻击知道吗?如何进行攻击?
10、内存优化如何做?
11、看过那些源码?
12、会对代码进行review吗?何时review?怎么review?
13、项目中遇到的让你棘手的问题?多久解决,怎么解决?
14、平时如何学习?何时学习?怎么学习?学习渠道?
第三面
1、前几次面试感觉如何?
2、你现在的APP日活是多少?
3、你现在如何处理崩溃日志?
4、你觉得小团队好还是大团队好? 5 你的优点和缺点说下?
6、你的发展方向说下?是先讲究宽度还是讲究深度,为什么?
7、为什么离职?
8、其他小问题,如哪里人啊?现在工资怎样?要求如何,何时到岗啊?有什么问题要问我的吗?
#社招##安卓工程师##面经#