共计 8085 个字符,预计需要花费 21 分钟才能阅读完成。
LZ-Says:真是人生如戏,梦如人生呐。
一、前言
骄阳似火,烈日当空。
这是 LZ 面试的天气最实在的写照。
汗如雨下,挥汗如雨,浑身黏的好受。
这是 LZ 面试最好受的中央。
96 年老鼠一枚,自认为年少轻狂,为时尚早,而今,真正被事实打醒了。
好吧,感激大家急躁查看 LZ 以上的废话,开始进入正题了。
二、面试经验
6 天,21 家公司赴约加入面试,感觉被扒了一层皮,So tired。
首先简略介绍下 LZ,LZ 不是大神,只是一名普普通通的小白,小菜鸟。
LZ 是一枚 96 年 Android 鼠,已经自认为 I Love Android,enmmm,Android 不爱我。
非本科,非专科,只是一名光彩的未持证上岗的小兽医。enmmm,目前报名了成人函授本科,啦啦啦~~~
从 14 年 9 月加入工作至今,都是属于野路子,横蛮成长,很是庆幸本人还能保持到当初,仍旧搞 Android。
上面简述 LZ 面试中面试官发问的问题,心愿会对各位有须要的小伙伴有所帮忙。
2.1 某电商公司
- 相熟 Kotlin 么?请简述你所理解的。
- 图片优化怎么做的?(问了好屡次)
- 图片适配怎么做的?(问了好屡次)
- 基于 UI 提供的 IOS 尺寸图,如何做到兼容 Android 各个分辨率?
- 性能优化,具体做了哪儿些操作?
- RecyclerView 中 onCreateView 以及 onBindView 作用以及执行流程,滑动时又是如何执行的?
- RecyclerView 实现多布局、简单布局思路以及逻辑,蕴含事件处理。
- 瀑布流如何实现?瀑布流如何实现 item 项之间边距雷同?
- RxJava 了解。
- 如果想俩个接口的数据都返回后进行解决,应该应用 RxJava 哪儿个操作符?
- 列举熟知的 RxJava 操作符。
- 还应用过 RxJava 实现过什么成果?
- 轮播图实现原理。
本次面试,次要是之前没有经验过电商我的项目以及对已把握的内容没有更深层次开掘,另外对其中的图片局部、RxJava(原理、罕用操作符)、RecyclerView 底层以及最常见的轮播图把握过于全面,只知其一; 不知其二。
2.2 某办公 OA
- 简述 Futtur 以及底部开发应用什么语言?
- 跨平台计划理解过么?无关底层实现理解么?
- 热修复理解么?底层如何实现呢?
- 内存优化做过哪儿些操作,具体阐明下。
- Apk 瘦身做过什么操作?
- SVG 图片思考过么?为什么没有应用?
- 内存透露场景、如何解决以及都应用过哪儿些工具?
- Handler 内存透露起因。
- Java 中援用类型以及区别。
- App 保活如何实现。
本次面试,挂在了对底层的不相熟,把握的太过于全面。不过面试官很不错,一点点的疏导,感激提供机会。
2.3 某公司
Enmmm,进去一通问,根本没停过。
- 领取怎么做的?微信领取以及支付宝领取区别?
- 内存透露怎么解决的?
- 内存优化怎么操作的,形容具体内容。
- OKHttp 应用过程。
- 简述 RxJava + Retrofit 应用。
- App 保活。
- 热更新如何实现。
- 图片压缩形式。比例压缩会导致图片品质有问题么?
- 屏幕适配如何实现。
- 性能优化,具体做了哪儿些操作?
- 图片加载。
- 如何缩小 Apk 大小。
。。。
Enmmm,间接拜拜啦您那~
2.4 某音视频公司
- 线程和过程区别。
- 过程中如何开启一个线程。
- 过程间通信形式。
- Intent、Bundle 外部如何实现传递。
- 算法理解过么?
- 树的构造简要剖析。
- 二叉树理解么?
- 红黑树简述。
Enmmm,全程很是难堪,最初面试官淡淡说了句,咱们要求必须把握算法。
Enmmm,秒懂。。。
果决挂在算法。。。以及底层。。。
2.5 某谷歌工具
- Service 应用场景以及启动形式。
- 播送注册形式以及应用场景。
- 为什么进行 Android 逆向反编译,次要做什么操作。
- 数据共享做过么,请形容具体细节。
- App 保活如何实现。
- RxJava + Retrofit 如何应用,请简述。
- 动静权限治理。
- 如何实现相似炫彩复电成果。
- 内存优化、内存透露以及 Apk 减小大小如何实现。
Enmmm,面试官小哥哥很 nice,老板人很不错,聊得很开心,惋惜没有心动的感觉。Sorry,祝福公司一切顺利~ 感激认可。
2.6 某领取公司
- 做过串口开发么?
- C++ 相熟么?
- SDK 写过么?
- 底层架构理解过么?
Enmmm,HR 说想要找个会底层开发的。
Enmmm,秒懂。。。感觉有点坑,其实 应该早早的沟通好,防止有效意义的面试。
2.7 某 AR / VR SDK 公司
- 做过 SDK 么?SDK 封装的重点,要点以及优化。
- AR 以及 VR 区别。
- 屏幕适配怎么实现。
- 性能优化,具体做了哪儿些操作?
- 对接过底层么?
- 音视频理解过么?
- 视频录制、预览、显示以及压缩理解过么?
- 图片拍摄、预览以及压缩理解过么?
- 调用过 Anroid 传感器么?
- 哈夫曼算法简述。
- Android 外接设备理解过么?
- 通信协议以及硬件交互通信协议理解多少?
- 平安方面做过什么?
- Android 如何管制摄像头、闪光灯等。
Enmmm,感觉还不错,可能是因为半年试用以及没有心动的感觉吧,Sorry,感激认可。
2.8 某区块链公司
面试过程前遇到一点不欢快,前期被公司的实力折服了。
第一轮面试:
- Http 理解过么,简略形容。
- Http 底层协定理解过么?
- get、post、delete 等罕用形式理解过么?
- Http 通信协议理解过么?
- 图片加载应用过哪儿些工具,蕴含第三方开源工具。
- Glide 3.0 以及 4.0 区别。
- 如何基于 Glide 3.0 实现图片加载进度显示。
- png,jpg,webP 以及 svg 区别。
- EventBus 理解过么,底层机制是什么?
- 图片优化怎么做的。
- 大图加载做过么,形容思路。
- 首页蕴含四个底部 Tab 以及 ABCD 4 个 Fragment,A Fragment 外部蕴含 ABCD 4 个 Fragment,外部须要动静加载数据,如何实现?
- Handler 机制。
- 线程间通信。
- 缓存池、线程池理解过么?实现原理。
- OkHttp 缓存内容是什么?
- Maven 以及近程依赖地址区别。
- 区块链理解过么?
第二轮面试:技术总监
- HashMap 机制以及 put 数据时外部如何实现?
- HashMap 如果增加数据时,Hash 值抵触外部怎么解决?
- Java 中的 GC 机制以及外部应用算法简述。
- Android 如何造成一个 APK,请简述过程。
- 为什么要将 java 文件转为 class 文件。
- Tcp、Socket、WebSocket 应用过么。
- Http 底层架构理解多少。
- 通信协议理解多少?
- Android 逆向原理。
- Android 各个版本之间差别。
- 所经验公司哪儿家播种最大,请说出起因。
- 你感觉你善于什么?
- 算法理解多少?
- 职业规划怎么想?
Enmmm,虽说面试前遭逢了一丝丝不欢快,然而公司环境不错,大佬很 6,挺喜爱,高端霸气上档次~
2.9 某坑公司
- 做过 TV 利用么?
- Activity 生命周期以及生命周期作用。
- 零碎保活。
- Service 如何启动 Activity?
Enmmm,问了下薪资,而后间接拜拜了。。。
蛋疼无比。。。麻烦贵司 HR 小姐姐看好简历在发送邀请函,或者说前提沟通确认好再发送好吗?大热天的跑的,enmmm,扎心。也怪本人没提前看清楚。
2.10 某键盘公司
- 请说出缓存池中要害几个参数。
- 正式包与测试包区别。
- 代码混同,应该混同哪儿些文件,哪儿些文件不能混同,为什么?
- RxJava 理解多少?还用 RxJava 做过哪儿些货色?
- 多线程应用留神要点。
- HashMap 原理。
- 屏幕适配以及权限解决。
- 有没有在其余设施上遇到坑,比方小米手机拍照。
- 内存透露怎么解决。
- 组件化理解多少?
- 性能优化怎么操作,应用过什么工具?
- RxJava 举例操作符以及作用,线程切换应用哪儿个操作符?
- RxJava 中 subscribeOn 和 observeOn 两个操作符区别。
- Http 协定、Http 基于什么实现以及申请标准是什么?
- Token 应用场景。
- 如何确定用户异地登陆。
- 极光推送失败时如何解决。
Enmmm,望京 SOHO,简直快干到最高一层,要求手写组件化,短板一个,八成完犊子了。
2.11 某教育公司
- 泛型意义,Android 中有哪儿些 API 应用了泛型。
- ScrollView 蕴含一个 Button,请问当 Button 被点击时事件如何传递,按住 Button 滑动时事件又是如何散发的?
- 排序算法理解多少?
- 疾速排序底层原理简略形容。
- 二叉树简略形容。
- 红黑树简略形容。
Enmmm,公司看的不错,高端大气上档次。感觉有点抓不住面试官的思路,也可能本人对所把握的常识太过于的死板,不能达到活学活用吧。
2.12 望京 SOHO 某坑公司
9.30 面试,到了等半天,差不多十一点多 HR 过去简略问了点根本问题以及理解根本状况。
Enmmm,而后用人部门过去,简略问了问之前如何对接领取而后说学历不行。
而后说帮忙问其余部门须要么,后果,Enmmm。。。
无奈,GGG。。。
小姐姐,下次能认真点么?地铁费也很贵的呢~!!!
对了进去的时候还遇到一个贵妇人,据说要给我内推 JD 金融,问学历是不是 211 / 985,而后 GG 了,哈哈。
2.13 某军工通信公司
- SDK 做过么?请形容 SDK 开发过程中留神的要点。
- Http 协定以及其余通信协议理解多少?
- 为什么不能在子线程中实例化 Handler?
- AsyncTask 外部机制。
公司离得比拟远,不过薪资待遇还不错,惋惜没找到心动的感觉,Sorry。
2.14 某某金融团体
- 底部导航如何实现,请说出手写和第三方开源库区别。
- 自定义 View 理解过么?请简略形容。
- Fragment 切换形式。
- Fragment 懒加载实现。
- 图片加载与优化。
- 应用过哪儿些开源框架?
- 性能优化如何实现?
- 有没有察看过 App 手机所占内存。
Enmmm,感觉不是很爽。
名儿挺好听,就好比 LZ 之前廊坊带的公司,某某团体,后果,感觉不是故意招人。遂,拜拜了您呐~
2.15 某社交公司
面试小哥哥:
- 变量的作用域区别,默认不写是哪儿种?
- 全局变量和局部变量区别。
- String 是线程平安的么?线程平安应该应用什么?
- HashMap 底层原理。
- List 底层原理。
- ArrayList 和 LinkList 区别、优劣势以及底层操作原理。
- 栈和堆区别。
- Java 中 GC 机制简述,蕴含其外部应用算法。
- Java 中设计模式理解多少?罕用的场景有哪儿些(你个别在哪儿些场景应用)?
- 请简述单例模式。
- 请简述观察者模式。
- 观察者、被观察者以及订阅作用是什么?观察者和被观察者关系是什么,n 对多,还是?
- A 是被观察者,B 是观察者,B 产生扭转时,他俩之间的执行程序是什么?C 也是观察者,此时被观察者产生扭转,执行的程序又是什么?
- 线程池和缓存池理解多少?它们之前的劣势又在哪儿?
- 你是如何实现缓存池的,请说出实现思路以及其中要害参数。
- Activity 生命周期、每个生命周期作用以及在我的项目中会在哪儿些状态下进行哪儿些操作,例如在某某中进行数据缓存等。
- Activity 启动模式、启动模式区别以及实用场景。
- 假如当初有 A,B 两个 Activity,A 跳转 B,此时生命周期如何调用?从 B 返回 A,此时又是如何调用?
- Service 简述、启动形式有几种,区别在哪儿?在我的项目中哪儿块用过,怎么应用的?
- 播送应用,动态注册和动静注册区别,以及俩种注册形式应用场景。
- ContentProvider 如何实现数据共享,原理是什么,如何操作?请简要说出实现步骤。
- Handler 实现机制原理。
- 请简述 Volley、OKHttp 以及 RxJava + Retrofit 之间区别。
- OKHttp 底层原理理解多少?
- 请简述 Lru Cache 算法。
- 图片压缩如何实现?
- 图片加载应用过什么?
- Gilde 3.0 和 4.0 区别。
- Gilde 外部原理看过么?缓存机制如何实现?
- RxJava 操作符理解多少?
- map 作用,concat 作用。
- MVC、MVP 以及 MVVM 区别。
- SQLite 应用过么,第三方的数据库应用过哪儿些?
- 线程间如何通信,多线程实现原理以及多线程时须要留神的要点。
- 自定义 View 以及 自定义 ViewGroup 区别。
- 内存优化、性能调优等等等。
- AS 开发过程中装置的插件有哪儿些。
- 手写冒泡排序以及单例模式。
有些记不清了。。。
技术总监:
- 说说 Java 为什么能跨平台。
- 枚举作用以及用法。
- 不应用枚举,自定义一个类实现枚举成果,怎么实现,说一下大略思路。
这家面试官小哥哥感觉不错,技术总监感觉不是很靠谱,不过,说得预先想想还是蛮有情理。只是 LZ 始终野路子,之前只是为了工作而应用,而没有去思考外部底层实现原理。
2.16 剩下其余的公司
其实问的都差不多,可能很多方面都是更偏差于贵司业务或者其余方面,接到一些 offer,然而因为集体起因还是回绝了,Sorry,感激认可。
2.17 Bear 提供面试纲要
- Handler 音讯转递机制,为什么 Loop 始终在死循环而 UI 界面不会卡死?
- 数据库多线程并发问题。
- 网络层的重构为什么不必 AskTask。
- OKhttp 的源码,工作连接池是怎么复用的,说一下各个拦截器的程序以及做了哪些货色。Cache Lru 算法理解一下。
- Glide 的缓存。
- APK 瘦身做了哪些?要具体来实际一波。
- 线程间通信形式。
- Recyclerview 的 4 级缓存。
- App 启动流程。
- Binder。
- 自定义 View。
- Okhttp 源码。
- Retrofit 和 Rxjava。
- HashMap。
- 事件散发机制。
三、比拟好的面试材料
Enmmm,针对以上内容,集体找了一些面试题,也算是尽本人一点微薄之力吧~
Enmmm,祝福各位老铁都能够找到称心的工作~
3.1 前辈的面试心路
- 最接地气的 Android 面试总结心得:https://www.jianshu.com/p/d80…;
- 我所经验的 Android 面试:https://www.imooc.com/article…;
- 震惊! 这年 Android 面试的那些套路:https://www.jianshu.com/p/c39…;
- Android 面试教训分享,一举拿下百度、网易、美团、小米 offer 面试经验:http://android.tedu.cn/workpl…;
- 面试完 BATTMD 等数十家公司,我想谈谈对于 Android 面试那些事(免费):https://xiaozhuanlan.com/topi…;
3.2 比拟不错的面试题
- Android 2017 – 2018 最新面试题(3- 5 年教训集体面试经验):https://blog.csdn.net/huangqi…;
- 2018 年 Android 面试题含答案 – 适宜中高级(上):https://www.cnblogs.com/huang…;
- 2018 年 Android 面试题含答案 – 适宜中高级(下):http://www.cnblogs.com/huangj…;
- Android 面试题含答案 适宜中高级:http://www.apkbus.com/blog-87…;
- Android 阳哥面试宝典 3.0 pdf 文档:链接:https://pan.baidu.com/s/1aXXb… 明码:e4d3
- Android 面试系列 2018 总结(全方面笼罩 Android 知识结构):https://blog.csdn.net/clandel…;
其实个人感觉,面试题都差不多,可能就是多看多理解,多去了解,说出本人的见解,敢于和面试官进行沟通,以不便深刻理解。
而且很多时候,在工作中应用的过程中要多去 = 思考思考其外部,多问几个为什么。
最初嘛,因为 LZ 本身起因,临时无缘 BATJ 等一梯队或者二梯队面试,临时不能提供更无效的倡议咯。
3.3 Java 局部
- HashMap 深度解析(一):https://blog.csdn.net/ghsau/a…;
- HashMap 深度解析(二):https://blog.csdn.net/ghsau/a…;
- HashTable 和 HashMap 的区别详解:https://blog.csdn.net/fujiaka…;
- Java 容器类源码 ArrayList 的最全的源码剖析:https://blog.csdn.net/ljcITwo…;
- Java GC(相对干货):https://yq.aliyun.com/article…;
- 内存溢出和内存透露的区别:https://blog.csdn.net/buutter…;
- 设计模式 | 菜鸟教程:http://www.runoob.com/design-…;
- Java 教程:http://www.runoob.com/java/ja…;
3.4 Android 局部
简略分类,简略记录,搜寻比拟好的文章,以供大家查阅。
3.4.1 Android 根底局部
- 2018 年安卓巴士最新 Android 入门教程:http://www.apkbus.com/book/co…;
- Material Design 学习:https://blog.csdn.net/column/…;
网上基础教程太多了,目不暇接,索性间接贴出 Bus 最近新推出的教程吧,简略有个理解。
3.4.2 Android 第三方应用
- 贺贺逆向路(简略理论):https://blog.csdn.net/column/…;
- Data Binding 根底篇:https://blog.csdn.net/u012400…;
- Data Binding 进阶篇:https://blog.csdn.net/u012400…;
- Data Binding 高级篇 – 简略浏览源码:https://blog.csdn.net/u012400…;
- 腾讯 Bugly 学习理解:https://blog.csdn.net/u012400…;
- 极光推送应用心得以及记录:https://blog.csdn.net/u012400…;
- 玩转 GreenDao 3.2.2:https://blog.csdn.net/u012400…;
- 初识 ButterKnife (8.5.1) 及简略使用:https://blog.csdn.net/u012400…;
3.4.3 框架源码解析局部
- Glide 3.7.0 最全解析(郭神出品,必属精品):https://blog.csdn.net/column/…;
- OkHttp 3.7 源码剖析:https://yq.aliyun.com/article…;
- EventBus 原理源码剖析和应用:https://blog.csdn.net/hua6311…;
- 这可能是最好的 RxJava 2.x 入门教程:http://www.apkbus.com/blog-89…;
3.5 鸡大精品
鸡大的文章都是很 666 的,集体节选以下几篇,心愿大家有所播种:
- Android 开发相干的导图收集:http://www.dajipai.cc/archive…;
- Handler 音讯源码流程剖析:http://www.dajipai.cc/archive…;
- HandlerThread 线程间通信:http://www.dajipai.cc/archive…;
- 瞎扯 – 学技术:http://www.dajipai.cc/archive…;
- 瞎扯 – 表白:http://www.dajipai.cc/archive…;
3.6 收集的一些简历模板
能够淘宝一块钱买个 500 丁的一天会员,间接写完导出 PDF。
上面附上集体收集的局部简历模板,感兴趣的能够下载挑挑:
链接:https://pan.baidu.com/s/173ac… 明码:htvf
四、面试心得
第一条心得:
永远不要沉迷在温水区,适当的折腾折腾本人,去看看里面的世界。
第二条心得:
肯定要谋求代码的高质量,高性能,肯定要多去看源码,从源码的思路登程。
第三条心得:
工作中涉猎到的技术点,肯定要深究底层,哪儿怕是简略深刻理解也要比只是简略会应用要强很多。
第四条:
肯定要多牢固大佬,大佬的点滴都能让咱们受益匪浅。
第五条:
面试简历上写的货色,肯定要本人把握了,目前还是少写精通,否则面试官会问到你底裤没得。
第六条:
面试时,肯定要自信一些,多去和面试官进行交换沟通,毕竟有些面试官喜爱问本人善于的局部,而且面试官也不不足大佬。而且,接 offer 时须要简略理解下公司状况以及业务方向,免得造成有效意义的面试。
六条小心得,衷心祝愿各位老铁能找到本人称心的工作~!
另外,以上内容是 LZ 简略整顿,欢送各位补充~~~