阿里P7亲自讲解!五年Android开发者小米、阿里面经,值得收藏!

258 阅读5分钟

写在开头:

说下我的经历吧。湖南大学毕业,学的是软件工程,那时候比较贪玩,专业知识学的不是很扎实,毕业后就在长沙本地找了家互联网公司工作了。 到今年六月份的话刚好毕业了五年了,同期和我一起出来的同学们,大多都已经是项目经理了,至少也是个项目组长了,而我还是个普通的程序员,日复一日的敲着代码。 年初爆发了新冠疫情,居家隔离。市场经济也进入了寒冬,大批的企业都是摇摇欲坠,也包括我的公司。这时,我才意识到。进大厂,是多么的重要。

面试的时候除了算法题,其他被怼成弟弟,没想到面试官给过了,一天面完三面并且一周之后收到了oc,觉得自己非常的幸运,终于得到了大厂的认可(虽然是颗白菜)。这里建议网友如果有自己亮点的话,还是可以勇敢大胆的尝试一下大厂,毕竟除了实力之外,运气与机遇也占很大成分,遇到欣赏你的面试官,就会比较顺利。

献上百度的三面面经~

一面:

0.自我介绍完 , 说说项目 , 从第一个到最后一个;

1.问了常用布局有哪几种;

2.Activity生命周期有哪些 , 具体什么情况下回调;

3.问了进程间通信 , Binder、管道、socket等;

4.问了View事件的传递 , activity-window-decorview-view;

5.事件怎么从手指传递到activity的;

6.LongClick和OnClick分别怎么触发的;

7.说说Java类加载器 , Android有哪些类加载器 , android顶级类加载器是什么;

8.怎么自己加载一个类 , 不让父加载器去加载 , 自己load的话 , 怎么解决其它类加载器的引用;

9.说说内存优化(内存泄漏、大对象优化等) ;

10.说说openGL(举了一个实例 , 做一个画中画);

11.说说netty(之前项目提到过) , 基于什么线程模型 , 为什么能承载高并发;

12.说说你最擅长什么(说了x86项目移植 , 算法优化);

13.写一个排序算法 , 时间复杂度多少 , 怎么优化(写了归并 , 说了加希尔) ;

14.写一个常用的动画。

二面:

1、自我介绍?

2、很大数组中找第K大元素?

3、项目相关?

4、比较擅长什么语言?脚本性语言?

5、三次握手?

6、UDP数据包长度多少?

7、研究经历?

8、最近看的书?

9、对Linux环境的了解?

10、进程的状态有几种?

11、你觉得你优势的地方?

12、平时学习开发过程中遇到什么困难?

13、发表了几篇论文?

14、进程和线程的区别?线程池?

15、多线程要注意什么问题?

16、有什么想问的?

三面:

1、项目?项目难点?花了多久时间?

2、有了解哪些最短路算法?如果速度不够,你要怎么优化?

3、最近在看哪些书?

4、平时关注哪些技术?

5、进程与线程的理解?什么时候用进程什么时候用线程?

8、说一下平时的一些学习习惯?

9、团队沟通能力?

10、遇到的最困难的事情?

11、你有什么优势?有什么缺点?

13、对于OFFER怎么选择?考虑哪些因素?

14、有什么想问的?

最后说一下我的学习路线

其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:

  1. 架构师筑基必备技能
  2. Android框架体系架构(高级UI+FrameWork源码)
  3. 360°Androidapp全方位性能调优
  4. 设计思想解读开源框架
  5. NDK模块开发
  6. 移动架构师专题项目实战环节
  7. 移动架构师不可不学习微信小程序
  8. 混合开发的flutter

Android学习的资料

我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。需要的小伙伴可以私信我【进阶】我免费分享给大家,或者直接点击下面链接领取,谢谢大家这么久以来的支持。

Android学习PDF+架构视频+面试文档+源码笔记

如果你有其他需要的话,也可以在GitHub上查看,下面的资料也会陆续上传到Github

330页PDF Android学习核心笔记(内含上面8大板块)

Android学习的系统对应视频

总结

我希望通过我自己的学习方法来帮助大家去提升技术:

  • 1、多看书、看源码和做项目,平时多种总结

  • 2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理

  • 3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习

  • 4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

    进阶学习资料领取方式:GitHub

希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!