超新鲜的字节客户端Android面经,附面试题答案解析

一、字节一面 2021.3.28

(不是按顺序写的,最后一个是代码题)

1、自我介绍

2、项目介绍

3、围绕项目(这一块儿问了很久)

4、代码题,深度优先搜索 给你一个二叉树和一个目标值,判断是否有一条路径的各节点之和等于这个目标值

5、tcp、udp区别以及用处

6、Http常见的状态码

7、GET、POST区别

8、GSON

9、RecyclerView的使用,复用机制,四级缓存

10、ListView、RecyclerView的区别

11、事件分发机制

12、记不得了++

二、字节二面 2021.3.28

(一面结束五分钟进行二面)

面试内容围绕四部分进行

0、自我介绍+项目介绍

**1、代码题(第一部分) 动态规划题目,实在太菜,15分钟才写好 **

判断数组中是否存在长度为3的递增子序列 1 5 3 7 9 ture:179 579 379 137 都是 只需要判断是否存在就行

2、安卓知识,围绕View、事件监听、事件分发进行展开(其中依然会穿插项目内容提问)

3、java知识,其实就是问多线程,从synchronized到线程池,synchronized底层和线程池创建方法,然后就是谈了一下GC,四大引用这一块儿知识

4、场景实例(答的感觉有一点拉跨),给你一个需求,从客户端到服务端进行设计,期间问了一些多线程知识,比如原子类和一个CAS

最后就是问了我目前的一个面试情况,然后说感谢我的参加,也不知道是凉了还是啥,许愿三面or hr面。

三、字节三面 2021 . 3.31

(3.30下午通知第二天下午三面,及其紧张,看各类面经好多三面翻车的)

下面内容未按照顺序

1、自我介绍+项目介绍

2、recyclerView的缓存,以及其中的viewpool怎么实现的

3、http1.0和1.1的区别,现在主要用的什么版本,http的请求头,为什么要用http而不是直接用tcp这些底层的协议

4、存储方式有哪些

5、代码题二分查找升序序列中的绝对值最小的数

6、进程和线程的区别

7、有用过什么图片框架嘛(想说glide来着,但是这块儿看的太少,没敢说。。)

8、反问

总结就是感觉答的很一般,有些问题说的不是很满意,就希望面试官放我一马了,孩子只想找个班上(立个flag,拿到offer倒立洗头hhhh)

Android 面试点汇总

需要更多资料的请点这里即可免费获取

  • [Activity]

    • [生命周期]
    • [启动模式]
    • [启动过程]
  • [Fragment]

    • [特点]
    • [生命周期]
    • [与Activity通信]
  • [Service]

    • [启动过程]
    • [绑定过程]
    • [生命周期]
    • [启用前台服务]
  • [BroadcastReceiver]

    • [注册过程]
  • [ContentProvider]

    • [基本使用]
  • [数据存储]

  • [View]

    • [MeasureSpec]
    • [MotionEvent]
    • [VelocityTracker]
    • [GestureDetector]
    • [Scroller]
    • [View 的滑动]
    • [View 的事件分发]
    • [在 Activity 中获取某个 View 的宽高]
    • [Draw 的基本流程]
    • [自定义 View]
  • [进程]

    • [进程生命周期]
    • [多进程]
    • [进程存活]
      • [OOM_ADJ]
      • [进程被杀情况]
      • [进程保活方案]
  • [Parcelable 接口]

    • [使用示例]
    • [方法说明]
    • [Parcelable 与 Serializable 对比]
  • [IPC]

    • [IPC方式]
    • [Binder]
      • [流程]
    • [AIDL 通信]
    • [Messenger]
  • [Window / WindowManager]

    • [Window 概念与分类]
    • [Window 的内部机制]
    • [Window 的创建过程]
      • [Activity 的 Window 创建过程]
      • [Dialog 的 Window 创建过程]
      • [Toast 的 Window 创建过程]
  • [Bitmap]

    • [配置信息与压缩方式]
    • [常用操作]
      • [裁剪、缩放、旋转、移动]
      • [保存与释放]
      • [图片压缩]
    • [BitmapFactory]
      • [Bitmap创建流程]
      • [Option类]
      • [基本使用]
    • [内存回收]
  • [屏幕适配]

    • [单位]
    • [头条适配方案]
    • [刘海屏适配]
  • [Context]

  • [SharedPreferences]

    • [获取方式]
      • [getPreferences]
      • [getDefaultSharedPreferences]
      • [getSharedPreferences]
    • [架构]
    • [apply / commit]
    • [注意]
  • [消息机制]

    • [Handler 机制]
    • [工作原理]
      • [ThreadLocal]
      • [MessageQueue]
      • [Looper]
      • [Handler]
  • [线程异步]

    • [AsyncTask]
      • [基本使用]
      • [工作原理]
    • [HandlerThread]
    • [IntentService]
    • [线程池]
  • [RecyclerView 优化]

  • [Webview]

    • [基本使用]

      • [WebView]
      • [WebSettings]
      • [WebViewClient]
      • [WebChromeClient]
    • [Webview 加载优化]

    • [内存泄漏]

  • [ART]

    • [ART 功能]
      • [预先 (AOT) 编译]
      • [垃圾回收优化]
      • [开发和调试方面的优化]
    • [ART GC]
  • [Hook]

    • [基本流程]
    • [使用示例]
  • [Proguard]

    • [规则]
    • [公共模板]
    • [常用的自定义混淆规则]
    • [aar中增加独立的混淆配置]
    • [检查混淆和追踪异常]
  • [架构]

    • [MVC]
    • [MVP]
    • [MVVM]
  • [Jetpack]

    • [架构]
    • [使用示例]
  • [NDK 开发]

    • [JNI 基础]
      • [数据类型]
      • [String 字符串函数操作]
      • [常用 JNI 访问 Java 对象方法]
    • [NDK 开发]
      • [基础开发流程]
      • [System.loadLibrary()]
    • [CMake 构建 NDK 项目]
    • [常用的 Android NDK 原生 API]
  • [类加载器]

    • [双亲委托模式]

    • [DexPathList]


      ......
      由于篇幅原因在这里就不过多赘述了,需要更多资料的请点这里即可免费获取

      也可以加入互助交流裙Android技术交流不仅可以免费获取资料,而且还能有一帮大佬为你摆平关于Android的技术问题~

猜你喜欢

转载自blog.csdn.net/Androidbye/article/details/115398511