前言
下面的题目都是楼主在Android交流群你们在面试字节跳动时遇到的,若是你们有好的题目或者好的看法欢迎分享,楼主将长期维护此帖。
参考解析:郭霖、鸿洋、玉刚、极客时间、腾讯课堂...linux
内容特色:条理清晰,含图像化表示更加易懂。git
内容概要:包括 Handler、Activity相关、Fragment、service、布局优化、AsyncTask相关
、Android 事件分发机制、 Binder、Android 高级必备 :AMS,WMS,PMS、Glide、 Android 组件化与插件化等面试题和技术栈!github
阿里技术一面-35min
自我介绍面试
Android算法
- 有没有遇到OOM问题(有遇到内存泄漏问题)
- Handler机制
- ThreadLocal
- Activity启动到加载View过程
- View绘制过程
- LinearLayout (wrap_content) & TextView (match_parent) 最终结果???
- OKHttp(1. 为何选择它? 2. 性能了解不?3. 内部有哪些设计模式)
- 了解EventBus嘛?
设计模式数据库
网络编程
其余设计模式
阿里技术二面-1h挂
自我介绍数组
项目缓存
- 为何选择OKHTTP框架
- 加载图片框架?(学一下Glide)
- JSON解析框架?(学一下Gson,FastJson)
- 技术选型?
- 页面个数?
- OSS上传凭证怎么设计缓存?怎么加密?(加密算法??)
- 还有哪些项目能够说的?
Android
- Activity生命周期?启动透明Activity生命周期?按Home键生命周期?
- 后台杀死APP后怎么恢复数据?
- 一个APP能够多进程嘛?
- ListView和RecyclerView区别?
- RecyclerView卡顿怎么排查?
- RecyclerView怎么实现多Type?
- RecyclerView的ItemView层级过深怎么优化?
- Android多进程?
- 怎么设计Android线程间通讯?
- Handler机制?子线程能够用Handler吗?
- ANR?
Java
- private protected public 关键字的用法区别!!!
- 接口,抽象类区别?抽象类要不要实现接口的方法???
- Map的线程安全?读多写少选哪一个集合?(CopyOnWrite,不懂原理没敢说)
网络
- HTTP/HTTPS区别
- TCP了解么?握手与挥手过程?
- 长链接?
- push怎么实现?
腾讯
提早批一面-35min
项目介绍
HTTP(s)
- 介绍下HTTP协议
- HTTPS公钥暴露怎么办
- HTTP分段上传文件怎么保证正确
- HTTP缓存
Java
- 进程 线程区别
- 子线程间通信
- 解决死锁的办法,怎么判断发生死锁
算法题
- 奇数偶数数组,从新排序保证顺序不变,奇数在前偶数在后
- 2数/3数之和
提早批二面-30min-挂
自我介绍
项目介绍
- 项目梳理
- 图片压缩算法? 聊聊关于Android图片压缩那点事儿
- Bitmap JPG区别 图像处理:JPG、PNG及BMP的区别?
- 断点重传?怎么动态肯定范围?Android 实现断点上传文件
- 断点下载?CRC原理 文件校验MD五、SHA一、CRC3二、sha25六、cksum
设计模式
- MVC优势缺点
- MVP中的MVC的C实如今哪
- 单例模式的饿汉与懒汉的选择,使用场景Java单例模式的不一样写法(懒汉式、饿汉式、双检锁、静态内部类、枚举)
HTTPS加密方式
腾讯正式批测开一面-25min
- Crash
- ANR怎么解决
- 设计世界杯32强对战数据结构
- 2个球 100楼找那一层摔下来会坏
- 测开具体工做
腾讯正式批测开二面-1h
项目
Android
- 图片,语音大内存数据的性能排查,定位?
- Handler内存泄漏问题
- ART Dalvik区别?
- GC机制?
- CountDownLatch原理?
算法题
闲聊
百度
百度一面-1h
自我介绍
项目介绍
Android
- Android四大组件安全性
- Activity启动模式
- IntentFilter匹配规则,action和category区别?
- Handler 阻塞为何不卡死?
- 点击事件分发机制,onTouchEvent返回false? dispatchTouchEvent返回false?
- Looper
- 对象池,手写对象池实现
- ContentProvider原理
- sp支持跨进程么?怎么解决跨进程,怎么实现进程同步
- 帧动画实现: 100张图,200ms显示一张,读取一张图要400ms,怎么解决避免卡顿(多线程读)
- Bitmap内存复用限制条件
- 线程时间片分配原理
百度二面-45min
项目
算法题
优缺点
百度三面-45min
技术
- 最长公共子串
- 类加载机制
- okhttp原理
- 热修复原理
其他闲聊
- 优势缺点
- 大学遗憾
- 组织哪些活动
- 长期坚持的事情
- 专业去向
网易
网易技术一面-1h
自我介绍
项目介绍
Android
- TouchEvent传递过程? onTouchEvent返回flase怎么办?
- 怎么设计缓存
- Android数据持久化
- 数据库怎么批处理(原理)
- SP支不支持多线程?SP怎么实现多线程
- View绘制过程
- Handler消息机制
Java
- B线程怎么实现等待A线程完成工做
- 线程怎么结束工做 Java结束线程的三种方法
- Java哪些方法支持中断
- 设计一个有限资源的请求
- 怎么设计对象池(对象的存与放回)
- 线程池的线程何时建立
- Java中的锁
- 可重入锁性能
笔试题
网易技术二面-1h
自我介绍
华为实习
- 参与的项目
- 解的bug
- 参与的编程规范说一下
- Lint工具?
设计模式
Android
- 进程间通讯方式(与linux进程间通讯区别)
- Socket怎么验证安全性
- 广播(全局 本地区别)
- 怎么实现文件的多进程通信(A进程改了文件怎么通知B进程读取)
- 二级缓存怎么设计(网络 数据库 view间关系)
View
- Activivty生命周期
- onSaveInstanceState onRestoreInstanceState区别,调用时机
- 广播注册应该在Activity哪一个生命周期里
- 怎么统计onCreate的次数
- Fragment与Activity区别
- Fragment生命周期管理
- Fragment与ViewPager怎么作到重复加载
- View绘制过程 MeasureSpec的三种模式
- Framelayout LinearLayout ReativeLayout怎么作到View在右下
- margin padding区别
- gone invisible的区别
- requestLayout、invalidate与postInvalidate区别
- Android动画 怎么取消循环动画 repeat模式
- drawable与view区别 有哪些drawable
网易技术三面-50min
自我介绍
项目介绍不用说太细
Android
- 图片传输过程当中URL加上默认大小若是是wrap_content怎么办
- 图片相关缓寸,编码,内存复用
- svg (其余图片格式)
- drawable mutate了解不
- okhttp 桥接拦截器和缓存拦截器
- 设计自定义DNS解析器
- 打点系统设计:写文件过程当中会有buffer,此时进程被杀怎么办,怎样设计日志系统 打点日志被用户篡改怎么办,保证日志安全性
- 磁盘内存映射原理
- 有没有看过开源打点框架
- 平时开发有没有遇到过资源复用
- 最近了解啥Android新动向不
- 本身学习计划
美团现场一天面完
自我介绍
项目
- 实习项目
- 项目最难点
- 技术选择
- OSS STS凭证设计
- Lint工具是编译期的嘛?原理?
场景题
- 美团首页设计?
- RecyclerView多Item的难点?
设计模式
HR
-
有什么offer如今?
-
选择offer依据?
-
上海花费高?
-
怎么解决沟通问题?
若是你进阶的路上缺少方向,能够点击个人【Github】加入咱们的圈子和安卓开发者们一块儿学习交流!
如下所有内容均可以在GitHub中获取!
-
Android进阶学习全套手册

-
Android对标阿里P7学习视频

-
BATJ大厂Android高频面试题

最后,借用我最喜欢的乔布斯语录,做为本文的结尾:
人这一生无法作太多的事情,因此每一件都要作得精彩绝伦。 你的时间有限,因此不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右本身心里的声音。 最重要的是,勇敢的去追随本身的心灵和直觉,只有本身的心灵和直觉才知道你本身的真实想法,其余一切都是次要。