oppo的android面试准备

很荣幸收到的oppo的面试通知,对此在网上查阅一些以往面oppo的题目,整体如下,参考题目来自
OppoAndroid面试小记
看准网oppo的android面试

android基础

  • Activity启动模式及应用场景?
    • standard: 普通的启动
    • singleTask: 栈内复用,主activity一般用这个
    • singleTop: 栈顶复用,消息、通知页面
    • singleInstance:呼叫来电、闹钟
  • service
    • bindService和startService,如果需要和activity绑定使用bindService,不需要则使用startService
  • 广播,静态广播和动态广播的区别?
    • 注册方式:静态是清单文件注册,动态是代码注册
    • 生命周期:即使应用不在了,仍能收到静态广播;对应activity销毁,动态广播便不会收到了
  • 哪些场景会出现内存泄漏,解决使用弱引用
    • 单例造成的内存泄漏
    • 非静态内部类创建静态实例造成的内存泄漏
    • Handler造成的内存泄漏
    • 资源对象未关闭:File、Bitmap等
    • 线程造成的内存泄漏
    • 集合容器中的内存泄漏
    • 使用ListView时造成的内存泄漏
    • WebView造成的泄漏
  • 事件分发机制
  • RecyclerView和ListView的区别?
    • 布局效果、常用功能与API等
    • 缓存机制的不同,lv需要自己写viewhoder,rv不需要,复用机制也不一样
    • 局部刷新,lv只能全部刷新,rv可以局部刷新
    • 动画,lv本身不支持动画,rv支持动画
  • Activity+Fragment
  • 开发中的常用的布局控件?什么情况下线性布局,什么情况下用相对布局?如何减少布局层级?
  • 用过哪些事件总线?EventBus的优缺点是啥?
  • WebView交互原理?
  • 数据库,如何进行数据库迁移?
  • 大数据加载
  • 自定义View
  • handler源码分析
  • 如何分析内存泄漏及如何处理
  • 如何分析ANR及如何处理
  • 性能优化
  • 内存优化你做过没有?一张十万乘以十万的图片,如何加载才不会内存溢出?
  • 内存溢出,内存抖动,内存泄漏你都碰到过吗?怎么解决的?如何区分这几种情况?怎么解决由内存泄漏而导致的内存溢出?
  • 进程间通信,binder原理
  • okhttp源码
  • 热修复原理及几种方案对比
  • apk加固
  • Glide,RxJava原理和性能优化
  • 有没有优化在弱网时候的通信?
    • Android App优化之网络优化
    • 压缩/减少数据传输量
    • 利用缓存减少网络传输
    • 针对弱网(移动网络), 不自动加载图片
    • 界面先反馈, 请求延迟提交

Java

  • 多线程
  • Thread直接调用run会怎样?start的作用是什么?
    • 直接run会去执行run中逻辑,但不会创建线程
    • start时,会C层先创建一个线程,然后在线程中执行run中逻辑
  • tcp udp区别,TCP和http的主要区别?
    • tcp是面向连接的,udp是面向非连接的,tcp三次握手保证可靠通信
    • tcp和ucp是传输层的协议,http是应用层的协议
  • http报文结构,https加密
    • 请求行(http版本、请求方式)
    • 请求头(host、content-type、content-length)
    • 请求体
    • http本身存在窃听、篡改和冒充的风险,在http基础上增加ssl层便为https
  • jvm
  • 有几种常见的单例模式?对于这几种单例模式synchronized具体锁的是什么东西?
  • 即时通信原理?
    • osi 7层和4层模型
  • 心跳机制需要考虑哪些因素?
    • 心跳发送和业务逻辑在同一个线程
    • 心跳发送和业务逻辑共享网络连接
    • 心跳的发送间隔和检查间隔的确定,一般30s

你可能感兴趣的:(android,面试)