IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 2022Android面经,历时一个半月,斩获大厂offer -> 正文阅读

[移动开发]2022Android面经,历时一个半月,斩获大厂offer

今年行情极差,有相当多的同学遇到了给了口头offer,但是最终offer没下来;甚至正式offer给了,但是最终流程也没走完。

欢迎投递简历,可review简历,可内推滴滴、小米等各大厂,微信号13718150827。

废话不多说,先是自己总结的面试三件套送给大家:

1、面经
先奉上2020年的面经:2020Android面经,历时一个半月,斩获3个大厂offer

2、算法题:
Java版本写的《剑指offer第二版》,测试用例、LeetCode上对应地址均有。
剑指offer第二版Java代码,参考对应的LeetCode题目

3、复习路径和资料:
Android复习路径以及复习资料整理
ps:这个后续会更新为最新的,大家先看下2020年的。

面试题排名不分先后,大公司的在后面。

快看漫画

  • mvp架构,如何实现一个Fragment,base系列如何实现?
  • 触摸事件的传递,View如何消费
  • 自定义View中,getMeasuredWidth和getWidth有什么区别
  • 线程池如何管理?异常如何处理?
  • 应用启动速度优化。
  • activity启动速度优化?
  • view优化。viewstub原理,哪些方法被跳过?如何被替换?
  • RecyclerView原理,RecylerView优化
  • hybrid和jsBridge。实例分析。flutter如何做呢?
  • 数据本地化方案:文件、sp、数据库
  • SharedPreference的commit和apply优化、有什么问题?如何解决?
  • 权限适配问题。

牛客网(口头offer后都能给你放鸽子,你品)

一面:

  • 项目
  • lint检测原理,插件
  • 组件化:分层的目的
  • flutter

二面:

  • NA端截图如何传递给h5?共享的方式呢?
  • Hummer了解么?
  • 子线程能刷新UI么?为何只能主线程刷新UI?
  • Activity间的通信方式。
  • 系统为何不设计Activity#setData这种方式,让外部可以给activity提供数据呢?
  • https安全性如何保证的?Charles能抓取https么?app如何防止抓包?
  • 如何防止接口被mock,防止反爬虫?(内容签名,加盐)
  • 设计模式了解么?举例说明。
  • 算法题:无重复字符的最长子串

三面:

四面:

  • 项目
  • 路由方案
  • python脚本
  • 首页精细化刷新方案
  • sdk
  • 三个字概括自己
  • 成就感最强的项目

蓝湖

一面:

  • 项目
  • 说一个你遇到的最难的问题
  • 算法题:无重复字符的最长子串

二面:

  • 项目
  • 性能优化,举例
  • 架构,好的架构如何设计
  • kotlin
  • sdk如何设计
  • 引入sdk时有哪些指标要考量?
  • 包体积优化
  • 算法题:101. 对称二叉树

作业帮

一面:

  • kotlin语法,函数为何设计为一等公民,协程
  • 泛型,为何要擦除?好处是什么?坏处呢?kotlin的泛型呢?泛型如何不擦除?
  • jvm、dalvik、art介绍下,解决了什么问题?
  • UI优化,UI渲染原理。哪些是CPU做的,哪些是GPU做的?
  • 为何掉帧?原理,怎么解决
  • 卡顿,原理,如何解决。
  • 如何量化UI优化的数据?
  • TCP/UDP。三次握手、四次挥手的必要性。
  • https的安全性如何保证的。
  • jetpack

二面:

  • 项目
  • IM如何实现:长链接如何实现?乱序问题,丢失问题如何解决?

陌陌

  • app启动流程,launcher之后的流程
  • window是何时创建的?
  • Handler,Looper为何不会导致ANR?Handler的延时消息如何保证?Looper和Thread如何保证关系?
  • GC机制,回收算法,GCRoot的类型
  • 多线程同步的方式有哪些?线程池?线程同步?
  • synchorized和Lock的区别?synchorized是如何实现加锁的?偏向锁的实现?锁膨胀的过程
  • https的密钥交换流程

集度

一面

  • 对话框治理方案
  • 网络:http演进过程:1.0 --> 1.1 --> 2.0。https:加密过程
  • 锁:常见使用,分类,死锁
  • 线程池核心参数
  • binder:内存copy几次。mmap几次映射
  • activity中,new Handler(),如果内存泄漏了,分析它的GCRoots引用链。
  • 事件分发:从手接触开始,一个完整的流程。
  • SharedPreference存在哪些问题?
  • Glide:如何管理生命周期?Cache?如果一张下载一张大图,有两个尺寸不同的View去加载,在内存中几份缓存?
  • View#onClickListener中,sleep(100s),会不会anr?
  • 三个线程依次打印,有哪些方式?
  • 用两个栈实现队列。

