三年Android开发快手、美团、支付宝连挂

  • funA,funB,funC,funD

  • postInvalidate和Invalidate的区别

  • requestLayout

  • 两个有序链表合并

  • anr 分类及原理

[](()二面
  • 基本都是问的项目

[](()支付宝


[](()一面
  • 项目

  • viewmodel原理

  • 用了哪些jetpack的东西

  • livedata为何具有生命周期感知能力

[](()二面
  • shareperference如何保证线程安全,

  • 为什么不是进程安全的

  • 如何实现进程安全的

  • viewmodel是如何解决内存泄漏问题的?能解决么

  • mmkv共享内存和binder的区别

  • magic ocr项目

  • 有做过多线程开发么

  • room如何实现orm的

  • kotlin和java产物一样么有

  • 各种图片格式的区别

  • 如何保证内存与文件的同步

  • 开一个线程commit,commit不用加锁么?

  • bitmap

  • 怎么确定bitmap被复用了

  • 一张图片占用的内存大小

说来也挺惋惜的,前三家公司都是到了二面甚至是三面才挂掉,如果是一面就挂掉我也不用花那么多时间去煎熬、等待结果,只怪自己自视过高,在一家公司做久了对自己的能力没有一个正确的认知。

之后我开始猛刷大厂的面试题,在朋友的内推下收到了字节的面试题通知,又把字节近几年的面试题都翻出来刷了个遍,终于在四轮技术面+一轮HR面后收到了offer。下面是字节面经:

[](()一面
  • MVC,MMVM,MVP

  • MMVM如何解决MVP中存在的问题

  • 内存泄漏

  • 内存泄漏的几种情况

  • LeakCancary分析内存泄漏的原理

  • 手写单例模式,并分析

  • 算法

  • 找到两个数组中的两个元素的和等于某个值

[](()二面
  • activity

  • onSaveInstance

  • service

  • StartService和BindService的生命周期

  • 求浮点数的平方根

  • Binder的原理

  • 设计模式

  • 工厂模式

  • 抽象工厂模式和普通工厂模式

  • 建造者模式

  • 启动模式有几种

  • 共享内存原理

  • java能实现共享内存么

  • kotlin协程的四个dispatcher及区别

[](()三面
  • window,decorview,ViewRootImpl的关系

面试官 想让你回答如何window和windowManager如何联系的。viewRootImpl是联系window和decorview的纽带

  • 进程间的通信方式

  • AIDL的用法

  • 用法和原理

  • 事件分发

  • onIntercept在哪用

  • 事件分发底层的产生

  • RecycleView的用法

  • 里面的各种Manager作用

  • wake lock:使屏幕常亮

  • Activity是如何被限制到状态栏和导航栏之下的

  • canvas

  • canvas的save和restore的作用

  • canvas的density有什么作用

  • vsync

  • vsync是如何生成的

  • android中异步一般怎么实现

  • android中内存泄漏发生的情况

  • 如何去获取view的宽高

  • 悬浮窗

  • 如何实现一个悬浮窗

  • 一个悬浮窗悬浮在顶层,覆盖了底层的app的启动图标,如果让事件启动图标接收到click事件

  • Android M之前与之后的权限变化

  • ContentProvider

  • 使用

  • 如何找到该contentProvider的

  • RxJava中map和flatmap的区别

  • view的绘制

  • viewgroup是如何刷新的

  • onMeasure,onlayout,onDraw分别起什么作用

  • onLayout的时候可以layout自己么?

  • AndroidManifest

  • 和的区别

一个是系统的权限,一个是自定义的权限

[](()四面 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】
  • 两道算法

  • 洗牌问题

  • 接雨水

  • 两道设计

  • 面向对象原则

  • 用代码描述你觉得最有设计感的项目

后面就是HR面了,我就省略了,相信这些大厂HR面试都不会有太大的差别。

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

面试官通常会问一些开放性的问题,对你的思维拓展能力、多方位的思考能力也是一种考验

永远不要打无准备之仗!早做准备,多做准备!

下面分享一下我之前刷过的面试题以及算法资料,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

[](()Java部分

  • 操作系统相关

  • JDK&JVM&JRE

  • 面向过程 & 面向对象

  • 八大基本数据类型&引用类型

  • 数组

  • Java异常

  • 集合(容器)

  • 线程

  • 泛型

  • 反射

  • 注解

  • Socket编程

  • 设计模式

  • JVM相关

[](()Android部分

[](()Activity
  • 典型情况下的Activity生命周期?

  • 异常情况下的Activity的生命周期 & 数据如何保存和恢复?

  • 从Activity A跳转到Activity B之后,然后再点击back建之后,它们的生命周期调用流程是什么?

  • 如何统计Activity的工作时间?

  • Activity的启动模式 & 使用场景

  • 如何在任意位置关掉应用所有Activity & 如何在任意位置关掉指定的Activity?

  • Activity的启动流程(从源码角度解析)?

  • Activity任务栈是什么?在项目中有用到它吗?说给我听听

[](()由于篇幅有限,只能分享部分面试题,更多面试题及答案去我的[【GitHub】](()阅读下载哦~无偿分享给大家,算是一个感恩回馈吧
[](()BroadcastReceiver
  • 广播是什么?

  • 广播的注册方式有哪些?

  • 广播的分类 & 特性 & 使用场景?

[](()ContentProvider
  • 什么是内容提供者?

  • 说说如何创建自己应用的内容提供者 & 使用场景

  • 说说ContentProvider的原理

  • ContentProvider,ContentResolver,ContentObserver之间的关系

  • 说说ContentProvider的权限管理

[](()Service
  • 什么是Service?

  • 说说Service的生命周期

  • Service和Thread的区别?

  • Android 5.0以上的隐式启动问题及其解决方案。

  • Service保活方案

  • IntentService是什么 & 原理 & 使用场景 & 和Service的区别。

  • 创建一个独立进程的Service应该怎样做?

[](()Handler
  • 子线程一定不能更新UI吗?

  • 给我说说Handler的原理

  • Handler导致的内存泄露你是如何解决的?

  • 如何使用Handler让子线程和子线程通信?

  • HandlerThread是什么 & 原理 & 使用场景?

  • 一个线程能否创建多个Handler,Handler和Looper之间的对应关系?

  • 为什么Android系统不建议子线程访问UI?

[](()AsyncTask
  • AsyncTask是什么?能解决什么问题

  • 给我谈谈AsyncTask的三个泛型参数作用 & 它的一些方法作用。

  • 给我说说AsyncTask的原理

  • 你觉得AsyncTask有不足之处吗?

[](()Fragment
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值