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...)的主要内容,如果未能解决你的问题,请参考以下文章