最后我还整理了很多Android中高级的PDF技术文档。以及一些大厂面试真题解析文档。
Android高级架构师之路很漫长,一起共勉吧!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Hashmap原理,如何实现线程安全,HashTable,CourrentHashmap原理
介绍一下java中的锁
单例模式,dcl存在的问题,如何解决
http/https区别,HTTPS加密如何实现。
get/post区别,post 如何实现密文传输
事件分发机制
activity的四种启动模式,及其应用场景
Handler的使用及其原理,子线程如何实现
eventbus干什么的,和handler有什么区别
eventbus能否实现IPC
IPC方式
AIDL底层,没问Binder原理
金山WPS二面
hashmap的实现方式
hashmap如何查找元素
static关键字
final关键字
volatile关键字
单例 线程安全的实现方式,细节
事件分发
volley源码
java函数的访问权限
图片缓存框架的区别
java垃圾回收
算法:
二叉树遍历
中序遍历的下一个节点(剑指offer原题,看了四五遍,还没记住,该打)
翻转链表
二叉树深度
途牛一面
应用上线细节(说要搜我上线的应用)
retrofit源码涉及的设计模式
handler asynctask HandlerThread 的源码
热修复与插件化
Java类加载机制
线程,线程池,线程池核心参数
30M图片的加载,如何预防oom
内存泄漏 的检测与预防
事件分发机制
自定义view
listview 与recycleview 的复用和回收
tcp udp区别
三次握手和四次挥手(这个真没背,那图怎么记啊)
360一面
static关键字
syrizoned原理
自定义控件
事件分发
滑动冲突
四种引用
弱引用的使用
内存泄漏
插件化 dla原理
65535方法的解决
360二面
介绍一下项目
service的使用
IPC java 安卓 把知道的IPC 全说出来,p/v 信号量 管道 信号量 ,复制黏贴版 什么的
性能优化
ANR
OOM
内存泄漏
UI卡顿
BItmap优化
Listview优化
launcher的启动过程
volley源码
butterknife源码
热修复,andfix,sophix,hotfix原理
因为金山二面,和360在同一天面试,金山二面约了45分钟,结果聊了70分钟,错过了360二面的时间,二面面试官一脸嫌弃的看着我。当然这也怪我没安排好时间,希望大家以后面试时间好好安排一下。
腾讯 一面
activity的四种启动模式,具体场景分析
volley,OKhttp有什么区别
OKhttp 复用连接池怎么实现的(这个没看过,面完赶紧看)
volley的源码,OKhttp源码,eventbus源码
httpclient,httpURLconnection内部实现(太原理了,没看过)然后问httpclient,httpURLconnection是哪个组织开源的,黑人问号脸???,还有这种操作。哈哈 。我知道。httpclient是Apache开源实现的,httpURLconnection是sun开源实现的
activity的启动流程(面试完了赶紧看),说没看过,看过其他framework源码,说来一下handler,asynctask源码
Android的任务栈
类的加载过程
不允许写代码,如何定位anr。
service的保活
极光推送的原理 ,心跳包的发送间隔时间(我回答的是5s,面试官让我好好思考思考,然后回答根据具体的应用场景进行判断。巴拉巴拉一大堆)
热修复原理,andfix,hotfix源码?
方法数超过65535怎么办?分包是哪个版本开始支持的,之前的版本不支持,如何加载dex文件。
腾讯 二面
介绍第一个项目的功能,大部分问题是根据第一个项目问的
用户登录与服务器进行交互的过程,如何优化。加密:HTTPS,base64,md5,非对称加密算法 及其使用场景。
listview 如何进行优化,无限下拉加载如何优化
bitmap的优化
jpg和png图片的区别(这个打错了,面试官让我下去查一下)
三级缓存机制,什么时候内存缓存,什么时候磁盘缓存
热修复,阿里andfix,腾讯 hotfix 原理,方案对比
腾讯面试官 还是主要看 思考过程,对安卓整体的理解,而不是答案。后面网易也是一样的。
可能是因为春招面过,评价不太好(当时准备基础,没想到面试官面问框架源码,16分钟,gg),导致秋招无法通过。
网易云音乐一面
安卓常用的布局,特点。LinearLayout和relaviteLayout 区别
fragment与view的区别
fragment的切换方式
fragment的生命周期
fragment的内存泄露
bitmap优化
反射的作用?编译时还是运行时?
java IO 多线程
抽象类和接口的区别
hashmap的底层实现,hash算法,为什么选择hashcode 高16位于低16位异或?直到问到不会~~
synchronized 与reentrantlock 的区别? 等待可中断的内部实现(what~~~ 说了一下如果是我我该怎么实现)
eventbus的内部实现 一直问到不会~~~
handler内部实现 一直问到不会~~~
网易云音乐二面
用过数据库?写了一条sql,问我怎么建索引,然后把 or改成and 问怎么修改优化?(本菜鸡不太会)没怎么用过数据库,只用原生写过一个小demo,安卓基本都orm框架了吧。然后解释了我的数据库是怎么做的。
数据库设计规范,三大范式(数据库课程逃了一学期,老师吹逼不好好讲,没办法,会写sql语句,只知道第一范式)
volley源码,一直问,一直问到不会
项目的难点 MVP的设计架构,MVVM
Drawable 的子类 ,方法(表示只知道 colordrawable,bitmapdrawable,然后继续追问,就说,看过安卓开发艺术探索,有一张专门讲drawable,因为用的少,没怎么看,就放过了)
Drawable 和bitmap区别(又来)
okhttp源码,brigeIntecptor 作用是什么?说一下 http header
Http和HTTPS的区别,HTTPS工作原理
最后
简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。
选定你想去的几家公司后,先去一些小的公司练练,学习下面试技巧,总结下,也算是熟悉下面试氛围,平时和同事或者产品PK时可以讲得头头是道,思路清晰至极,到了现场真的不一样,怎么描述你所做的一切,这绝对是个学术性问题!
面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。
金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
[外链图片转存中…(img-AcxBfNHX-1715597418881)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!