二面

  • 你的Kotlin能力如何?
  • 你的架构设计能力如何?
  • 设计模式:装饰者和适配器模式的异同
  • 平时看哪些架构设计方面的书?
  • Intent你如何理解?
  • 跨进程传递数据,为何要序列化?
  • 启动一个Activity,为何要设计成跨进程的方式?app自己做不行么?
  • 下载一个几百M的大文件,如何校验文件正确性?如何修复?

白龙马

一面:

  • 开发业务
  • 稳定性排查
  • 运行时性能优化
  • 内存泄漏检测
  • GCRoots类型,Handler内存泄漏的引用链分析
  • 显示内存泄漏如何检测
  • Handler机制原理。消息屏障原理
  • 启动优化,启动流程,启动时间如何检
  • ArrayMap和HashMap相比较
  • 如何捕获crash,线上crash如何捕获
  • OOM线上监测方案
  • 卡顿检测方案
  • 设计一个图片加载库,磁盘缓存如何实现。
  • LRU实现
  • 如何统计项目中所有Button的点击事件

二面:

  • 性能优化相关的:首页卡顿优化;
  • 负责的业务

搜狐视频

  • 事件分发
  • 消息机制
  • 进程间交互方式
  • binder优势、binder内存大小
  • 锁、锁升级
  • volatile语义,各自是如何实现的?
  • Java内存模型
  • JVM分区、栈帧包含什么?各个分区各自的回收方式
  • 类加载机制、类加载步骤及细节
  • TCP和UDP的区别,TCP建立连接的过程
  • 设计模式。拦截器与责任链的区别
  • 长链接实现
  • 项目细节。
  • 算法题:55. 跳跃游戏

拼多多

  • 包体积优化,改进空间
  • jsBridge原理
  • 个保法整改,如何成体系
  • AActivity在前台,跳转BActivity,生命周期方法有哪些会执行?A的onStop一定会执行么?
  • Intent可以携带哪些数据?数组类型。
  • 如何探测binder剩余多少空间?
  • 线程池核心参数,有哪些问题?
  • 死锁,如何避免。

Bilibili

Java:

  • HashMap的数据结构,如何保证快速查找,容量为何要设计为2的n次方这样?对扩容有没有影响?
  • ArrayMap 和 SparseArray
  • ConcurrentHashMap
  • HashTable,为何废弃
  • 多线程存在哪些问题?
  • synchorized实现
  • juc包下的lock如何实现的?有了synchronized,为何还要有这个?
    cas的原理
  • AtomicInteger如何保证原子操作
  • CAS如何保证原子操作
  • volatile的特性。拿一个特性举例说明
  • Java为何设计出可见性这个问题

Android:

  • View#request之后,流程是怎样的
  • 事件分发:View设置了一个onClickListener,那么它的onTouchEvent中,DOWN的时间,返回的是true还是false?为何?
    如果一个View没有消费DOWN事件,那么MOVE和UP事件还会不会给它?
    CANCEL事件是如何触发的?
  • 滑动冲突解决过么?举例说明
  • getMeasuredWidth和getWidth有什么区别?什么时候会有不同?如何让getWidth的值跟getMeasuredWidth不同?
  • activity#onResume中,View展示出来了?原理
  • 通过view#post获取view宽高,可以获取到么?原理
  • 如何把消息交给子线程的Handler执行?
  • new一个Thread,在run方法里面写三行代码:
Loop.prepare;
Loop.loop;
输出一行log。

问,这行log会不会执行。

  • RecyclerView:
    Adapter#notifyDataChanged和Adapter#notifyDataRange方法有何区别?加载下一页数据时,我调用哪个合适?在onBindViewHolder方法中,view#getParent有值么?ViewHolder#recycler方法,何时会被调用?stableId了解过么?如果设置了它,页面内的ViewHolder会走onCreateViewHolder和onBindViewHolder方法么?此时这些ViewHolder是放在哪个缓存里的?

美团

一面:

  • 项目经验
  • 图片压缩。RGB565,为何不是556呢?
  • python脚本。
  • dumpsys脚本
  • 包体积优化:python脚本。
  • 枚举类替换是否有必要?
  • 性能优化:布局性能优化。首页刷新优化。
  • Activity启动流程。
  • 谁根据Intent中的信息去查找对应的进程呢?去查找对应的Activity呢?PKMS。
  • PKMS和AMS都是SystemServer启动起来的,它两在同一个进程里面。
    app的最近打开过的应用,知道谁做的么?关机开机后依旧保存,如何保存到磁盘的?谁做的?
  • 算法题:143.重排链表

二面:

  • 地理位置相关的,你了解多少?
  • 对比前两家公司,地图特殊的方面,你做过什么
  • 你在上家公司,成长阶段分为几部分?里程碑的节点有哪些?
  • 最近看了哪些书
  • 算法题:
    数组中的第K个最大元素
    08.09. 括号

字节-幸福里

