327页超全的 Android 面试进阶题库!(包含FlutterKotlin性能优化JetpackRxJava...)

Posted 清风Coolbreeze

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了327页超全的 Android 面试进阶题库!(包含FlutterKotlin性能优化JetpackRxJava...)相关的知识,希望对你有一定的参考价值。

前言

文章分享Android进阶面试题库,主要内容包括Java相关、Android基础相关、Android进阶相关、Flutter相关,Kotlin相关,性能优化相关、Jetpack相关,RxJava相关、Gradle相关等等一些面试题和常见知识点

Java相关进阶面试题

  • 类加载过程
  • JVM内存区域的划分,以及那些区域会发生oom?
  • 双亲委派模型
  • HashMap 的原理
  • 什么情况下 Java 会产生死锁,如何定位、修复,手写死锁?
  • volatile和synchronize的区别
  • Exception 和 Error的区别

Android基础相关进阶面试题

Activity 相关

  • 启动模式以及使用场景?
  • onNewIntent()和onConfigurationChanged()
  • onSaveInstanceState()和onRestoreInstanceState()
  • Activity 到底是如何启动的?

Fragment

  • Fragment 生命周期和 Activity 对比
  • Fragment 之间如何进行通信
  • Fragment的startActivityForResult
  • Fragment重叠问题

Service 相关

  • 进程保活
  • Service的运行线程(生命周期方法全部在主线程)
  • Service启动方式以及如何停止
  • ServiceConnection里面的回调方法运行在哪个线程?

Android布局优化之ViewStub、include、merge

  • 什么情况下使用 ViewStub、include、merge?
  • 他们的原理是什么?

BroadcastReceiver 相关

  • 注册方式,优先级
  • 广播类型,区别
  • 广播的使用场景,原理

AsyncTask相关

  • AsyncTask是串行还是并行执行?
  • AsyncTask随着安卓版本的变迁

Android 事件分发机制

  • onTouch和onTouchEvent区别,调用顺序
  • dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent 方法顺序以及使用场景
  • 滑动冲突,如何解决

Android View 绘制流程

  • 简述 View 绘制流程
  • onMeasure, onlayout, ondraw方法中需要注意的点
  • 如何进行自定义 View
  • view 重绘机制

Android进阶相关面试题

Android 的核心 Binder 多进程 AIDL

  • 常见的 IPC 机制以及使用场景
  • 为什么安卓要用 binder 进行跨进程传输
  • 多进程带来的问题

Android 高级必备 :AMS,WMS,PMS

  • AMS,WMS,PMS 创建过程
  • AMS,WMS,PMS 启动流程

Android ANR

  • 为什么会发生 ANR?
  • 如何定位 ANR?
  • 如何避免 ANR?

Android 内存相关

  • 什么情况下会内存泄漏?
  • 如何防止内存泄漏?

Android 屏幕适配

  • 屏幕适配相关名词解析
  • 现在流行的屏幕适配方式

Android 缓存机制

  • LruCache使用极其原理

Android MVC、MVP、MVVM

  • MVC、MVP、MVVM的优势?

OKHTTP 和 Retrofit

  • okhttp 完整解析
  • Retrofit使用流程,机制详解
  • Retrofit是如何工作的?

 Glide

  • Glide的基本用法
  • 从源码的角度理解Glide的执行流程
  • Glide的缓存机制
  • Glide的回调与监听
  • Glide如何自定义模块功能
  • 说一下Glide图片加载功能

android 组件化与插件化

  • 为什么要用组件化?
  • 组件之间如何通信?
  • 组件之间如何跳转?

Android性能优化面试题

  • 你对 APP 的启动有过研究吗? 有做过相关的启动优化吗?
  • 有做过相关的内存优化吗?
  • 你在项目中有没有遇见卡顿问题?是怎么排查卡顿?又是怎么优化的?
  • 怎么保证 APP 的稳定运行?
  • 说说你在项目中网络优化?
  • 你在项目中有用过哪些存储方式? 对它们的性能有过优化吗?
  • 你在项目中有做过自定义 View 吗?有对它做过什么优化?

RxJava面试核心知识

  • Rxjava使用过程,特点,原理解析
  • Rxjava观察者模式及原理解析
  • Rxjava 订阅流程
  • Rxjava 源码分析
  • Rxjava 线程切换

kotlin面试核心知识

  • Kotlin有没有在使用,问这个问题的公司,基本上自己的公司在使用Kotlin开发新App,要么在使用Kotlin迁移、重构、与java混合在一起

Flutter面试核心知识

  • Dart 是如何实现多任务并行的? 
  • Dart 是不是单线程模型?是如何运行的?
  • 说一下Dart异步编程中的 Future关键字?
  • 说一下Dart异步编程中的 Stream数据流?
  • Stream 有哪两种订阅模式?分别是怎么调用的
  • 请简单介绍下Flutter框架,以及它的优缺点?
  • 介绍下FFlutter的FrameWork层和Engine层,以及它们的作用
  • 介绍下Widget、State、Context 概念
  • 简述Widget的StatelessWidget和StatefulWidget两种状态组件类

写这个文章的目的,就是想做个面试总结

由于自己做开发三年了,主要是在做android端的app,这其中也学习了Flutter、Kotlin等等一些新技术。

之所以会接触,一是待的公司的需要,有的公司人手不够或者有的岗位并不想在招人,拉你去做做、去看看,对于这个自己开始工作的第一年内心是很拒绝的,当时只想把项目中的Android基础牢固,并不想做其它的。

二是随着工作时间久了,学习能力也慢慢的提高了,发现需要学习其它的东西,光Android的应用层压根不够,再加上市场的竞争越来越激烈。

去年开始接触Kotlin的时候,学习的过程中发现很多东西的都是相通的,即使是不同的开发语言,也比较像金庸小说里面描述武学的那样 “天下武学殊途同归”

这份《Android高级进阶知识》已从Xmind转成PDF的格式,需要高清PDF的朋友可以“ 扫描下方二维码即可打包获取 ”

 


 

 

 

 

 

 

以上是关于327页超全的 Android 面试进阶题库!(包含FlutterKotlin性能优化JetpackRxJava...)的主要内容,如果未能解决你的问题,请参考以下文章

超全Android中高级面试复习大纲,安卓系列学习进阶视频

收藏! 超全的github计算机算法机器学习深度学习的面试指南集锦

超全的数组去重12种方法

超全的12种数组去重的方法

超全的位运算介绍与总结

绝对干货,超全的 MyBatis 动态代理原理讲解!