从2017年初到2019年底我先后面试了腾讯、阿里、美团、字节跳动、百度、滴滴共八次,腾讯和字节跳动面试过两次、从android测试岗面到开发岗,当然都失败了,但是总结下来大厂面试的大体思路真的基本一致。比如:
Java相关知识
Android应用是由Java语言进行开发的,SDK也是由Java语言编写,所以我们要学习java语言。而且Android apk的后台服务器程序大概率是java语言构建,所以学习java也是一种必然。那么Java中哪些东西是我们Android程序员面试被经常问到的呢?像 泛型,多线程,反射,JVM,Java IO,注解,序列化等都属于我们面试高频知识点。
Android相关知识
App开发框架知识体系(内含原理+源码),阿里腾讯面试极其注重源码分析,Binder、IPC、hander、SharedPrefrence 源码和问题点
性能优化 解决过的一些性能问题,在项目中的实际运用4. 性能优化工具5. 性能优化 (讲讲你自己项目中做过的性能优化)
Android前沿技术 热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等
NDK 模块开发 百度专注于人工智能 OpenCV/OpenGl/ 这些又是图像处理必备知识,所以这部分知识是他们比较的,字节跳动的音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发面试必备技能。当然NDK开发的前提,你需要掌握C/C++,jni,Linux等基础。
设计模式
在Java中,重载和重写
用过哪些设计模式
单例模式(静态内部类);其他设计模式简介
常用网络协议
HTTP响应的结构
cookie定义、session和cookie区别
TCP/IP在连接时有几次握手、释放时有几次握手
是TCP协议定义、UDP协议定义、两者区别