ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2020都快过完了,这一年的Android 面经该出来了,2021腾讯Android面试题精选

2021-12-13 09:06:36  阅读:110  来源: 互联网

标签:11 10 面试题 区别 什么 面经 怎么 原理 Android


算法题就好像高考语文的古诗词默写一样,分不多,但丢了就很可惜了。

根据我的经验,大概刷了,掌握100道题就足以应付面试了。

当然完全掌握需要重复练习,不是刷了一遍就可以的。

这里推荐一下极客时间上覃超的五遍刷题法:

五遍刷题法

1.第一遍,直接看解法

多解法,比较解法优劣,默写好的解法

2.第二遍,打开leetcode,直接开始写

多种解法比较,调优

3.第三遍,过一天之后,再重复做题

4.第四遍,过了一周,再来反复练、

5.第五遍,面试前一周,恢复性训练

通过以上方法重复练习,大概刷100题就足以应付面试,如果每天刷3道,大概准备一个月即可

题库

刷题也要注意,不要一题一题刷,比如Leetcode的每日一题

建议按知识点分类,这样比较方便重复练习与知识点掌握

在知识点刷过一遍后,也可以按照公司分类或者LeetCode热题100刷,一般公司出算法题也是有题库的

下面推荐几个题库供大家使用

按知识点分类

如:Android 开发知识点

完整目录查看请点击Github地址查看详细目录

面经


接下来就是各公司的面经了,有大厂与培训公司面试岗位,分享出来供大家参考。

大厂面试

字节跳动

字节跳动

1.你们的项目中有什么难点?

2.你们项目的稳定性如何?有做过什么稳定性优化的工作?

3.WebView性能优化做过什么工作?

4.AIDL in out oneWay代表什么意思?

5.线程池了解多少?拒绝策略有几种,为什么有newSingleThread

6.跨进程通信了解多少?管道了解吗?

7.协程介绍一下,讲一个协程的scope与context,协程的+号代表什么

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

9.算法斐波那契台阶

10.手写生产者消息者模型

11.IdleHandler应用场景

字节跳动2面

1.自定义圆角图片

2.自定义LinearLayout,怎么测量子View宽高

3.setFactory和setFactory2有什么区别?

4.插件化换肤方案

5.插件化的原理,startActivity hook了哪个方法

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

7.怎么优化xml inflate的时间,涉及IO与反射。了解compose吗?

8.算法题:二叉树的每一层最左边节点

9.RecyclerView 缓存结构,RecyclerView预取,RecyclerView局部刷新

11.setOnTouchListener,onClickeListener和onTouchEvent的关系

腾讯

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机制的原理

腾讯二面

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

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

3.技术选型上,为什么这么考虑?从开发效率,产品性能,产品质量,产品体验等方面考虑

4.你们的产品为什么被砍掉,从哪方面考虑

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

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

B站

1.一个大致有序的数组如何排序,最快时间复杂度

2.如果叫你实现,你会怎样实现一个多主题的效果

3.如何自定义实现一个FlexLayout

4.tinker的原理是什么,还用过什么热修复框架,robust的原理是什么?

5.说说你对注解的了解,是怎么解析的

6.synchronized是公平锁还是非公平锁,ReteranLock是公平锁吗?是怎么实现的

7.泛型是怎么解析的,比如在retrofit中的泛型是怎么解析的

8.mvp与mvvm的区别,mvvm怎么更新UI,databinding用得多吗,databinding的原理?

9.kotlin ?的原理

10.在项目中有直接使用tcp,socket来发送消息吗

11.如何在网络框架里直接避免内存泄漏,不需要在presenter中释放订阅

12.生命周期都是通过什么调用的?有用过AIDL吗?

13.讲一下RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView

14.如何实现RecyclerView的局部更新,用过payload吗,notifyItemChange方法中的参数?

15.讲讲LinkedHashMap的数据结构

16.put post有什么区别

