714 页 PDF 的鸿蒙学习笔记,Android 开发必须会的技能
面试经历
偶然看到知乎的内推帖,投了个简历,下午 hr 姐姐 call 我,安排面试选在 3 天后,然而又要笔试阿里,所以没怎么复习。
8 点起床,9 点过比较紧张的去了创业园,感觉知乎氛围很好,在那等了一小会,有前台大叔给你倒水。
一面:
应该是个参加工作不久的研究僧师兄,出了一道算法题,主要考字符转 int,然后分析了时间复杂度和空间复杂度,之后聊了 android listView 的性能优化,还问我 recycalView 的特点,进程通信的方式,我主要说了 aidl 和共享文件,广播,本来还想用 java 装 B,还在精通 java,然而师兄并没有问,说叫等一下
二面:
二面明显难度提升,而且面试管应该是组长吧,比较喜欢听吹架构,正好之前自己从 web 后台,客户端,硬件等方面做了一个智能家居项目,就吹了下硬件那边的逻辑,包括蓝牙,wifi 的 HTTP/IP 协议,透传等,红外等传感器,然后 web 后台我说我用 sevlet,因为本身客户端主要需要接口,数据库用 mysql,也没问 rollback(嘿嘿),然后把客户端展示给他看看,实在太丑没有美工(这不是重点),由于我的项目中有一个很重要的 point 就是在硬件触发时唤醒服务器后台推送,首先硬件识别后,串口读写数据到单片机,单片机写入 wifi 缓冲区,wifi 通过 HTTP 透传数据到我服务器(可以用 TCP 和 IP),服务器获取 mac 标识,推送至 TAG(家庭 ID)或者用户(Alias)说到推送,好好吹吹实现原理。1:pull 方式,http 长连接或是 socket,轮询间隔设好即可,缺点及时性差 2:push 方式,实时性好,方法 1,google 自带推送平台(网太差),方法二,xmpp 协议(基于 XML)。其实封装的比较好了,有个开源包叫 asmark,其中有 XmppConnection 这个推送库,话说好多公司都是用它自己封装库,不过开源的 demo 只管推,没有延时推送,消息暂存功能,方式 3,用三方的算法:是 2 个有序数组合并问题,用 2 个指针每次比较能够 O(n)解决问题,算法 passLruCache:先装装 B,说一下我写的和 google V4 包有什么不同,主要是没有 trimToSize 方法,没有 sizeof()计算内存耗费大小,我主要是重写 LinkedHashMap,讲了下 LinkHashMap 源码,其实我也是看别人写的源码解析,(嘿嘿,毕竟年轻,多向别人学习)
最后
其实 Android 开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
下面分享的腾讯、头条、阿里、美团、字节跳动等公司 2019-2021 年的高频面试题全套解析,博主还把这些技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。
知识不体系?这里还有整理出来的 Android 进阶学习的思维脑图,给大家参考一个方向。
**本文已被[CODING 开源项目:《Android 学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](
)
收录**
最后自我介绍一下,小编 13 年上海交大毕业,曾经在小公司待过,也去过华为、OPPO 等大厂,18 年进入阿里一直到现在。
深知大多数初中级 Android 工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此也是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
评论