Android高级工程师面试实战,您会挂么?

xxx公司面试总结

面试形势

  1. 群聊(2个面试官+HR+自己)

面试流程

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

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

  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. RxJavaRxAndroid 是否用过,用过的话估计会问原理

  6. 图片缓存框架,用过哪个,原理(这一关想过一定要用透一个)

    ImageLoader(不用考虑了)

    Picasso

    Glide

    Fresco

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

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

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

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

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

总结

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