17.A Activity打开B Activity的生命周期变化,会有什么方法打断吗?

18.Fragment hide show生命周期变化

19.Fragment replace生命周期变化

B站二面

1.为什么考虑换工作

2.屏幕适配做过什么工作?

3.你们网络框架用的什么?为什么?

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

5.性能优化你做过什么工作?

6.h5与native通信你做过什么工作?

7.插件化的主要优点和缺点是什么?

8.你觉得B站目前的APP有什么问题?

9.如果产品要求你开发一个音频播放功能,你会怎么着手?预计会有什么坑?

10.ViewPager切换Fragment什么最耗时?

11.线程间同步的方法

12.锁之间的区别

B站三面

1.介绍一下你自已和项目

2.说说为什么考虑离职

3.说说对你们原来公司的印象

4.为什么想来B站?你在B站上常常在看什么?

5.期望薪资是多少?

6.你对搬到上海有什么想法?

网易云音乐

1.ViewPager2原理

2.LifeCycle的原理是怎样的?

3.ViewModel为什么在旋转屏幕后不会丢失状态

4.Drawable与View有什么区别,Drawable有哪些子类

5.属性动画更新时会回调onDraw吗?

6.OkHttp网络拦截器,应用拦截器?OKHttp有哪些拦截器,分别起什么作用

7.自定义实现一个九宫格如何实现

8.PathClassLoader与DexClassLoader有什么区别

9.这些年有做一些什么比较难的工作?

10.编译时注解与运行时注解,为什么retrofit要使用运行时注解?什么时候用运行时注解?

11.kotlin lazy使用,lazy viewmodel

12.有没有看一下Google官方的ViewModel demo

13.ViewModel在Activity初始化与在Fragment中初始化,有什么区别?

14.kotlin与Java互相调用有什么问题?

15.retrofit怎么做post请求

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

17.CoordinatorLayout自定义behavior,可以拦截什么?

网易云音乐二面

1.你们的项目中做过什么比较难的工作?

2.视频播放,一个player怎么实现预加载,避免loading

2.webView加载本地图片,如何从安全方面考虑

3.http1.0,http1.1,http1.2有什么区别

4.https与http有什么区别

5.有用过什么加密算法?AES,RAS什么原理?

6.android跨进程通信了解吗?共享内存用过吗?binder怎么验证pid?binder驱动了解吗?

7.SharedParence可以跨进程通信吗?如何改造成可以跨进程通信的.commit和apply的区别.

8.Seriazable与Parceable的区别

9.Bundle是什么数据结构?利用什么传递数据

10.Jvm的内存结构,Jvm的垃圾回收,方法区有什么东西?

11.h5与native交互,webView.loadUrl与webView.evaluateUrl区别

网易云音乐三面

1.有没有做过什么WebView秒开的一些优化

2.你们的项目中有什么难点?

3.native如何对h5进行鉴权,让某些页面可以调,某些页面不能调

4.有看过哪些框架的源码吗?

5.viewModel是怎么实现双向数据绑定的?

6.viewModel怎么实现自动处理生命周期?

7.图片加载优化有什么经验吗?

8.viewpager切换掉帧有什么处理经验?

9.一个wrap_content的ImageView,加载远程图片,传什么参数裁剪比较好?

10.两个getDrawable取得的对象,有什么区别?

11.补间动画与属性动画的区别,哪个效率更高?

12.jsBridge实现方式

13.平常是怎么了解一些新知识与业界动态的,最近有什么印象深刻的文章

14.平常抓包用什么工具?

15.Mvp与Mvvm有什么区别?

滴滴一面

1.JVM类加载机制了解吗,类什么时候会被加载?类加载的过程具体生命周期是怎样的?

2.Handler内存泄漏的GCRoot是什么?

3.动画里面用到了什么设计模式?

4.OkHttp里面用到了什么设计模式?

5.OkHttp连接池是怎么实现的?里面怎么处理SSL?

