网易Android framework开发岗面试经历分享(附面试题汇总+案例解析)

背景

今年可以说是非常难,部门被拆,很多同事都被变相裁员了,虽然说去其他部门工作可以给我们的放宽一点要求,但我还是想在Android开的岗位上发展,所以也提出了离职;离职后的两个月中,投了一些Android开发工程师岗位的简历,发现几乎没有回应,有回应的都是一些工资低的小型企业,就没搭理,后面在一次和朋友吃饭的时候,听朋友讲到了Android framework工程师的岗位,于是第二天早上就试着投了一家,有反馈的挺多,其中包含:小米,网易,滴滴出行这几个大厂,就这样陆陆续续面试了一些地方,收到了部分offer,因为这场裁员经历让我谨慎了许多,前几天胜利拿到我最想去的网易复的offer了,目前顺利入职。

这边文章主要分享我的部门面试经历,当然也将我这几个月的求职过程中碰到的面试题整理成了《Android面试题汇总》,供大家参考。

网易一面(70min)

  • 介绍一下你自己
  • flow为什么能代替livedata,有什么区别,flow怎么进行线程切换
  • 线程、进程、协程的区别,dart的线程模型怎么样的,是线程还是协程 了解过handler吗,说一下 java中启动一个线程有哪些方式
  • 知道synchronized吗?有什么作用?有什么应用场景?synchronized加在实例方法和静态方法上有什么区别?
  • 进程死锁是怎么产生的? 做项目有没有遇到过线程问题,挑一个讲,怎么解决的 http和https区别,https为什么安全
  • tcp和udp区别 解释什么是多态,有什么实际应用 hashmap hashTable concurrentHashMap原理与区别
  • 平时学习新知识怎么学的 写点代码吧,手搓一个快排

二面(60min)

  • 开始问项目,深挖项目的里面提到的内容 包括负责的内容,使用的技术,使用的框架,遇到的问题,怎么解决,最后成果怎么样
  • 一个应用可以在不同进程吗,进程间通信方式 service运行在主线程还是子线程
  • 主进程2个线程调用子进程aidl方有资源竞争之类的吗
  • handler和线程的关系 一个app可以有多个任务栈吗
  • 反问

HR面(15min):

  • 确认目前情况和到岗时间;
  • 自己的优势和契合点,为什么选到了这个岗;
  • 其它厂的投递情况和进展,可能的最终去向;

以上面试题都已整理成PDF文档,有需要的朋友可以访问下方链接免费领取~

《Android面试题集合》 ​docs.qq.com/doc/DWHlTakRsZFpqd0l0

java面试题:

基础知识

  1. 请手写equal方法【String类】,讲讲具体的原理?Object类的equla方法是怎样的?
  2. 请说下String与StringBuffer区别,StringBuffer底部如何实现?String类可以被继承吗,为什么?
  3. String a=““和String a=new String(””)的的关系和异同?String的创建机制如何理解?
  4. 为什么Java中的 String 是不可变的(Immutable)?字符串设计和实现考量?String不可变的好处?

在这里插入图片描述
面向对象知识点

  1. 面向对象编程的四大特性及其含义?封装、继承、多态分别是什么?为何要封装?为什么是单继承而不能多继承呢?

  2. 重载和重写的区别?重载和重写绑定机制有何区别?父类的静态方法能否被子类重写?重写是动态绑定,如何理解机制?

  3. 什么是绑定?静态和动态绑定如何区别?动态绑定编译原理是什么?动态绑定运行原理是什么?

  4. 接口和抽象类的区别是什么?接口的意义是什么?抽象类的意义是什么?如何选择抽象类和接口?



  5. 在这里插入图片描述
    java数据结构

  6. 在arrayList中System.arraycopy()和Arrays.copyOf()方法区别联系?System.arraycopy()和Arrays.copyOf()代码说明?

  7. Collection集合和Map集合的区别?Map集合的特点?说下Map集合整体结构?

  8. Java集合框架中有哪些类?都有什么特点?集合框架用到Collection接口,这个接口有何特点?

  9. ArrayList添加元素时如何扩容?如何添加元素到指定位置,该操作复制是深拷贝还是浅拷贝?


  10. 在这里插入图片描述

Android面试题:

基础知识点

  1. 说下Activity的生命周期?屏幕旋转时生命周期?异常条件会调用什么方法?
  2. 后台的Activity被系统回收怎么办?说一下onSaveInstanceState()和onRestoreInstanceState()方法特点?
  3. 如何避免配置改变时Activity重建?优先级低的Activity在内存不足被回收后怎样做可以恢复到销毁前状态?

在这里插入图片描述

高级知识点

  1. 谈谈消息机制Hander作用?有哪些要素?流程是怎样的?简单说一下你的看法!
  2. Handler的post方法和view的post方法有什么区别?为什么说要避免在子线程中手动创建looper?
  3. 可以在子线程直接new一个Handler吗?会出现什么问题,那该怎么做?

在这里插入图片描述
性能优化面试题:

  1. App启动时候存在白屏或者黑屏是什么造成的?解决的方案有哪些?为何最后要设置setBackgroundDrawable为null?
    2.SharePreference性能优化,可以做进程同步吗?具体是怎么优化的呢?

在这里插入图片描述

Framework 面试题:

  1. 什么是Binder?为什么要使用Binder?Binder中是如何进行线程管理的?总结binder讲的是什么?
  2. Android中进程和线程的关系?什么是IPC?为何需要进行IPC?多进程通信可能会出现什么问题?
    3.Binder的工作流程是怎样的?Binder主要能提供哪些功能?Binder通信机制原理是怎样的?
  3. Android中为何新增Binder来作为主要的IPC方式?Binder运行机制是怎样的?Binder机制有什么优势?
  4. Android中跨进程通讯的几种方式?实际开发中,有哪些场景使用Binder进行数据传输?

    在这里插入图片描述

Android架构面试题:

  1. 谈谈MVC、MVP和MVVM的使用区别,优势分析?
  2. 是否能从Android中举几个例子说说用到了什么设计模式?
  3. Retrofit的实现与原理?什么叫做动态代理?
  4. 谈谈你对Glide和Picasso他们的对比的优缺点?

    在这里插入图片描述

音视频面试:

  1. SurfaceView是做什么?SurfaceView和View的本质区别?SurfaceView优缺点有哪些?
  2. SurfaceView如何保证UI界面的流畅性?如何理解双缓冲机制?
  3. SurfaceView在新的线程中更新画面为何不会阻塞UI主线程?是否跟在子线程中不能操作UI矛盾?

在这里插入图片描述

最后

其实面试过程被问到的问题没有这么多,想必大家都知道,只有全面复习是以备不时之需,这可能就是人们常说的“面试造火箭,工作拧螺丝”吧,最后希望大家都面试顺利,实现涨薪梦!!!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_70749039/article/details/130608516