一、前言
SPI(Service Provider Interface)是Java提供的一种动态服务发现机制。通过SPI机制,我们可以直接跨模块查找到想要的接口实现类,从而避免不必要的模块间依赖,降低模块之间的耦合性。这对Android组件间通信非常重要的意义。试想一下如果有一个组件能提供这样一种能力,我们的组件通信是否会变得很容易: 通过一个接口,我可以很容易的查找到这个接口在任意模块下的任意一个或多个实现类的对象;而且,可以按你自己想要的方式缓存对象(简单对象、单例、强弱引用、自定义等);接口实现类对象的每个方法执行时都可以被自定义拦截策略和拦截器拦截; 如果这个接口有多个实现类,可以自由选择具体使用哪一个、多个实现类,这个组件就是本文要跟大家介绍的Service Pool for Android。(有点抽象, 往后看)
献上面经~
一面:
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、有什么想问的?
最后
**一个零基础的新人,我认为坚持是最最重要的。**我的很多朋友都找我来学习过,我也很用心的教他们,可是不到一个月就坚持不下来了。我认为他们坚持不下来有两点主要原因:
他们打算入行不是因为兴趣,而是因为所谓的IT行业工资高,或者说完全对未来没有任何规划。
刚开始学的时候确实很枯燥,这确实对你是个考验,所以说坚持下来也很不容易,但是如果你有兴趣就不会认为这是累,不会认为这很枯燥,总之还是贵在坚持。
技术提升遇到瓶颈了?缺高级Android进阶视频学习提升自己吗?还有大量大厂面试题为你面试做准备!
来获取学习资料提升自己去挑战一下BAT面试难关吧
对于很多Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些知识图谱希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
不论遇到什么困难,都不应该成为我们放弃的理由!
如果有什么疑问的可以直接私我,我尽自己最大力量帮助你!
id开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
不论遇到什么困难,都不应该成为我们放弃的理由!
如果有什么疑问的可以直接私我,我尽自己最大力量帮助你!
最后祝各位新人都能坚持下来,学有所成。