笔试逻辑题
Java有哪些数据结构
Arraylist是线程安全的吗
String,StringBuilde,StringBuffer的区别
Java中的锁介绍一下,同步锁举例
四大引用区别,场景举例
Activity生命周期
Fragment生命周期
Fragment销毁生命周期执行顺序
自定义流程,举例
自定义View刷新方式有哪些,执行流程
事件分发原理,举例,延伸
滑动冲突怎么解决
怎么自己实现一个长按事件
Service是哪个线程,怎么通信
Handler消息机制
Handler发送消息是一定立即执行的吗
Handler运行在哪个线程
子线程可以创建Handler吗,写法有哪些区别
Kotlin定义变量的方式有哪些
lateinit怎么确保使用时已经初始化
let,run,apply介绍,区别
inline原理
简单介绍下协程
协程并发怎么处理
协程底层是怎么实现的
内存泄露原理,举例场景
启动优化
做的最有成就感的项目是哪个
印象最深刻的项目是哪个
LiveData底层实现原理
启动优化
包体积优化
自定义View流程
View异步加载
有用过哪些设计模式
介绍一下单例,饿汉式,懒汉式,双重锁
代理模式和装饰模式的区别
策略模式和状态模式的区别
说说观察者模式
有看过哪些三方库的源码
Glide四层缓存机制
AMS了解多少
简单介绍一下HashMap
HashMap调用put的执行流程
Activity启动流程
Binder机制
Handler消息机制
Handler是怎么实现主线程和子线程的通信的
Looper卡死为什么不会造成主线程的阻塞
了解过内存泄露吗
是怎么发现内存泄露的,怎么处理的
线上的内存泄露是怎么监控的
LeakCanary实现原理
软引用和弱引用的区别
了解过ANR吗
什么原因会造成ANR
Activity的响应时间为什么是5s
事件分发机制
怎么解决滑动冲突的
录音功能是怎么做的
编码解码相关
包体积优化做了哪些工作
挑一个项目详细说一下,以及相关技术栈
介绍一下协程机制
说一下Dispatchers,withContext,Scope他们的作用
说一下你理解的MVP,MVVM
Flutter相关
性能优化做了哪些工作
编译速度怎么提升的
内存泄露
LeakCanary检测原理
热修复,Sophix原理,ClassLoader
Apk打包流程
多线程并发,如何保证线程安全
synchronized修饰方法和修饰代码块有什么区别
技术调研你是怎么做的,会考虑哪些因素
说一下MVVM
用过Jetpack中的哪些组件
LiveData是怎么做数据派发的
ViewModel屏幕旋转的时候怎么做到不丢失数据的
使用MVVM的过程中有遇到什么问题吗
性能优化做了哪些工作
内存泄露有哪些场景
LeakCanary检测原理
如果让你做一个自动化的工具去检测图片过大并自动压缩你会怎么做
自定义View画板是怎么做的
怎么检测页面的FPS
Handler在onCreate中发送大量数据会导致主线程卡顿吗
LayoutInflater.inflate有几个参数,分别是什么意思
Android中的Context了解多少
Application里面可以弹窗吗
Activity、Window、View三者的关系
OkHttp中有哪些设计模式
Retrofit中有哪些设计模式
Retrofit.create做了哪些工作
自定义一个圆角View
协程launch有哪些参数
说说by关键字
代理和委托的区别
双亲委托模式
有几种获取view宽高的方式
view.post为什么可以获取到
getWidth和getMesureWidth的区别
手写遍历二叉树
手写双重锁单例
手写插入排序
手写双数组去重并排序
如何判断链表有环
还有一些公司的没有记,比如蔚来、中欧基金、阿里等,如果上面这些你能掌握大部分,自然也不在话下。
都是偏项目和综合能力,因人而异就直接整理了。
你负责项目中的哪些模块
介绍一下xx功能的流程
项目的架构是怎样的
Kotlin和Java混编有哪些需要注意的
项目中有遇到哪些难点
如果让你重构,你会怎么做
学习的途径有哪些
你觉得什么样的代码是好代码
团队是怎么分工的
怎么做需求管理
期望什么样的团队
怎么看待大前端方向
一个新技术如何在团队里推广
未来的规划是什么,你打算怎么实现
认为自己的优点是什么,缺点是什么
为什么离职
整理。
为什么离职
介绍一下过往的工作经历
在上家公司你有什么收获吗
目前看机会会考虑哪些因素
你在之前的团队中是怎样一个角色
有什么兴趣爱好吗
最有成就感的一件事
有没有做过什么不可思议的事
你认为自己的优点是什么
最近有在看什么书吗,有什么感想
你一般遇到问题都是怎么解决的
未来的职业规划是什么
你对未来的公司有什么期望吗
目前薪资
期望薪资
还有什么想要问我的吗
技术要点
针对上面的问题,我总结了一下面试前需要掌握的一些知识点:
Java基础、Kotlin基础、Android基础(重要)
App启动流程
Handler消息机制
View绘制流程
事件分发机制
Jetpack常用组件原理
Kotlin协程原理
性能优化
多线程、并发
组件化开发
热修复原理
常用三方库原理
常见的设计模式
数据结构和算法
建议面前多练练手写算法,最好是拿笔在纸上写。
关于算法,不过是基于数据结构去操作数据的思想而已。
如果说限制了复杂度而想不出来的话,可以先写再看如何优化。
Author : yechaoa
市场行情
目前并不是招聘旺季,但机会还是有的。
可能有些同学看了上面的面试题觉得卷,正常的。
现在市场越来越成熟稳定,对面试者的要求也更高,加上技术更新又快,从Java到Kotlin、到Flutter、到Compose等等,确实有很多东西要学,很多同学都表示学不动了,我觉得,盲目跟风不如好好沉淀。
另外,再从面试官的角度
聊聊。
虽然说大部分面试确实是各种底层实现、底层原理、手写算法什么的,不过作为面试官来说,其实有些也并不是要你都掌握的,问的深,一方面是校验八股文,另一方面主要是技术摸底,看看你的技术边际在哪,所以说,一场面试下来,能答上大部分即是通过了,当然,越多越加分。
只要技术够硬,都是机会。
如何写好简历
简历是开启面试的第一步,重要性不言而喻,一方面反应你的实力,另一方面也反应跟目标岗位的匹配度,不过很多JD都是复制粘贴,我个人也没有动态改简历。
如何写好简历,一定要简洁且突出重点。我也面过不少人了,看过7-8页的简历,有些项目经历是没必要全都往上写的,面试官也看不过来,最好是保持在3页左右比较合适,项目经历比较丰富的同学,可以挑重点来写。
我个人简历大概模板:
个人信息
技能清单
工作经历/项目经历
开源项目/博客
教育经历
我是MD排版,PDF格式,参考模板
投简历时有一个建议
,不要开放简历,要主动投递。开放简历会有各种邀请面试,也不好拒绝,就可能会因为没准备好而错失一些机会。可以先去其他公司找找感觉,再面心仪的公司。
另外,一定要对自己简历上写的东西做到熟练,没用过的,不会的就别写了,万一问了不会,就是在给自己挖坑。
自我介绍
自我介绍需要好好准备,因为这可能是你整个面试环节中唯一的主动机会,也是引导面试官的第一步,可以介绍最近的项目经历啥的,以及相关技术栈等等,引导面试官往你擅长的领域提问。
挑重点不要啰嗦,时间控制在两分钟左右。
离职原因
这个其实大家都心知肚明,但是回答的时候还是委婉些的好,不抱怨原则。
不过HR总是有很多种问法,比如:
你在上家公司才做了一年多,为什么选择离职呢?
你在上家公司已经做了四年多,为什么选择离职呢?
回答建议:
想去更好的平台
薪资与个人付出不成正比
公司业务方向与个人职业规划出现偏离
关于公司倒闭,我个人觉得没问题,但如果是干一家倒一家,那HR可能会否你…
职业规划
很多都会问这个问题,相似问题,你最近在学什么技术,看什么书。
这块很多同学其实会放松警惕,看似无关紧要,实则暗藏玄机,因为在求职过程中,在学在看的,可能是自己薄弱的地方。
比如你说未来想研究一下主流三方库的源码,学习优秀的设计理念,看似好像很努力很上进,其实面试官听到的是,主流三方库我只会用,不知道原理,我就是个API调用师。(尬不尬?)
所以这块的回答一定要有深度或者广度,要有想象空间,但是不能太离谱,需要好好斟酌。
回答建议:
其实要轻松掌握很简单,要点就两个:
你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
以上就是总结的关于在面试的一些总结,希望对大家能有些帮助,除了这些面试中需要注意的问题,当然最重要的就是刷题了,这里放上我之前整理的一份超全的面试专题PDF
还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
实要轻松掌握很简单,要点就两个:**
你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
以上就是总结的关于在面试的一些总结,希望对大家能有些帮助,除了这些面试中需要注意的问题,当然最重要的就是刷题了,这里放上我之前整理的一份超全的面试专题PDF
还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
[外链图片转存中…(img-j1Mfln0a-1631079444158)]
这里只是整理出来的部分面试题,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢在关注一下~