2020Android高级开发面试题以及答案整理,持续更新中~

本篇收录了一些大厂面试中经常会遇到的经典面试题,并且我做好了整理分类。虽然今年的金九银十已经过去了,但是可以为明年的金三银四做准备啊,相信每一个跳槽季都有很多的前端开发者蠢蠢欲动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的Android面试者。

好了,那我接下来就开始正文咯。

一、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 之间如何传值, 可以传图片吗?

由于文章篇幅限制,不可能将所有面试题以文字形式展示出来,本篇为大家精选了一些面试题,有需要的程序猿(媛)可以点击下方传送门免费获取题目+解析哦

点击免费领取题目+解析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

二、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方法的使用场景解析

…...

由于文章篇幅限制,不可能将所有面试题以文字形式展示出来,本篇为大家精选了一些面试题,有需要的程序猿(媛)可以点击下方传送门免费获取题目+解析哦

点击免费领取题目+解析PDF

三、其他

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 机制?

最后

学习和复习这件事情是需要坚持的,但是找准方向,正确的学习方法以及优质的资源都是很重要的。

先找准方向,搭建技术框架,填充,然后深入钻研,这样坚持下去,成为移动架构师不会只是梦。

上文中的面试题全部免费分享,已上传至开源项目 【GitHub】,需要的朋友自取。

你可能感兴趣的:(java,android,android-studio,react-native,flutter)