-
自定义View需要重写的方法及调用顺序、可以在这些方法里面创建对象吗?创建对象会怎么样(这里脑子卡了,之前看过内存抖动的定义,就说了内存抖动,下来想想不应该是卡顿吗)
-
Binder应用场景
-
http与https区别
-
udp与tcp使用场景
关于该面试题的答案解析可上 GitHub自行查阅
3月7号
原本以为凉了,第二天就出去玩了,没想到第在路上二面面试官给我打电话了,但是当时在坐车,面试官打了三个电话都没接到(印象分-10000),第四个电话才接到,原本约当天中午12点,来不及就改到了7号上午9点,面试官还是很和蔼随和,体验挺好的。
8点55就进去了,56面试官也进入会议了,开始面试,9点35左右面试结束。
还是没有自我介绍,直接开始问。
-
你做过的项目
-
项目用的什么架构
-
说说MVP,有什么缺点?
-
你说到的P层臃肿怎么解决(这里胡说一通,然后说了个代理类)?
-
MVP有什么改进?
-
说说MVVM的理解
-
ViewModel的作用原理
-
ViewModel与onSavedInstanceState区别(这里翻车,说的是一个手动恢复数据,一个自动恢复)
-
ViewModel怎么保存数据的(ComponentActivity调用onDestory的时候保存???)
-
LiveData原理
-
LiveData怎么绑定的生命周期(LifeCycle???,原理这里只了解个大概,都没怎么答好)
-
说说了解的JetPack其他组件(说了Room)
-
Room的注解是编译作用还是运行时作用
-
还有什么改进吗?(组件化)
-
组件化的思想(这里真的不了解,胡说一通)
-
性能优化(说了过度绘制,RecyclerView缓存以及DiffUtil)
-
内存方面的优化呢?
-
Bitmap复用
-
Bitmap复用会有大小限制吗(引导我说有)
-
你说的卡顿怎么回事(瞎说一顿)?
-
说说了解的第三方源码
-
Okhttp怎么实现缓存的(说的拦截器,然后就改口不了解)
-
Flutter的优劣势
-
Flutter Android平台通道原理(Flutter在Android上本质就是一个View,其他原理不清楚)
-
额,做一道题吧
-
手写栈,尽可能多的实现功能(这里问题很大,考虑了泛型、线程安全、扩容)
这里实现栈的时候出了很多幺蛾子,构造函数使用了非静态常量报错,看了半天也没看出来,面试官说下去解决。使用的index与size会不会多余?(只需要size就行),还有泛型忘了写(面试官一句你的泛型呢?,人都傻了,int用习惯了)
-
数据扩容怎么实现(System的复制数组)
-
反问
最后一句面试过的话人力会给你联系或者公众号(暗示过不了)
反问的时候问了欠缺的地方,面试官说得非常到位,这些东西的原理不清楚!!!不清楚!!!不清楚!!!
面试复习笔记:
这份资料我从春招开始,就会将各博客、论坛。网站上等优质的Android开发中高级面试题收集起来,然后全网寻找最优的解答方案。每一道面试题都是百分百的大厂面经真题+最优解答。包知识脉络 + 诸多细节。
节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
《960页Android开发笔记》
《1307页Android开发面试宝典》
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
.net/topics/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!