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】,需要的朋友自取。
2020Android高级开发面试题以及答案整理,持续更新中~的更多相关文章
- 2018年最新Java面试题及答案整理(持续完善中…)
2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
- 年底了,该跳槽了,全套高级Java面试题及答案整理~
又到年底了,又是一轮跳槽季 城外的人想进去,城里的人想出来 为什么离职? 马云说过,要么工资低,要么受了委屈 我想大多数人离职是这个原因 出来混的,跳槽也都是为了更好的生活 干技术的,工资都是跳出来的 ...
- 用友网络科技Java高级开发面试题(2019)
面试时间:2019年8月18日上午9:30 面试岗位:Java高级开发 面试形式:电话面试 这些天在boss上逛了下,看见北京Java开发工资比较诱人,便萌生了去北京的想法,做一名北漂的程序猿.约了几 ...
- Web前端开发面试题赋答案
第一部分:用CSS实现布局 让我们一起来做一个页面 首先,我们需要一个布局. 请使用CSS控制3个div,实现如下图的布局. 第二部分:用javascript优化布局 由于我们的用户群喜欢放大看页面 ...
- 金三银四:蚂蚁金服JAVA开发面试题及答案之一面(持续更新
一面 1.自我介绍.自己做的项目和技术领域 开放题 2.项目中的监控:那个监控指标常见的有哪些? 答:CPU.内存.IO 等等.建议下载个nmon工具,里面有各个指标. 数据库:Mysql(缓存命中. ...
- java 常见高级开发面试题 非算法等特定岗 一
基础1.List和Set区别 List:1.可以允许重复的对象. 2.可以插入多个null元素. 3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序. 4.常用的实现类有 Arra ...
- 最全的前端开发面试题及答案(js,css等等)
点击链接 https://github.com/HerbertKarajan/Fe-Interview-questions 我会不断的更新...... 若想自己留着,可以fork一下. 如果觉得不错, ...
- web前端开发面试题(答案)
1.xhtml和html有什么区别? HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同:XHTML 元素必须被正确地嵌套.XHTML 元素必须被关闭.标签名必须 ...
随机推荐
- HDU 4445 Crazy Tank 高中物理知识忘得差不多了
题意不难理解,仔细看题吧,就不说题意了 #include <iostream> #include <cstdio> #include <cstring> #incl ...
- CRM系统什么时候需要使用
CRM客户关系管理系统,相信每个人都会有所了解.现如今随着企业的发展需求,CRM软件已经成为了企业管理的刚需.无论是何种行业和规模的企业,客户都是最重要的资源,提高客户满意度也是企业的首要任务.如果您 ...
- Docker安装单点RabbitMQ
环境准备 Centos 7.5 docker环境 安装步骤 拉取镜像 $ docker pull rabbitmq:management 说明: 获取rabbiymq镜像的时候要记得获取managem ...
- SpringCloud:Eureka 配置心跳机制
Server服务端 server: port: 8761 eureka: client: #实例是否在eureka服务器上注册自己的信息以提供其他服务发现,默认为true re ...
- linux 开机自启动的两种方式
方法 1 – 使用 rc.local sudo vi /etc/rc.local 在文件最后加上: sh /root/script.sh & 如果是 CentOS,我们修改的是文件 /etc/ ...
- 6 shell内置命令
知识点1:什么是shell内建命令? Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件. 内建命令与普通命令的性质是不一样的,内建命令并不是某个外部文件,只要在 ...
- vue3后台管理系统(模板)
系统简介 此管理系统是基于Vite2和Vue3.0构建生成的后台管理系统.目的在于学习vite和vue3等新技术,以便于后续用于实际开发工作中: 本文章将从管理系统页面布局.vue路由鉴权.vuex状 ...
- 《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)
1.简介 从这篇文章开始,要介绍web自动化核心的内容,也是最困难的部分了,就是:定位元素,并去对定位到的元素进行一系列相关的操作.想要对元素进行操作,第一步,也是最重要的一步,就是要找到这个元素,如 ...
- c语言:逗号运算符
#include <stdio.h> main() { int a,s,d; s=2,d=3; a=12+(s+2,d+4); printf("%d\n",a); in ...
- PYTHON 利用ImagePipeline专门爬取图片
自定义file_path()函数,即可以原有图像文件名为名来保存,并分类保存 def file_path(self, request, response=None, info=None): image ...