Android6年:面试阿里35K岗,三道题被干掉( 六 )

  • 描述清点击 Android Studio 的 build 按钮后发生了什么
  • (六)架构设计和设计模式
    • 谈谈你对Android设计模式的理解
    • MVC MVP MVVM原理和区别
    • 你所知道的设计模式有哪些?
    • 项目中常用的设计模式
    • 手写生产者/消费者模式
    • 写出观察者模式的代码
    • 适配器模式 , 装饰者模式 , 外观模式的异同?
    • 用到的一些开源框架 , 介绍一个看过源码的 , 内部实现过程 。
    • 谈谈对RxJava的理解
    • RxJava的功能与原理实现
    • RxJava的作用 , 与平时使用的异步操作来比的优缺点
    • 说说EventBus作用 , 实现方式 , 代替EventBus的方式
    • 从0设计一款App整体架构 , 如何去做?
    • 说一款你认为当前比较火的应用并设计(比如:直播APP , P2P金融 , 小视频等)
    • 谈谈对java状态机理解
    • Fragment如果在Adapter中使用应该如何解耦?
    • Binder机制及底层实现
    • 对于应用更新这块是如何做的?(解答:灰度 , 强制更新 , 分区域更新)?
    • 实现一个Json解析器(可以通过正则提高速度)
    • 统计启动时长,标准
    (七)性能优化
    • 如何对Android 应用进行性能分析以及优化?
    • ddms 和 traceView
    • 性能优化如何分析systrace?
    • 用IDE如何分析内存泄漏?
    • Java多线程引发的性能问题 , 怎么解决?
    • 启动页白屏及黑屏解决?
    • 启动太慢怎么解决?
    • 怎么保证应用启动不卡顿?
    • App启动崩溃异常捕捉
    • 自定义View注意事项
    • 现在下载速度很慢,试从网络协议的角度分析原因,并优化(提示:网络的5层都可以涉及) 。
    • Https请求慢的解决办法(提示:DNS , 携带数据 , 直接访问IP)
    • 如何保持应用的稳定性
    • RecyclerView和ListView的性能对比
    • ListView的优化
    • RecycleView优化
    • View渲染
    • Bitmap如何处理大图 , 如一张30M的大图 , 如何预防OOM
    • java中的四种引用的区别以及使用场景
    • 强引用置为null , 会不会被回收?
    (八)NDK、jni、Binder、AIDL、进程通信有关
    • 请介绍一下NDK
    • 什么是NDK库?
    • jni用过吗?
    • 如何在jni中注册native函数 , 有几种注册方式?
    • Java如何调用c、c++语言?
    • jni如何调用java层代码?
    • 进程间通信的方式?
    • Binder机制
    • 简述IPC?
    • 什么是AIDL?
    • AIDL解决了什么问题?
    • AIDL如何使用?
    • Android 上的 Inter-Process-Communication 跨进程通信时如何工作的?
    • 多进程场景遇见过么?
    • Android进程分类?
    • 进程和 Application 的生命周期?
    • 进程调度
    • 谈谈对进程共享和线程安全的认识
    • 谈谈对多进程开发的理解以及多进程应用场景
    • 什么是协程?
    (九)framework层、ROM定制、Ubuntu、Linux之类的问题