抢先看!23年Android面经年度大总结

发布时间:2024年01月06日

前言

持续了大半年的面试终于结束了,自从5月被前公司优化之后,一直陆陆续续有面试邀约。

收获offer还是比较满意的,拿下了小红书、小米的offer。

着实有点可惜的是汽车之家,倒在了三面,只能说自己还是太菜,以后还需要继续努力。

这期间只投递了互联网中大厂,面试并不多,以下是我在这大半年以来的面试经历,发出来总结一波,也供大家参考参考!

以下面试均为Android开发的社招岗。

汽车之家

  1. 看简历上掌握Kotlin,说一说协程
  2. 说一说Java的反射?反射为什么性能差?
  3. 熟悉Android的四大组件,说一说Activity的launchMode中的singleTask和singleTop的区别
  4. provider中getContext()获取到的context是什么context?
  5. 协程是什么?
  6. 知道集合和多线程,那说一说你知道的线程安全的集合
  7. 讲一讲你知道的锁?从不同角度可以分为类锁和对象锁、公平锁和非公平锁、乐观锁和悲观锁,追问自旋锁
  8. 讲一讲LeakCanary的原理(弱引用队列+Activity生命周期),使用LeakCanary检测到了什么内存泄漏?是先知道这里会出现内存泄漏吗?
  9. LeakCanary用到了一个GC机制,GC Root都有哪些?
  10. 阅读文章的App,这些文章有做本地存储吗?具体实现?

小红书

  1. Handler机制是什么?在没有message的时候为什么不会导致应用程序ANR?
  2. 介绍一下四大组件?
  3. Activity启动模式?
  4. 进程和线程的区别?
  5. 你知道Android程序的入口吗?知道ActivityThread吗?
  6. View的事件分发机制?View的绘制机制?
  7. 如果要在一个Activity里面获取一个View的宽高应该在哪一个回调方法获取?
  8. 知道共享内存模型吗?
  9. 内存里面的寄存器有了解吗?指针寄存器?指令寄存器?
  10. LeakCanary原理?弱引用和软引用区别?
  11. 讲一讲泛型?泛型的原理?类型擦除,擦除之后呢?如何获取类型?
  12. 协变和逆变?in和out如何选择
  13. 高阶函数?
  14. Git的原理?
  15. 面向对象编程和响应式编程的区别?
  16. Map?Map的时间复杂度,什么时候会用到链表化和树化,哈希冲突,有了解HashMap的扩容吗?如果是你会怎么做?
  17. 为什么要使用TCP协议?TCP协议有什么好处?TCP协议解决了什么问题
  18. 说一下你最熟悉理解最深的一个知识点?说了JVM的内存划分机制

小米

  1. 泛型擦除的概念。什么时候用
  2. ThreadLocal原理,内存泄漏的原因
  3. 知道哪些数据压缩算法
  4. dns挟持是什么,哪些解决办法
  5. Charles怎么抓https的包
  6. java四种引用类型
  7. jvm有哪几种gc算法,分代收集新生代老年代分别使用哪一种
  8. 数据库第三范式
  9. http状态码
  10. https的流程
  11. tcp四次挥手
  12. dns解析过程
  13. 为什么hashmap链表是尾插
  14. concurrenthashmap为什么不可以存null的key而hashmap可以
  15. equals和hashcode
  16. 线程池怎么配置参数保证有序
  17. synchronized底层原理
  18. cas的缺点,怎么解决
  19. http2.0和http3.0
  20. 快重传和快恢复
  21. cookies和session
  22. 五层网络结构,每一层有哪些协议

得物

  1. activity的生命周期,各个阶段的方法名叫什么
  2. 安卓的那些场景会导致内存泄漏
  3. c++的垃圾回收机制
  4. tcp的三次握手和四次挥手
  5. 为什么tcp客户端的time-wait状态必须等待2MSL
  6. http1.1与http2.0之间的区别
  7. 线程安全的解决思路
  8. 有哪几种锁
  9. 进程通信方式,具体的使用场景
  10. 二叉树的深度遍历,递归与非递归实现
  11. c++的内存模型,各个区的作用
  12. c++什么情况下会有野指针问题
  13. 还有什么情况下会有野指针问题
  14. 链表,有一个指针,双指针,在引用的过程中间,有一个指针将他的链给断开,去访问的时候,另一个指针会发生什么
  15. 数组的越界呢?
  16. 文件的内存映射了解过吗?相较于普通的io流有什么优势呢?
  17. 一个数组的值先从小到大递增后从大到小递减,找出最大的值。

