Activity
- 说下 Activity 生命周期 Q ?
- Activity A 启动另一个 Activity B 会调用哪些办法? 如果 B 是通明主题的又或则是个
DialogActivity 呢? - 说下 onSavelnstanceState(办法的作用 ? 何时会被调用?
- 说下 Activity 的四种启动模式、利用场景?
- 理解哪些 Activity 罕用的标记位 Flags?
- 说下 Activity 跟 window, view 之间的关系?
- 横竖屏切换的 Activity 生命周期变动?
- 如何启动其余利用的 Activity?
-
Activity 的启动过程? (重点)
Fragment
- 谈一谈 Fragment 的生命周期? 与 Activity 生命周期的不同?
- 谈谈 Activity 和 Fragment 的区别?
- Fragment 中 add 与 replace 的区别 (Fragment 重叠)
getFragmentManager. getSupportFragmentManager、getChildFragmentManager 之间
的区别? -
FragmentPagerAdapter 与 FragmentStatePagerAdapter 的区别与应用场景
Service
- 谈一谈 Service 的生命周期?
- Service 的两种启动形式? 区别在哪?
- 如何保障 Service 不被杀死?
- 是否在 Service 开启耗时操作? 怎么做?
- 用过哪些零碎 Service ?
- 理解 ActivityManagerService 吗? 施展什么作用(重点)
Broadcast Receiver - 播送有几种模式? 都有什么特点?
- 播送的两种注册形式?
- 播送发送和接管的原理理解吗? (Binder 机制、AMS)
ContentProvider - ContentProvider 理解多少?
- ContentProvider 的权限治理?
- 说说 ContentProvider、ContentResolver、ContentObserver 之间的关系?
数据存储 - 形容一下 Android 数据长久存储形式?
- SharedPreferences 的利用场景? 注意事项?
SharedPrefrences 的 apply 和 commit 有什么区别? - 理解 SQLite 中的事务操作吗? 如何做的
- 应用 SQLite 做批量 操作有什么好的办法吗?
- 如何删除 SQLite 中表的个别字段?
- 应用 SQLite 时会有哪些优化操作?
IPC (重点) - Android 中过程和线程的关系? 区别?
- 如何开启多过程? 利用是否能够开启 N 个过程?
- 为何须要 IPC? 多过程通信可能会呈现的问题?
- Android 中 IPC 形式、各种形式优缺点,为什么抉择 Binder?
- Binder 机制的作用和原理?
- Binder 框架中 ServiceManager 的作用?
Bundle 传递对象为什么须要序列化 9? Serialzable 和 Parcelable 的区别? -
讲讲 AIDL? 原理是什么? 如何优化多模块都应用 AIDL 的状况?
View
- 讲下 View 的绘制流程?
- MotionEvent 是什么? 蕴含几种事件? 什么条件下会产生?
- 形容一下 View 事件传递散发机制?
- 如何解决 View 的事件抵触? 举个开发中遇到的例子?
scrolITo0 和 scollBy0 的区别? . - Scroller 是怎么实现 View 的弹性滑动?
- invalidate(和 postInvalidate(的区别?
- SurfaceView 和 View 的区别?
- 自定义 View 如何思考机型适配?
Handler
- 谈谈音讯机制 Handler ? 作用? 有哪些因素? 流程是怎么的?
- 一个线程是否创立多个 Handler, Handler 跟 Looper 之间的对应关系?
- 软援用跟弱弓 | 用的区别
Handler 引起的内存泄露起因以及最佳解决方案 - 为什么零碎不倡议在子线程拜访 UI
Looper 死循环为什么不会导致利用卡死
应用 Handler 的 postDealy 后音讯队列会有什么变动 ? - 能够在子线程间接 new- 个 Handler 吗? 怎么做?
- Message 能够如何创立? 哪种成果更好? 为什么?
线程(重点) - 线程池的益处? 线程池的几个参数的了解, 四种线程池的应用场景
Android 中还理解哪些不便线程切换的类?
讲讲 AsyncTask 的原理 - IntentService 有什么用?
- 间接在 Activity 中创立一 个 thread 跟在 service 中创立一 个 thread 之间的区别
- ThreadPoolExecutor 的工作策略 Q ?
Handler、Thread 和 Handler Thread 的差异?
ThreadL ocal 的原理
多线程是否肯定会高效(优缺点) - 多线程中, 让你做一 个单例, 你会怎么做
- 除了 notify 还有什么形式能够唤醒线程
- 什么是 ANR ? 什么状况会呈现 ANR ? 如何防止? 在不看代码的状况下如何疾速定位呈现 ANR 问
题所在?
Bitmap
- Bitmap 应用须要留神哪些问题?
- Bitmap.recycle0 会立刻回收么? 什么时候会回收? 如果没有中央应用这个 Bitmap, 为什么垃圾
回收不会间接回收? - 一张 Bitmap 所占内存以及内存占用的计算
- Android 中缓存更新策略?
-
LRU 的原理?
性能优化(重点)
- 图片的三级缓存中, 图片加载到内存中,如果内存快爆了, 会产生什么? 怎么解决?
- 内存中如果加载一 张 500*500 的 png 高清图片. 应该是占用多少的内存?
- WebView 的性能优化?
- Bitmap 如何解决大图, 如一 - 张 30M 的大图, 如何预防 OOM
- 内存回收机制与 GC 算法(各种算法的优缺点以及利用场景); GC 原理机会以及 GC 对象
- 内存泄露和内存溢出的区别? AS 有什么工具能够检测内存泄露
- 性能优化怎么保障利用启动不卡顿? 白屏怎么解决?
- 强援用置为 null, 会不会被回收?
- ListView 跟 RecyclerView 的区别
- ListView 的 adapter 是什么 adapter ?
- LinearLayout、FrameLayout、RelativeLayout 性能比照,为什么?
JNI
- 对 JINI 是否理解
- 如何加载 NDK 库? 如何在 JNI 中注册 Native 函数, 有几种注册办法?
- 你用 JNI 来实现过什么性能? 怎么实现的? (加密解决、影音方面、图形图像解决)
设计模式 - 你所晓得的设计模式有哪些?
- 谈谈 MVC、MVP 和 MWVM, 好在哪里,不好在哪里?
- 封装 p 层之后,如果 p 层数据过大,如何解决
-
是否能从 Android 中举几个例子说说用到了什么设计模式?
装璜模式和代理模式有哪些区别?
- 实现单例模式有几种办法? 懒汉式中双层锁的目标是什么? 两次判空的目标又是什么?
- 用到的一些开源框架,介绍一个看过源码的, 外部实现过程。
- Fragment 如果在 Adapter 中应用应该如何解耦?
Android 进阶延长点
- 如何进行单元测试 9,如何保障 App 稳固
- Android 中如何查看一 个对象的回收状况
- APK 的大小如何压缩?
- 如何通过 Gradle 配置多渠道包?
- 插件化原理剖析
- 组建化原理
- 跨组件通信
-
组件化中路由、埋点的实现
Hook 以及插桩技术
- Android 的签名机制
- v3 签名 key 和 v2 还有 v1 有什么区别
- Android5.0~10.0 之间大的变动 ?
- 说下 Measurepec 这个类
- 请例举 Android 中罕用布局类型, 并简述其用法以及排版效率
区别 Animation 和 Animator 的用法,概述其原理 - 应用过什么图片加载库? Glide 的源码设计哪里很奥妙?
- 如何绕过 9.0 限度?
- 过哪些网络加载库? OkHttp、Retrofit 实现原理?
- 对于利用更新这块是如何做的? (灰度, 强制更新、分区域更新)
-
会用 Kotlin、Fultter 吗 ? 谈谈你的了解
最初
简历首选内推形式,速度快, 效率高啊! 而后能够在拉钩,boss, 脉脉, 大巷上看看。简历上写道相熟什么技术就肯定要去相熟它, 不然被问到不会很难堪! 做过什么我的项目,即便我的项目体量不大, 但也肯定要相熟实现原理! 不是你负责的局部,也能够看看共事是怎么实现的, 换你来做你会怎么做? 做过什么,会什么是广度问题,取决于我的项目内容。但做过什么,达到怎么一个境界,这是深度问题, 和集体学习能力和解决问题态度无关了。大公司看深度, 小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。
选定你想去的几家公司后,先去一些小的公司练练,学习下面试技巧,总结下,也算是相熟下面试气氛,平时和共事或者产品 PK 时能够讲得有条有理,思路清晰至极, 到了现场真的不一样,怎么形容你所做的所有, 这相对是个学术性问题!
面试过程肯定要有礼貌! 即便你感觉面试官不尊重你,常常打断你的解说,或者你感觉他不如你, 问的问题不足业余程度, 你也 - 定要尊重他,谁叫当初是他抉择你,等你拿到 offer 后就是你抉择他了。
金三银四试季,跳槽季, 整顿面试题曾经成了我多年的习惯! 在这里我和身边一些敌人特意整顿了一份疾速进阶为 Android 高级工程师的零碎且全面的学习材料。涵盖了 Android 高级——Android 高级架构师进阶必备的一些学习技能。
附上: 咱们之前因为秋招收集的二十套一二线互联网公司 Android 面试真题
(含 BAT、小米、华为、团、滴滴) 和我本人整顿 Android 温习笺记 (蕴含 Android 根底知识点、Android 扩
展知识点 Android 源码解析、设计模式汇总、Gradle 知识点常见算法题汇总。)
《Android 中高级面试题汇总(2022)》,外面蕴含了所有 Android 面试的知识点,刷完进大厂妥妥的!
Java 根底
1. 动态外部类和非动态外部类的比拟
2. 多态的了解与利用
3.java 办法的多态性了解
4.java 中接口和继承的区别
5. 线程池的益处,详解,单例(相对好记)
6. 线程池的长处及其原理
7. 线程池的长处(重点)
8. 为什么不举荐通过 Executors 间接创立线程池
9. 不怕难之 BlockingQueue 及其实现
Android 根底
1.Activity 知识点(必问)
2.Fragment 知识点
3.Service 知识点
4.Intent 知识点
性能优化篇
1. 启动优化
2. 内存优化
3. 绘制优化
4. 安装包优化
源码流程篇
1. 开源库源码剖析
2.Glide 源码剖析
3.Android 面试题:Glide
4.day 20 面试题:Glide 面试题
5. 聊一聊对于 Glide 在面试中的那些事
6. 面试官:简历上如果写 Glide,请留神以下几点 …
7.Glide OOM 问题解决办法汇总
8.OkHttp 源码解析
9.okhttp 连接池复用机制
10.okhttp 流程和优化的实现
11. 一篇让你受用的 okhttp 剖析
12.OkHttp 面试之 –OkHttp 的整个异步申请流
……
最新面试题合集
1.android 事件散发机制,请具体说下整个流程
2.android view 绘制机制和加载过程,请具体说下整个流程
3.android 四大组件的加载过程,请具体介绍下
4.Activity 的启动模式
5.A、B、C、D 别离是四种 Activity 的启动模式,那么 A ->B->C->D->A->B->C->D 别离启动,最初的 activity 栈是怎么样的
6.Activity 缓存办法
7.Service 的生命周期,两种启动办法,有什么区别
8. 怎么保障 service 不被杀死
9. 动态的 Broadcast 和动静的有什么区别
10.Intent 能够传递哪些数据类型
11.Json 有什么优劣势、解析的原理
12. 一个语言的编译过程
……
备注:因为本套笔记干货内容过多,没有方法一 一展现,在这里放上目录给大家观赏一下,有须要的敌人能够在“文末支付”,心愿这套笔记能够帮忙到大家,让大家在面试的路线上畅通无阻!
因为文章篇幅无限,文档资料内容较多,须要 Flutter 材料、《2022 最新 Android 面试真题 + 解析》、数据结构与算法面试题、Java 面试题、Android 四大组件、Android 面试题、UI 控件篇、网络通信篇、架构设计篇、性能优化篇、源码流程篇、Kotlin 方面、第三方框架、大厂面经,能够【点击这里收费获取】,心愿可能共同进步,独特学习,共勉!