阅读 51

安卓开发必备知识体系:安卓篇

1. 前言

前后历时一个半月,也算是拿到了心仪的 offer,顺便水一篇总结把。

前后经历了菜鸟网络、有赞、手淘、头条、全民直播、喜马拉雅,面的多是 1~3 年的岗位。除了手淘和头条一面被刷 QAQ,其他的都走完了流程,然而拿到 offer 的只有最后两个。对比之下,选择了喜马拉雅。

马云说,员工离职的原因无非是钱不到位、或者心委屈了。看着周围的同事整天浑浑噩噩,满足于改改UI、应付一下需求,不知不觉就过30岁了,这可不是我想要的生活。「生于忧患,死于安乐」,温水煮青蛙永远不是什么好事。

毕业时,年少无知,加上当时水平太菜,稀里糊涂进了小公司。现在看来凭空给面试增加了不少难度 QAQ。整体下来最常听到的一句话是「你的 app 没啥亮点嘛」233,印象分大减。所以项目简单的话,基础千万要打扎实。

其实,挺想进阿里的,尽管没有如愿,不过也是一次宝贵的经历。孙子兵法有云:「求其上,得其中;求其中,得其下;求其下,必败。」好在一开始照着 bat 的目标去准备,最后去了喜马拉雅,到也还好。还有一点,阿里各部门的难度也是不同的。手淘就明显难于菜鸟,毕竟这么多年的积累在那里。

技术栈最新的应该是有赞,那边的氛围非常不错。这几个问题你们感受下:

  • http2 相对 http1 有哪些优化

  • 平常怎么学习 http, RFC 看过吗

  • 协程了解过吗

  • 刚出的「快应用」了解过吗(我去面的时候真的是刚出来没几天 QAQ)

  • 熟悉 Rxjava?解释一下背压,解释一下 Observable 冷、热

虽然走完流程了,不过很多没答上来,最后凉凉了。

头条、手淘的话,都遇到了「图片框架选型」,没有刻意准备的话这个问题多半要栽。常见的 Picasso, Fresco, Glide, 需要你对比着讲一下,其他的公司可能能讲清楚你熟悉的那个就放过你了。手淘还特意问到了 Glide 中的 BitmapPool,也即 Bitmap 重用的实现(注意与 Bitmap 缓存(LRUCache)不是同一个东西),一脸懵逼.jpg 。。。

另外,okhttp 也可能被问到,只知道个拦截器是不行的。

总体而言,像 java 基础、并发、JVM、计算机网络那点东西,还有 android 四大组件、handler、事件分发、绘制、动画,这些都能背下来的,绝对不能丢分。像插件化、热修复之类的高级主题,还有 okhttp 这种较为复杂的第三方库,短时间内啃不下来,也就听天由命吧,至少拿到了基础分。

路漫漫其修远兮,吾将上下而求索。

2. Android 篇

下面放一下我整理的 Android 知识脑图

缩略图有点模糊,建议PC上看大图,或保存到本地来看。

2.0 Android 基础

推荐资料:官方文档

2.1 Android 常见机制

推荐资料:《Android开发艺术探索》+ 源码

2.2 Android 常用3rd-lib

推荐资料:github 项目源码

2.3 Android 进阶

需要了解更多安卓方面资料的可以关注我的主页!

本人Java开发4年Android开发5年,定期分享Android高级技术及经验分享,欢迎大家关注~(分享内容包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!)