首页 > 技术文章 > oppoAndroid面试!2021年Android开发学习路线,终于彻底把握了

wftboke 2021-08-21 17:25 原文

前言

开发10年,老码农,曾经是爱奇艺架构师,东芝集团高级工程师,三星架构师。5年之内频繁被辞退。内心拔凉拔凉的,在这五年理我思考了很多,也意识到了自己的不足。今年趁着疫情把自己知识的不足做了个查漏补缺,在这半年里一边学习,一边面试现在已经拿到了百度T7的offer

下面是我这5年来的经历写成的心得,希望对大家有帮助吧!

二.面试流程

  • 自我介绍
  • 面试官根据你的介绍开始问
  • 你对我们公司有什么想了解的么(复活卡,要时回到没有了也就没有了,可以让面试官给自己提一下建议)

三.面试题回忆,没有先后顺序

1.项目架构,组件化架构(他反而没问插件化)
2. Android 事件分发机制(问到源码调用细节)

3.反射怎么调用一个类的私有方法(这里也是问细节,2个方法的区别)
Method method=clazz.getDeclaredMethod(name);//可以调用本类中的所有方法(不包括父类中继承的方法)
Method method=clazz.getMethod(name); //可以调用类中有访问权限的方法(包括父类中继承的方法)

4.怎么监听Activity的生命周期
可能大部分想到的时候自己写个 BaseActivity 就搞定了
其实是在 Application 里面注册一个监听回调的事情

this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
     @Override
     public void onActivityCreated(Activity activity, Bundle savedInstanceState) {}
     @Override
     public void onActivityStarted(Activity activity) {}
     @Override
     public void onActivityResumed(Activity activity) { }
     @Override
     public void onActivityPaused(Activity activity) { }
     @Override
     public void onActivityStopped(Activity activity) { }
     @Override
     public void onActivitySaveInstanceState(Activity activity, Bundle outState) { }
     @Override
     public void onActivityDestroyed(Activity activity) {}
 });

5.RxJava,RxAndroid 是否用过,用过的话估计会问原理
6.图片缓存框架,用过哪个,原理(这一关想过一定要用透一个)

  • ImageLoader(不用考虑了)
  • Picasso
  • Glide
  • Fresco

7.网络请求框架用过哪个(OkHttp, Retrofit, Volley)

这里他想听到的是 OkGo(基于 OkHttp 封装的一个框架)

8.有个业务里面有20几个嵌套的 if else,从设计模式的角度怎么解决这个问题?

他考的是策略模式+工厂模式

9.HashMap,HashTable,HashSet什么区别?

四.总结

1.这是很有指导意义的一次面试,面试的内容确实比较符合现在对高级Android工程师的要求。
2.问的内容比较关注细节,这种要是没有深入了解几乎不知道。
3.面试其实是一个学习成长的过程,找几家公司练练手,然后找到套路之后对症下药。

总结

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的14套腾讯、字节跳动、阿里、百度等2020面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

2020面试真题解析
腾讯面试真题解析

阿里巴巴面试真题解析

字节跳动面试真题解析
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

推荐阅读