OPPO面试
第一面
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、其他小问题,如哪里人啊?现在工资怎样?要求如何,何时到岗啊?有什么问题要问我的吗?
腾讯
三轮面试 一面
1、算法题 通电小球
2、Android 沉浸式状态栏 怎么实现的
3、事件处理函数有哪几个,父View 子View 监听同一个事件,重写哪些方法。在哪个View重写?
4、ViewRootImpl接受事件吗?
5、apk编译打包流程 V1,V2 签名区别
6、利用logging监听方法耗时,会不会让app增大延迟。
7、插件化怎么加载资源的?
8、JVM怎么保证gc效率跟线程运行效率的 ?
9、如果android没用对应的view,flutter能运行吗? 手写单例模式,volatile 跟 synchronized区别?
10、接口暴露,但是不让别人调用,有哪些办法?
二面
1、为什么采用flatbuffer? 比Json好在哪里?
2、如何处理Crash,NativeCrash呢?Google是怎么做到的?如果上报过程中再次产生Crash能不能捕捉到?
3、uncaughtException是被谁调用的,如果再次崩溃能不能捕获到?
4、Linux是怎么知道app崩溃的,如果想要在被kill前 做一些耗时操作,该怎么做?
5、考虑设计一个crash捕捉模块。
6、100万个数字求100个最大值。
7、手写快速排序算法。
三面 (GM面)
1、kotlin比Java好在哪里,是函数式编程吗?
2、如何防止DNS劫持?
3、如果让你实现一个调试器,你会怎么设计?静态调试?动态调试呢?
关于面试的充分准备
一些基础知识和理论肯定是要背的,要理解的背,用自己的语言总结一下背下来。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,我能明显感觉到国庆后多了很多高级职位,所以努力让自己成为高级工程师才是最重要的。
好了,希望对大家有所帮助。
接下来是整理的一些Android学习资料,有兴趣的朋友们可以关注下我免费领取方式。
①Android开发核心知识点笔记
②对标“阿里 P7” 40W+年薪企业资深架构师成长学习路线图
③面试精品集锦汇总
④全套体系化高级架构视频
**Android精讲视频领取学习后更加是如虎添翼!**进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可免费领取!
破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水!
[外链图片转存中…(img-2VTqdtIK-1710926881206)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可免费领取!