android系统面试问答
上次更新时间:2019年1月4日
我们的Android面试问答集全部涉及可在面试中使用的不同类型的问题,以便雇主测试您的技能和知识。
在以下各节中,我们将讨论有关Android OS的功能,命令行工具,性能和其他主题。
以下是一些与Android相关的面试问题及其各自的答案。
A.关于Android的一般问题
1.什么是Android?
Android是用于移动设备的软件堆栈,其中包括操作系统,中间件和一些关键应用程序。 该应用程序在其自己的进程及其Dalvik虚拟机实例中执行。 DVM设备可以有效地运行许多虚拟机。 DVM执行Java语言字节代码,该字节代码随后转换为.dex格式的文件。
2. Android有哪些优势?
- 开源的
- 平台无关
- 高度可定制和多功能
- 易于安装和兼容性
- 高度优化的虚拟机– DVM(Dalvik虚拟机)
3. Android是否支持Java以外的其他语言?
- Kotlin
- C / C ++
- Xamarin(C#)
- 基本知识
- 电晕(LUA)
- PhoneGap / Cardova(CSS3,HTML5和JavaScript)
- 罗兹(Ruby)
- 斯卡拉
4. SDK和NDK有什么区别?
- NDK是一个工具集,可让您在Android应用程序中嵌入使用本机代码的组件,这意味着您仅需用C / C ++编写部分代码即可实现速度。
- SDK (软件开发工具包)是用于为Android平台开发应用程序的一组开发工具。 应用程序是使用Java编写的,并且可以在Dalvik上运行。 这意味着它将比使用C / C ++所能达到的速度慢。
5.什么是APK格式?
APK文件是压缩的AndroidManifest.xml文件,扩展名为.apk。 它还包括应用程序代码(.dex文件),资源文件和其他压缩为单个.apk文件的文件。
6.处理程序通常用于什么?
使用Handler的原因主要有两个:
- 计划消息和可运行对象在将来的某个时刻执行
- 排队要在不同于您自己的线程上执行的操作
7.可以在加电时启动应用程序吗?
在AndroidManifest.xml文件中获得许可时,是。
8.什么是资源?
资源是注入到应用程序构建过程中的用户定义的XML,位图或其他文件,以后可以从代码中加载它们。
9.如何在Android中翻译?
Google转换器通过使用XMPP传输数据,将一种语言的数据转换为另一种语言。 您可以用英语键入消息,然后选择该国家的公民可以理解的语言,以便将消息传达给该公民。
10.什么是AndroidManifest.xml?
每个应用程序项目都必须在项目源集的根目录中具有一个AndroidManifest.xml文件(具有正确的名称)。 清单文件描述了有关Android构建工具,Android操作系统和Google Play的应用程序的基本信息。
11.什么是上下文?
上下文是一个代表各种环境数据的实体(一般来说,接口是Java中的抽象类)。 它提供对本地文件,数据库等的访问。
活动
12.什么是活动?
活动是作为单个窗口呈现给用户的应用程序组件。
13.简要说明活动生命周期。
活动生命周期中有七种不同的方法:
- 在首次创建活动时调用onCreate()。
- 如果活动对用户可见,则调用onStart()。
- 如果活动开始与用户交互,则调用onResume()。
- 如果预期活动将很快恢复,则调用onPause()。
- 如果活动不再对用户可见,则调用onStop()。
- 如果活动从停止状态恢复,则调用onRestart()。
- 如果活动完成运行,则调用onDestroy()。
Android系统调用这些回调以了解状态是否已更改。
14.监视活动时定义三个关键循环
- 整个生命周期–活动从第一次调用onCreate()到对onDestroy()的单个最终调用之间开始。
- 可见的生存期–活动从onStart()到未调用onStop()方法之间开始。
- 前景生存期–活动在调用onResume()之后和onPause()调用之前开始。
15.哪些类型的标志用于在Android上运行应用程序?
以下是两种在Android中运行应用程序的标志:
- FLAG_ACTIVITY_NEW_TASK –如果任务中已经在运行该任务,则将该任务置于前台,否则该活动将创建一个新任务。
- FLAG_ACTIVITY_SINGLE_TOP –如果活动当前位于堆栈的顶部,则该活动将不会启动。
- FLAG_ACTIVITY_CLEAR_TOP –如果该活动已经在当前任务中运行,那么该活动将被带到堆栈的顶部,并且其顶部的所有其他活动将被关闭,并且该Intent将被传递到(现在位于顶部)旧的活动作为新的Intent。
16.与服务区分开来的活动
- 活动是GUI,可由用户终止。
- 服务可以在后台独立运行。
17.什么是片段及其与活动的区别?
片段是活动的可重用部分,可以与单个活动中的其他片段组合。
18. Serializable和Parcelable有什么区别?
- 可序列化是一个标准的Java接口,易于实现,但会造成一些垃圾回收。
- Parcelable比Serializable更快,因为它是针对Android优化的。
C.建筑组成
19.定义Android架构
android体系结构中有4个组件:
- Linux内核
- 库–(Android运行时)
- Android框架
- Android应用程式
20.定义Android应用程序架构
Android应用程序架构具有以下组件:
- 网络运营等服务
- 目的–在活动或服务之间进行互通
- 资源外部化-例如字符串和图形
- 通知用户信号–灯光,声音,图标,通知,对话框等
- 内容提供商-他们在应用程序之间共享数据
21. Android应用程序的主要组件是什么?
有四种不同的组件类型:
- 活动项目
- 服务
- 广播接收器
- 内容提供者
D.意图和意图过滤器
22.什么是意图?
一个类( Intent ),它描述呼叫者想要做什么。 调用者会将这个意图发送给Android的意图解析器,后者会找到最适合该意图的活动。 例如,打开PDF文档是一种意图,而Adobe Reader应用程序将是实现该意图(类)的理想选择。
23.隐式意图和显式意图有什么区别?
有两种类型的意图:
24.目的过滤器的功能是什么?
意图过滤器用于过滤组件愿意接收的意图。 如果组件具有任何意图过滤器,则它可以接收隐式和显式意图,如果没有,则可以接收显式意图。
E.用户界面和导航
25.什么是适配器?
适配器充当AdapterView和该视图的基础数据之间的桥梁。
26. ListView和RecyclerView之间的主要区别是什么?
RecyclerView (ListView的高级和灵活版本):
- 简单的动画
- 默认包含ViewHolder
- 支持水平,网格和交错布局
ListView :
- 支持页眉和页脚
- 支持OnItemClickListner
- 易于添加分隔线
- 内置的arrayAdapter
27.创建自定义视图的过程是什么?
- 用您自己的类扩展现有的View类或子类。
- 重写超类中的某些方法。
- 使用新的扩展类。
28.制作具有自定义视图的每一行的多选列表需要什么?
通过将CheckBox的android:id值设置为“ @android:id / text1?”,可以查看多项选择列表。 这是Android在simple_list_item_multiple_choice中用于CheckedTextView的ID。
29. android支持哪些对话框?Android支持4个对话框:
- AlertDialog :警报对话框支持0到3个按钮以及一系列可选元素,包括复选框和单选按钮。 在其他对话框中,最建议使用的对话框是警报对话框。
- ProgressDialog :此对话框显示进度轮或进度栏。 它是AlertDialog的扩展,并支持添加按钮。
- DatePickerDialog :此对话框用于用户选择日期。
- TimePickerDialog :此对话框用于用户选择时间。
30.什么是吐司?
吐司可在一个小弹出窗口中提供有关操作的简单反馈。 它仅填充消息所需的空间量,并且当前活动保持可见且可交互。 超时后,吐司自动消失。
31什么是FrameLayout?
FrameLayout旨在遮挡屏幕上的某个区域以显示单个项目。
F.图像和图形
32.九补丁图像与常规位图有何不同?
它是可调整大小的位图资源之一,被用作设备上的背景或其他图像。
33.九补丁图像与常规位图图像有什么区别?
NinePatch类允许在九个部分中绘制位图。 四个角未缩放; 图像的中间在两个轴上缩放,四个边缘在一个轴上缩放。
G.背景任务
34.什么是服务?
服务是一个在后台运行并独立运行的Android组件。 它不提供任何用户界面。
35.什么是广播接收器?
广播接收器是用于接收和处理Context.sendBroadcast(Intent)发送的广播意图的代码的基类。
36.什么是线程池?
ThreadPool可以运行一个任务的多个并行实例,因此您应确保代码是线程安全的。 将可以由多个线程访问的变量包含在一个同步块中。 这种方法将防止一个线程在另一个变量写入变量时读取该变量。
37.什么是AIDL?
Android接口定义语言( AIDL )使用进程间通信(IPC)处理客户端与服务之间的接口要求。
38. AIDL支持哪些数据类型?
AIDL支持以下数据类型:
- 字符序列
- 串
- 清单
- 地图
- Java基本类型(int,char,boolean…)
39.如何通过AIDL创建有界服务?
- 创建.aidl文件
- 实施界面
- 公开界面
H.App数据和文件
40. Android平台上有哪些不同的数据存储选项?
您的数据存储选项如下:
- 内部存储–将私有数据存储在设备文件系统上。
- 外部存储–将公共数据存储在共享的外部文件系统上。
- 数据库(SQLite)–将结构化数据存储在专用数据库中。
- 共享首选项–将私有原始数据存储在键值对中。
41.什么是内容提供者?
内容提供商是Android应用程序的主要构建模块之一,可为应用程序提供内容。 它们封装数据并通过单个ContentResolver接口将其提供给应用程序。 仅当您需要在多个应用程序之间共享数据时,才需要内容提供程序。
一,命令行工具
42.什么是AAPT2?
Android Asset Packaging Tool( AAPT2 )将资源解析,索引并编译为针对Android平台优化的二进制格式。
43.什么是亚行?
ADB代表Android Debug Bridge。这是一个命令行工具,允许开发人员执行shell命令,其基本功能是控制与仿真器端口之间的通信。
绩效
44.什么是ANR?
ANR代表应用程序无响应。 这是一个对话框(通知或弹出窗口),如果应用程序无响应,该对话框将显示给用户。
45.什么时候发生ANR?
发生以下情况之一时,将为您的应用触发ANR:
- 当您的活动处于前台时,在5秒钟内未响应输入事件。
- 虽然您的活动(不是前台活动)在相当长的时间内没有完成执行。
是否需要更多Android面试问题?
你还在和我们在一起吗? 哇,那是一篇关于Android面试中可以使用的不同类型问题的大型文章。 如果你喜欢的话
订阅我们的新闻
培训班
那么,还有哪些其他Android面试问题? 在评论中让我们知道,我们将在文章中添加它们!
编码愉快!
翻译自: https://www.javacodegeeks.com/2011/08/android-interview-questions-answers.html
android系统面试问答