2024Android大厂面试合集,精选(建议收藏!)

56 阅读6分钟

13.TCP和UDP有什么区别? 讲讲招手挥手过程

14.用过C++开发吗

15.Dalvik和Hotspot虚拟机了解吗?有什么区别?

B站二面

1.说自己做过最满意的项目

2.性能优化你做过哪些工作

3.屏幕适配做过哪些工作

4.遇到过哪些坑(困难点),是怎么解决的

5.如果要你来开发B站的一个页面,哪一个页面可以很快入手

6.用过哪些框架?MVVM?Jetpack有入手吗?

7.用过哪些开源库

6.热修复、插件化都用过,遇到过哪些坑?可以讲讲原理吗

7.为什么想来B站,看哪种视频多一点,点赞多还是白嫖多

8.你觉得B站APP有哪些可以优化的地方

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XrYEMbUI-1611123109283)(//upload-images.jianshu.io/upload_images/24142630-b1861af2420bc8e7.png?imageMogr2/auto-orient/strip|imageView2/2/w/600/format/webp)]

斗鱼直播


斗鱼一面

1.Java多态的理解

2.HashMap原理

3.手写一个单例模式,问有什么优缺点

4.View的绘制流程

5.APP的启动过程

6.说说插件化的原理,资源的插件化id重复如何解决?

7.Recyclerview优化

8.Handler消息机制

9.用过哪些第三方库,OKHTTP原理说一下,热修复原理呢?

10.对屏幕刷新机制的了解,双重缓冲,三重缓冲,黄油模型

11.onCreate,onResume,onStart里面,什么地方可以获得宽高

12.为什么要用线程池(扯到线程分配资源的过程,和进程分配资源过程的区别)

13.GC内核清理用什么算法,老年代有什么算法?

14.TCP 三次握手四次挥手,第一次和第三次如果没收到回应会怎样?

15.MVP和MVVM有什么区别,那种用的多

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vV4CLg58-1611123109286)(//upload-images.jianshu.io/upload_images/24142630-48964c62772ba98e.png?imageMogr2/auto-orient/strip|imageView2/2/w/554/format/webp)]

字节跳动


字节一面

0.算法有点题比较复杂,记不起来了

1.构造方法有哪些?重载与重写的区别?

2.线程有哪些状态?

3.WebView安全问题,做过WebView性能优化吗

4.RecyclerView 缓存结构

5.RecyclerView回收复用机制,回收什么?复用什么?回收到哪里去,复用从哪里拿?

6.Handler休眠是怎样的?epoll的原理是什么?如何实现延时消息,如果移除一个延时消息会解除休眠吗?

7.手势操作ActionCancel后怎么取消

8.熟悉AIDL?支持哪些数据类型?说说oneway的作用?怎么理解单向调用?

9.说说https怎么防止被抓包吧

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQh8JXsp-1611123109288)(//upload-images.jianshu.io/upload_images/24142630-4c767fff3fa4c1ea.png?imageMogr2/auto-orient/strip|imageView2/2/w/640/format/webp)]

腾讯(offer)


腾讯技术面

1.介绍一下你们项目的架构

2.Rxjava是怎么实现线程切换的

3.Rxjava自定义操作符

4.ARouter的原理

5.ARouter怎么实现接口调用

6.ARouter怎么实现页面拦截

7.MVP怎么处理内存泄漏

8.OkHttp怎么实现连接池

9.如果让你来实现一个网络框架,你会考虑什么

10.你做过什么性能优化的工作

11.热修复的原理,资源的热修复的原理,会不会有资源冲突的问题

12.ViewPager中嵌套ViewPager怎么处理滑动冲突

13.android源码中有哪些设计模式

14.说说binder机制的原理

15.retrofit怎么做post请求

16.界面优化的一些方法,ConstraintLayout实现三等分,ConstraintLayout动画.

17.synchronize用法,volatile用法,两者的区别和场景

18.做过进程保活吗?

19.App 是如何沙箱化,为什么要这么做?

20.讲讲 bindService 的过程,你当初是怎么优化后台服务进程的?

21.弱网环境你如何做的网络优化?

22.ConcurrentHashMap 的实现原理

23.Kotlin协成

24.flutter有上手过吗

25.MVP与MVVM有什么区别

26.反问

腾讯hr面

1.为什么考虑换一份工作?

2.在你们公司这几年感觉怎么样?

3.在这几年里,你有做过什么觉得最有价值的工作

4.对腾讯的印象是怎样的

5.有女朋友吗,对搬来深圳什么想法…

6.你有什么要问我的吗?目前有几个offer,倾向性是怎样的?

尾声

如果你的水平接近达到高级水平,有信心快速达到高级水平,那就按照高级水平的技能点和市场招聘的高级要求对照靠近(可以参考我的【GitHub】),一步步达到这个水平。如果你的水平还是初级入门水平,或者兴趣度不是很高,想早点转换,你可以快速转变,因为在正确方向上努力太重要了,这里也建议不要跨度太大,这里我推荐往大前墩或者产品方向转变,当然前提是你有这方面的兴趣。

当然上面讲的都是技术方向上的发展,当然对一些技术栈水平和技术积累到一定程度后你也可以往技术管理和产品方向发展,当然你也可以选择创业,如果你有足够好的idea和心理准备。

当然大部分人停留在中高级水平,然后一直停滞不前,加上外部各种环境,产生了各种焦虑,所以很矛盾,这时候你最好的状态是快速往高级水平发展,当然这里是比较难的,这个坎也是比较难迈过去的。因为Android知识体系比较庞大和复杂的,涉及到计算机知识领域的方方面面。

但是只要坚持,让自己成T字形人才发展,时间会证明一切!!1

最后是今天给大家分享的一些独家干货:

Android学习PDF+架构视频+面试文档+源码笔记

【Android开发核心知识点笔记】

【Android思维脑图(技能树)】

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【Android高级架构视频学习资源】