本篇收录了一些大厂面试中常常会遇到的经典面试题,而且我作好了整理分类。虽然今年的金九银十已通过去了,可是能够为明年的金三银四作准备啊,相信每个跳槽季都有不少的前端开发者蠢蠢欲动,经过对本篇知识的整理以及经验的总结,但愿能帮到更多的Android面试者。前端
好了,那我接下来就开始正文咯。android
1、Android 基础
Activity
- 什么是Activity?
- 请描述一下Activity 生命周期
- 常见的Activity类型有FragmentActivitiy,ListActivity,TabAcitivty等。请描述一下Activity 生命周期
- 如何保存Activity的状态或者(Activiy 重启怎么保存数据?)
- 两个Activity之间跳转时必然会执行的是哪几个方法?
- 横竖屏切换时Activity的生命周期(★★★★)
- 如何将一个Activity设置成窗口的样式
- 如何退出Activity?如何安全退出已调用多个Activity的Application?
- Activity的四种启动模式,singletop和singletask区别是什么?通常书签的使用模式是singletop,那为何不使用singletask?
- Android中的Context, Activity,Appliction有什么区别?(★★)
- 两个Activity之间传递数据,除了intent,广播接收者,content provider还有啥?
- Context是什么?,一个应用有多少个Context(2019.5.5)(★★)
- activity 之间还有 activity 和 service 之间如何传值, 能够传图片吗?
因为文章篇幅限制,不可能将全部面试题以文字形式展现出来,本篇为你们精选了一些面试题,有须要的程序猿(媛)能够点击下方传送门免费获取题目+解析哦git
点击免费领取题目+解析PDF
Service
- Service是否在main thread中执行, service里面是否能执行耗时的操做?(★★)
- Activity怎么和Service绑定,怎么在Activity中启动本身对应的Service?
- 请描述一下Service的生命周期(★★★)
- 什么是IntentService?有何优势?(★★★)
BroadcastReceiver 相关
- 注册方式,优先级
- 广播类型,区别
- 广播的使用场景,原理
- Android广播动态静态注册
- 广播源码解析 ……
ListView
- ListView如何提升其效率?
- 当ListView数据集改变后,如何更新ListView
- ListView如何实现分页加载(★★★★★)
- ListView能够显示多种类型的条目吗(★★)
- ListView如何定位到指定位置
- 如何在ScrollView中如何嵌入ListView(★★★★)
- ListView中如何优化图片(★★)
- ListView中图片错位的问题是如何产生的(★★★)
- 如何刷新ListView中单个item的数据,不刷新整个ListView的数据?
Fragment
- Fragment跟Activity之间是如何传值的
- 描述一下Fragment的生命周期
- Fragment的replace和add方法的区别
- Fragment如何实现相似Activity栈的压栈和出栈效果的?
- Fragment在大家项目中的使用
- 如何切换fragement,不从新实例化
点击免费领取题目+解析PDF
2、Android 高级
Android中的事件处理
- Handler Looper Message 关系是什么?
- Messagequeue 的数据结构是什么?
- Message 的存储与管理
- 为何要用Messagequeue?
- 如何在子线程中建立 Handler?
- Handler post 方法原理?
Android性能优化
- 如何对Android应用进行性能分析(★★★★)
- 性能稳定性是怎么作的?
- 业务稳定性如何保障
- 若是发生了异常状况,怎么快速止损?
- 启动优化是怎么作的?
- 什么状况下会致使内存泄露(★★)
- 如何避免OOM异常(★★★★)
- Android中如何捕获未捕获的异常(★★★)
- ANR是什么?怎样避免和解决ANR(★★★★★)
- android应用对内存是如何限制的?咱们应该如何合理使用内存?(★★★★)
Android 组件化与插件化
- 为何要用组件化?
- 组件之间如何通讯?
- 组件之间如何跳转?
- Android 插件化和热修复知识梳理
- 为何要用组件化
Android屏幕适配
- 屏幕适配方式都有哪些(★★★★★)
- 屏幕适配的处理技巧都有哪些(★★★★)
- dp和px之间的关系(★★)
AsyncTask相关
- AsyncTask是串行仍是并行执行?
- 使用AsyncTask的规则
Android 事件分发机制
- onTouch和onTouchEvent区别,调用顺序
- dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent 方法顺序以及使用场景滑动冲突,如何解决
- 事件分发机制
- 事件分发解析
- dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent方法的使用场景解析 …...
因为文章篇幅限制,不可能将全部面试题以文字形式展现出来,本篇为你们精选了一些面试题,有须要的程序猿(媛)能够点击下方传送门免费获取题目+解析哦github
点击免费领取题目+解析PDF
3、其余
Kotlin 相关
- 从原理分析 Kotlin 的延迟初始化: lateinit var 和 by lazy
- Kotlin 里的 Extension Functions 实现原理分析
- Kotlin 系列之顶层函数和属性
- Kotlin 兼容 Java 遇到的最大的 “坑”
- Kotlin 的协程
- Kotlin 协程「挂起」的本质
- 到底什么是「非阻塞式」挂起?协程真的更轻量级吗?
- 资源混淆是如何影响到 Kotlin 协程的
- 破解 Kotlin 协程
Flutter 相关
- Dart 当中的 「..」表示什么意思?
- Dart 是否是单线程模型?是如何运行的?
- Dart 是如何实现多任务并行的?
- 说一下 Dart 异步编程中的 Future 关键字?
- 说一下 Dart 异步编程中的 Stream 数据流?
- Stream 有哪两种订阅模式?分别是怎么调用的?
- await for 如何使用?
- 说一下 mixin 机制?
最后
学习和复习这件事情是须要坚持的,可是找准方向,正确的学习方法以及优质的资源都是很重要的。面试
先找准方向,搭建技术框架,填充,而后深刻钻研,这样坚持下去,成为移动架构师不会只是梦。编程