一面:

  • 合规排查,sdk如果调用了HttpURLConnection这种方式,你如何排查?
  • 假设三天之内完成,但是sdk三天改不完,你如何sdk处理?
  • SDK如果直接调用系统API呢?
  • 如何具备经济擦屁股的能力?
  • ASM能hook第三方sdk里面的类么?第三方的jar包呢?
  • python扫描文件,跟IDE里面全局搜索,有区别么?
  • 如何解决还没有暴露的合规问题?比如某天规则增加了?线上如何做?如何减少调整?你有没有比较好的解决方案?
  • webview:WebView里面,js调用native方法,它底层的原理是什么?为什么js能调用到Java的方法?webkit提供了这个功能,那它是怎么实现的?js调用native的方法时,是同步的还是异步的?java方法return一个值,js那边能立即拿到么?通过js调用一个java方法,这个java方法都是@onJavaInterface注解过的,这个方法是运行在哪个线程?
  • AB实验:分组,有没有需要注意的,或者关键点?怎么做到尽可能随机?
    如果N个实验在并行,实验跟实验之间,怎么去防止相互干扰?行为之间会有相互影响。样本隔离开的话就会有问题,多个实验都想要大量数据,如何设计?如何统计实验的指标?如何确认两个指标的关联关系?SQL层面如何实现?
  • 网络请求:https请求如何保证安全性?Charles能抓https请求么?能抓的话那安全性在哪?app如何防止代理抓包?
  • UI性能优化,加载绘制等,有哪些方面可以做的?
  • Java中静态方法,能不能被子类重写?编译会报错么?
  • 匿名内部类能不能访问外部类的私有方法?匿名内部类编译后也是独立的外部类,它为何能访问外部类的私有方法?如果能访问,是不是破坏了java的语义?怎么做到的?
  • 算法题,多线程顺序打印ABC。

二面:

  • 图片压缩
  • 自定义路由方案
  • 注解处理器
  • 运行时注解和编译期注解的例子
  • 项目的产品指标
  • View绘制
  • ChoreoGrapher中Callback的类型
  • 同步消息、异步消息、消息屏障
  • RenderThread了解么
  • 包体积优化:access优化、R文件、arsc文件优化
  • 埋点方案设计
  • jetpack用过么
  • GCRoots分析
  • 如何监控页面卡顿?ChoreoGrapher方案呢?
  • mvi了解么?
  • kotlin了解么
  • 算法:反转链表,用递归

字节-懂车帝

  • 项目经历。
  • Transform原理,Transform中是否能修改sdk中的class文件。
  • Handler机制,IdleHandler执行时机。Handler#postDelay(runnable, 20s) 一个消息,然后把手机时间调整为1分钟后,刚才的runnable会不会执行。
  • ThreadLocal是如何做到线程间的不共享数据的,ThreadLocalMap里面的key和value是什么。
  • 线程池的核心参数。如果core为5,提交了三个任务,分别被三个线程执行了,其中一个任务提前执行完毕了,此时再提交一个任务,这个任务是如何执行的?
  • Jetpack:LifeCycle如何实现的?LiveData,连续set两个相同的数据,会收到几次;连续post两个相同的数据,会收到几次;liveData能在子线程接收么?ViewModel:如何实现Activity旋转之后,依旧能恢复数据的?
  • Java泛型:为何会有Java泛型?泛型擦除;运行期能获取到泛型数据么?List<? extends Demo>; 与 List<? super Demo>的区别;PECS原理。
  • View事件传递;事件是从哪里到达Activity的?ViewRootImpl的作用?有A、B两个Button,各自设置了OnClickListener,在A上按下,移动到B上抬起,会触发OnClickListener么?为何?UP事件谁接收到了?OnClickListener触发的条件是哪些?
  • 算法题:①用两个栈实现队列②用栈实现最小栈③二叉搜索树,如何找到最小的公共父节点。

抖音

  • 性能优化:UI绘制优化
  • 讲一下你做的比较好的项目
  • JVM的分区,各个分区的作用
  • android里面的两种序列化方式,如何实现的
  • SharedPreferences:两种提交方式,缺点,如何解决
  • 网络:浏览器输入域名后,后续的过程。DNS的细节(先从本机开始)。
  • Java中的锁,实现。
  • ANR:定义、如何解决。广播、service的anr时间
  • data/trace.txt文件格式
  • 包体积优化
  • 算法:k个一组反转链表

小米造车

一面:

  • 自定义View有哪几种方式?核心流程。一次完整的绘制流程是怎样的?
  • 如何给控件的背景设置圆角。
  • Activity生命周期是谁控制的?
  • 异步消息如何区分?作用
  • UI卡顿的原因有哪些?如何优化?
  • 内存泄漏常见的有哪几种?如何检测?LeakCanary原理,Activity、Fragment
  • 算法题:单链表中,无序,查找最小的n个数。

二面:

  • framework了解么?
  • View绘制?
  • so奔溃如何解决?
  • 卡顿如何解决?
  • ANR如何解决,trace.txt如何看?
  • 算法题:打印ViewGroup的信息,仿照adb dumpsys的输出。
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:34:46  更:2022-07-17 16:38:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 2:23:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码