Android 2023面试总结

前言

本人2022.12.23通知被优化,2022.12.24完成交接走人,拿了n+1的赔偿,因为当时快过年加上需要沉淀一下就晚一些找工作。

大环境

今年大环境是真不行,以后行不行不知道。已于3月中入职,忙活到现在一直没找出时间写文章,现在也总结一下,为以后找工作做个准备。

技术储备

1.基础

  • 必须掌握
    • HashMap原理
    • 并发
    • JVM
    • 动态代理
    • TCP三次握手四次挥手
  • 可选
    • 线程
    • 线程池
    • 加密

2.UI层面

  • 必须掌握:
    • 自定义View/ViewGroup
    • 事件分发原理
    • RecycleView缓存机制/原理/源码,
  • 可选
    • setContentView流程分析
    • ViewPager源码解析与性能优化

3.Framework层源码

  • 必须掌握:
    • Binder
    • Handler
    • AMS+ATMS
    • startActivity启动流程
  • 可选
    • Activity启动模式
    • WMS
    • PMS

4.三方库源码

  • 必须掌握

    • Retrofit
    • OkHttp
    • RxJava
    • Glide

    不只是简单的使用还要理解其原理,能掌握源码最好了

5.扩展

  • 必须掌握
    • 性能调优
    • OOM原理
    • ARN分析
    • Apk瘦身
    • 线上Bug检测
    • Kotlin 能上手
  • 可选
    • LeakCanary(内存泄漏监控)原理解析
    • 内存优化
    • 存储优化(MMKV使用及原理)
    • 屏幕适配
    • 电量优化
    • Flutter/Dart

其他

面试不仅仅是上面这一点内容,需要你特别全能,问的不仅特别广,而且特别深,所以能多掌握就多掌握,因为你不确定面试官会问你哪些内容。

样例

有一家面试官是后端的,只问Java层面的知识点,Android方面就是说场景让你提供解决方案,其实公司Android开发用的语言是Kotlin,就是这么神奇。

Flutter

如果对 Flutter 不熟的可以去学习一波,蛮简单的基本5-10小时就能简单掌握,Dart还是比较好掌握的,毕竟了解Dart/Flutter可以增加面试机会。

经验

面试的时候语言表达还是比较重要,做好充足的准备,珍惜每一次机会,切莫焦虑,加油,你我共勉。

平台

投递平台 BOSS/猎聘,我在BOSS投了一大堆简历,在猎聘就投了几个,结果是在猎聘找到的工作,就是这么神奇。

面试记录

No1. 车企2.03 - 18点

  1. 启动Activity显示第一帧的时候打印一句话
  2. MVVM优势和使用
  3. jactpack 常用那些
  4. 启动流程 生命周期
  5. livedata监听
  6. 扩展函数是怎么实现的
  7. 协程
  8. 混淆
  9. EMS
  10. HashMap原理
  11. ClassLoader,热修复
  12. TCP/UDP区别
  13. MD5和AES(RSA)

No2. 某体

  1. 自定义View
  2. 启动优化
  3. MVP
  4. Gilde图片加载
  5. Socket
  6. 即时通讯
  7. 事件打点
  8. Flutter
  9. 未来规划

No3. 交易所 16

  1. 自定义VIew
  2. 自定义View -layout
  3. 事件分发
  4. 滑动冲突
  5. 启动优化
  6. 数据安全
  7. RecycleView
  8. liveData 不会更新
  9. livedata注意事项

No4. 某金融公司 -方向海外

  1. JVM
  2. Okhttp 5个拦截器
  3. 启动优化
  4. 性能优化
  5. Jetapack
  6. kotlin apply let run区别
  7. 模块化和组件化区别
  8. 装饰者模式和策略模式区别
  9. 大量字段和数据传输方案
  10. 谷歌bug紧急修复方案

No5.AI智能

  1. liveData
  2. 事件分发
  3. DOWN拦截后后续还会再触发事件分发吗
  4. Kotlin扩展函数
  5. 协程
  6. Kotlin切换主线程
  7. 内存优化
  8. OOM
  9. 内存检测
  10. 三方库
  11. liveData原理

No6.某金融公司 -方向海外

  1. 海外发行经验
  2. 线上Bug快速修复
  3. Activity启动流程
  4. 性能优化
  5. 三面成长路线等不涉及技术

No7.某文化

  1. Java内部类有哪些
  2. 匿名内部类好处
  3. 响应式布局和传统布局区别
  4. 动态代理的使用
  5. 接口和抽象类的区别
  6. 单例类
  7. 性能优化
  8. 其他,忘记记录了总耗时2小时3轮面试

No8.分享

  1. compileSDK 和 targetSDKVersion区别
  2. 说一下今日头条屏幕适配的原理
  3. 说一下组件化路由表底层怎么做的
  4. 说一下隐私合规你们改了哪些内容
  5. 屏幕适配dp和sp有什么区别, dins干什么用的
  6. 说一下你们公司降级SDK怎么实现的?
  7. 你们一周发几个版本, 怎么保证一周两个版本不影响客户
  8. 说一下白屏监测原理
  9. 说一下RecycleView三级缓存
  10. 说一下R8和D8的区别
  11. 说一下如何对不同手机进行等级划分
  12. 说一下ASM、AspectJ和AST的区别
  13. 说一下你们项目的参数配置系统设计流程
  14. 如何自定义一个gradle Plugin

你可能感兴趣的:(android,面试)