前言
2023.12.15通知被优化,2023.12.31离职。是的,我年底被优化了,这就比较尴尬啦。没得办法,公司融资不理想,活也干完了,技术部就没有存在的必要了。查看了本篇文章,1周找到了工作,嘿嘿嘿,你值得拥有
大环境
2023,大环境持续不大行(公司少了->岗位少了->替代品有了),没有学历+技术+嘴遁+心态是不大好找工作的。
技术储备
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 不熟的可以去学习一波,蛮简单的基本5-10小时就能简单掌握,Dart还是比较好掌握的,毕竟了解Dart/Flutter可以增加面试机会。
面试的时候语言表达还是比较重要,做好充足的准备,珍惜每一次机会,切莫焦虑,加油,你我共勉。
投递平台 BOSS/猎聘,我在BOSS投了一大堆简历,在猎聘就投了几个,结果是在猎聘找到的工作,就是这么神奇。
面试记录
No1. 车企2.03 - 18点
- 启动Activity显示第一帧的时候打印一句话
- MVVM优势和使用
- jactpack 常用那些
- 启动流程 生命周期
- livedata监听
- 扩展函数是怎么实现的
- 协程
- 混淆
- EMS
- HashMap原理
- ClassLoader,热修复
- TCP/UDP区别
- MD5和AES(RSA)
No2. 某体
- 自定义View
- 启动优化
- MVP
- Gilde图片加载
- Socket
- 即时通讯
- 事件打点
- Flutter
- 未来规划
No3. 交易所 16
- 自定义VIew
- 自定义View -layout
- 事件分发
- 滑动冲突
- 启动优化
- 数据安全
- RecycleView
- liveData 不会更新
- livedata注意事项
No4. 某金融公司 -方向海外
- JVM
- Okhttp 5个拦截器
- 启动优化
- 性能优化
- Jetapack
- kotlin apply let run区别
- 模块化和组件化区别
- 装饰者模式和策略模式区别
- 大量字段和数据传输方案
- 谷歌bug紧急修复方案
No5.AI智能
- liveData
- 事件分发
- DOWN拦截后后续还会再触发事件分发吗
- Kotlin扩展函数
- 协程
- Kotlin切换主线程
- 内存优化
- OOM
- 内存检测
- 三方库
- liveData原理
No6.某金融公司 -方向海外
- 海外发行经验
- 线上Bug快速修复
- Activity启动流程
- 性能优化
- 三面成长路线等不涉及技术
No7.某文化
- Java内部类有哪些
- 匿名内部类好处
- 响应式布局和传统布局区别
- 动态代理的使用
- 接口和抽象类的区别
- 单例类
- 性能优化
- 其他,忘记记录了总耗时2小时3轮面试
No8.分享
- compileSDK 和 targetSDKVersion区别
- 说一下今日头条屏幕适配的原理
- 说一下组件化路由表底层怎么做的
- 说一下隐私合规你们改了哪些内容
- 屏幕适配dp和sp有什么区别, dins干什么用的
- 说一下你们公司降级SDK怎么实现的?
- 你们一周发几个版本, 怎么保证一周两个版本不影响客户
- 说一下白屏监测原理
- 说一下RecycleView三级缓存
- 说一下R8和D8的区别
- 说一下如何对不同手机进行等级划分
- 说一下ASM、AspectJ和AST的区别
- 说一下你们项目的参数配置系统设计流程
- 如何自定义一个gradle Plugin
No9.蔚来外包岗
No10.一家硬件公司
No11.医疗
No12.社交类
No13.外企(多家)
面试的内容跟上面类似就不多描述了,外企机会(需要英语口语沟通)偏多点。面试官更多的是看你的沟通能力和项目经验(最好跟公司业务重叠,面试前还是要了解一下公司的定位和项目),没事练练口才还是必须滴,毕竟后面要跟你沟通工作,如果看你不好相处,那肯定就不选啦,祝大家都能找到好工作。