OPPO

  1. 讲一讲项目?数据获取流程?
  2. 讲一讲四大组件
  3. 讲一讲集合类
  4. 讲一讲Handler机制
  5. 事件分发机制,事件拦截在哪个方法中拦截?了解触摸事件吗?
  6. View绘制机制,追问ViewGroup的绘制过程?然后问到了根View,Window?
  7. View是一个树形结构,如何遍历?深搜,广搜,讲一讲深搜,广搜
  8. 垃圾回收机制?具体问了分代回收算法,GC ROOT有哪些?你觉得GC root引用链是一个什么结构,不清楚?
  9. 进程、线程、协程的区别
  10. 有做数据库本地保存操作吗?如何实现的?有使用过什么框架没?
  11. 最后一个问题,讲一讲架构模式,MVC、MVP、MVVM模式

小天才

  1. ARouter的原理?
  2. MVP,MVVM模式相对于MVC模式的优势?
  3. 知道六大设计原则吗?不太清楚具体都有什么。说一下除了单例模式之外的两个设计模式
  4. 事件分发的过程?onClick和onTouchEvent,onTouch哪个先执行?(onTouch>onTouchEvent>onClick)
  5. 如果现在出现了横向滑动和竖向滑动的冲突,你会如何解决?如果获取到的x移动
  6. 距离和y移动距离一样大如何定义逻辑?
  7. 使用Glide有做一个封装吗?应该封装到一个工具类里面来做复用
  8. 讲一讲内存泄漏和内存溢出?为什么会内存泄漏?列举三种内存泄漏的情况
  9. 有做过性能优化吗?说了包体积优化,布局优化。内存泄漏优化其实也是
  10. 说一下具体写过的自定义View?
  11. Activity A跳转到Activity B再按下back键回到Activity A各自的生命周期变化?如果
  12. 按下back键回到Activity A之后发现Activity B没有调用onDestory()方法你会如何去调试找bug?
  13. 100个任务放入到线程池,如何设计最快的完成任务。如何要在前面99个任务执行完成之后再执行第100个任务呢,如何设计?
  14. 项目中遇到的难点?异步场景下的数据同步。如何解决?接口回调的场景下,如果数据还没有返回,但是用户终止了应用程序,你觉得你的设计有什么问题和解决方法?内存泄漏如何解决?弱引用
  15. 面试官介绍小天才部门的基本情况和业务

由于文章篇有限不能将我所有面过的公司面试题展示出来,但是我把这些面试题分模块整理成了一个PDF文档,方便大家按需查看,里面有我自己对于答案的理解,也有在百度上整理的答案,有需要的朋友,可以扫描下方二维码免费查看领取!!!

img

第一章 Java方面

  • Java基础部分
  • Java集合
  • Java多线程
  • Java虚拟机
    在这里插入图片描述

第二章 Android方面

  • Android四大组件相关
  • Android异步任务和消息机制
  • Android UI绘制相关
  • Android性能调优相关
  • Android中的IPC
  • Android系统SDK相关
  • 第三方框架分析
  • 综合技术
  • 数据结构方面
  • 设计模式
  • 计算机网络方面
  • Kotlin方面在这里插入图片描述

第三章 音视频开发高频面试题

  • 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
  • 怎么做到直播秒开优化?
  • 直方图在图像处理里面最重要的作用是什么?
  • 数字图像滤波有哪些方法?
  • 图像可以提取的特征有哪些?
  • 衡量图像重建好坏的标准有哪些?怎样计算?
  • 在这里插入图片描述

第四章 Flutter高频面试题

  • Dart部分
  • Flutter部分在这里插入图片描述

第五章 算法高频面试题

  • 如何高效寻找素数
  • 如何运用二分查找算法
  • 如何高效解决雨水问题
  • 如何去除有序数组的重复元素
  • 如何高效进行模幂运算
  • 如何寻找最长回文子串
  • 在这里插入图片描述

第六章 Andrio Framework方面

  • 系统启动流程面试题解析
  • Binder面试题解析
  • Handler面试题解析
  • AMS面试题解析
    在这里插入图片描述

第七章 企业常见174道面试题

  • SD卡
  • Android的数据存储方式
  • Broadcast Receiver
  • sp频繁操作会有什么后果?sp能存多少数据?
  • dvm与jvm的区别
  • ART
  • Activity的生命周期
  • Application能不能启动Activity

  • 在这里插入图片描述
有需要的朋友,可以扫描下方二维码免费查看领取!!!
文章来源:https://blog.csdn.net/star_nwe/article/details/135417516
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。