6.泛型为什么要擦除?kotlin的泛型了解吗?泛型的pecs原则

7.同步屏障

8.性能优化做过什么工作?

9.RecyclerView的缓存结构是怎样的?缓存的是什么?cachedView会执行onBindView吗?

10.RecyclerView嵌套RecyclerView,NestScrollView嵌套ScrollView滑动冲突

11.ViewGroup在Action_Move时onIntercept返回true,事件怎么传递

12.Launcher启动图标,有几个进程?

13.JMM可见性,原子性,有序性,synchronized可以保证什么?

14.源码中有哪里用到了AtomicInt

15.AQS了解吗?

16.Activity内LinearLayout红色wrap_content,包含View绿色wrap_content,求界面颜色

17.ViewModel的使用中有什么坑?

18.有用DSL,anko写过布局吗?

19.HashMap查找的时间复杂度是多少?

20.阿里编程规范不建议使用线程池,为什么?

21.四种线程池原理?

22.了解哪些算法?

23.IdleHandler用过吗?

滴滴二面

1.如何封装一个字符串转数字的工具类

2.如何求当前Activity View的深度

3.多进程怎么实现?如果启动一个多进程APP,会有几个进程运行?

4.反射可以反射final修饰的字段吗?

5.Activity与AppCompactActivity区别,Activity会打包到包里面去吗?

6.如何让两个线程循环交替打印

7.怎么中止一个线程,Thread.Interupt一定有效吗?

8.动画连续调用的原理是什么?

9.做过一些SDK的操作吗?

10.协程可以在Java项目中使用吗?

11.SharedPreference原理?读取xml是在哪个线程?

12.了解APK打包的过程吗?

13.class文件的组成?常量池里面有什么内容?

14.自动装箱发生在什么时候?编译期还是运行期

15.bugly日志收集的原理是什么?

16.启动优化做过什么工作?如果首页就要用到的初始化?

17.DataBinding原理

滴滴3面

1.插件化的原理是什么?有没有什么非运行时插件化的解决方案?

2.ARouter的原理是怎样的?注解处理器是处理java还是字节码

3.java和字节码有什么区别?

4.kotlin空安全的原理是什么?

5.性能优化做过什么工作?有用过什么工具?有没有精确测量的工具?

6.kotlinc与javac编译字节码有什么区别?

7.你在团队中是怎样一个角色?

8.你有没有做什么推进项目的工作

9.说说热修复的原理?

Vivo公司

1.简单描述下Handler,Handler是怎么切换线程的,Handler同步屏障

2.Glide的缓存,有用过Glide的什么深入的API,自定义model是在Glide的什么阶段

3.讲讲mvc,mvp模式,presenter内存泄漏的问题

4.ANR了解过吗?有没有实际的ANR定位问题的经历

5.性能优化你做过哪些?

6.有什么实际解决UI卡顿优化的经历

7.有做过什么Bitmap优化的实际经验

8.项目搭建过程中有什么经验,有用到什么gradle脚本,分包有做什么操作

9.组件化有详细了解过吗?ARouter详细原理

10.讲一下事件分发机制,RecyclerView是怎么处理内部ViewClick冲突的

11.mainfest中配置LargeHeap,真的能分配到大内存吗?

快手

1.string,equals,==有什么区别

2.AsyncTask内存泄露

3.dispatchTouchEvent,onInterceptEvent,onTouchEvent顺序,关系

4.onMeasure,onLayout,onDraw关系

5.算法题,反转数组

6.算法题,链表求和

7.说说你对协程的理解

8.协程怎么取消

9.说说MVP与MVVM的区别

快手二面

1.算法题,二叉树的最大深度

2.如果android端和IOS端调一个接口,一个通了一个没通,你会如何解决

标签:11,10,面试题,区别,什么,面经,怎么,原理,Android
来源: https://blog.csdn.net/m0_64319112/article/details/121897676

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有