Android面试题
2019年底互联网寒冬和2020年初新型冠病毒双重打击下的面试题总结
头条(西瓜视频团队)
1. 浏览器中输入www.baidu.com发生了什么?详细的流程
2.Flutter和Rn 对比有什么异同或者优势?渲染区别
3. 你们Flutter项目里状态管理如何做的?
4. Flutter的Widget局部刷新如何实现的?原理是什么
5. Flutter里实现一个贝塞尔曲线是如何做的?原理是什么?
6. 说说MVVM,有什么优势
7. 反转链表,分段反转链表
8. 手写单利模式(静态内部类方式)
9. Int[] a,下标i<j,找到任一一对ai<aj,以数组的形式返回i,j。(a可能是一个降序数组,找不到满足条件的下标)
10. 考察设计:设计开屏广告,尽量详细写出类及类中的方法,以及策略
11.设计实现一个收集ANR异常的组件?如何实现?上传策略?
12. [endif]Handler原理
13. 数据库两个表如何实现左联
14. httP和https 的区别
15. 内存优化,内存泄漏,性能优化
16. 一个View什么时候会接收到Cancle事件
爱奇艺
1. Thread1、thred2、thread3全部执行结束后再执行thread4,如何实现
2. Java中String s=”abc”及String s=new String(“abc”)的区别
3. startService和bindService生命周期的区别?
startService然后bindServce,只调用stopService或者unBindService生命周期会执行哪个方法,service会被销毁吗
4. 垃圾回收?垃圾回收算法?GC root都有哪些对象?
5. 策略模式和命令模式有什么区别?说一下代理模式
6. 讲一下MVVM
7. ViewModel原理及源码
8. AMS干什么?WMS干什么的?
9. 内存泄漏、内存溢出、性能优化
10. Binder通信机制
11. Handler消息机制,为什么死循环不会卡死线程?
茄子快传
1. Thread1、thred2、thread3全部执行结束后再执行thread4,如何实现
2.按A->B->C顺序启动Activity,如何实现在C中启动A同时B和C不在任务栈中,并如何传数据到A中
3. 手写单利模式
4. 事件分发
(1)父控件是RecycleView,v1是RecycleView的一个item,如何实现左右滑动v1响应,上下滑动RecycleView响应
(2)一个父控件包含RecycleView和v1,RecycleView撑满父控件,v1(例如高100dp)在RecycleView上,如何实现左右滑动v1响应,上下滑动RecycleView响应
5. LinerLayout中包含两个view,宽为300dp,view1的layout_weight=1,vieW2的layout_weight=2,view1和view2的宽分别是多少?Layout_width需要设置成什么?Layout_width=“match_parent”会生效
6. sparsearray和hashmap相比优缺点?
7. 头条APP,首页tab快速滑动,如何保证优先加载最后停留页面的请求?
8. Fragmentpageradapter和 FragmentStatepageradapter 的区别及F1->f2->f3->f4滑动切换,F1生命周期有什么不同?
9. 项目中线程如何管理的,线程池是如何配置的?
10. 内存管理,内存泄漏,还做过什么性能优化
11. 做过httpS网络优化吗?如何防止中间人攻击
APUS
1. 讲一下Kotlin柯里化?
2. 流式编程
3. Binder驱动是什么时候初始化的,Server Manager是一个进程吗?Server Manager什么时候初始化的?如何找到Server Manager IHandle
4. Handler相关对象及对象之间的关系?Handler 和LOOPER如何对应的
5. 广告业务设计与实现,做了哪些策略?如何设计?怎么实现的?预加载如何保证广告数据不浪费,请求回来不显示影响计费的问题?开屏广告各家SDK有什么相同和不同?有哪些优化?所有的广告都是统一策略吗?
6. MVVM实现,MVC到MVVM有什么提升?
7. 保活手段都有哪些?8.0以后基本都失效了
8. 如何在桌面直接弹出弹窗?涉及到权限
9. 做过锁屏相关的需求吗
10. 对gradle熟悉吗,gradle处理了一些什么
11. Apk打包流程优化
搜狗(智能语音笔团队)
三轮技术+一轮业务+一轮HR
1. 手写生产者消费者模式
2. 合并两个升序数据int[] a,int[] b
3. Binder通信机制
4. Handler消息机制及原理
5. 线程同步方式有哪些
6. 讲一下线程池
7. 进程和线程的区别
8. Wait和sleep的区别
9. ViewModel的原理
10. 为什么使用MVVM,有什么好处?
11. 事件分发机制,
12. 接口和抽象类的区别
13. View的绘制流程,父View是Match_parent,子view是worp_content,子view测量完是什么模式
虎牙直播(北京是新业务)
1. 多进程模式下sharprefrence有什么问题吗?如何避免?Commit和 apply的区别?
2. Databing实现原理
3. Evevtbus实现原理
4. 进程和线程的区别
5. Wait和sleep的区别
6. 锁的种类及区别
7. MVC、MVP、MVVM区别
伴鱼口语
1. 动态代理,Proxy.newProxyInstance三个参数代表的意义
2. 线程池有几个参数?分别代表什么意义?Android常用线程池有几种分别是什么
3. ActivityA->ActivityB,按返回键生命周期顺序
4. 事件分发机制
5. OKhttp缓存原理
6. View的绘制流程
7. 如何实现一个边长为宽度一半的自定义view
8. 笔试题
9. 内存泄漏怎么处理的
10. 性能优化做了哪些
猎豹移动(机器人团队)
binder一次通信最大是多少?4M
Binder使用中会遇到卡死情况吗
为什么使用binder机制(对比其他Linux ipc机制 优势)
binder通信的流程
binder通信数据传输具体流程
binder传参可以自定义对象吗
Binder传参序列化
广告skd介入都做了哪些机制?各家SDK广告缓存池,生产者消费者模式管理广告
讲一下mvvm怎么实现的,各个层的具体实现也问到了,请求及数据解析,http和https的区别,tcp三次握手,为什么三次而不是两次
Synchronize原理,其他同步有了解吗实现原理(重入锁及原子类)
handle消息机制,为什么主线程不会卡死,对,eople 机制了解多少
会RN及JS吗
flutter和rn有什么区别
做过哪些性能优化?内存泄露相关, Leakcanary的实现原理
怎么处理Anr?提到blockcanary就问它的实现原理
学过其他语言及最新技术吗
OkHTTP3拦截器原理
新东方在线
1. apk打包编译流程
2. Rxjava线程转换的原理
3. Ams干什么的?什么时候启动的
4. view绘制流程
5. AOP解决快速点击
6. 手写单利静态内部类的方式
Kotlin有什么优势
Android各个版本的特性或变化