文章图片
谷歌开发的 Android 移动操作系统最初于 2008 年发布,并于 2018 年 8 月发布了最新版本,9.0 'Pie'。Android 操作系统是世界上最受欢迎的移动操作系统,拥有超过 75% 的市场份额(来源:Stats Counter)。
随着 Android 的普及度逐年飙升,Android 开发人员需求旺盛。
热门Android常见面试题和答案合集在这里,我们为你带来 50 个顶级 Android 面试问题和答案,让你做好面试准备。
初级面试问题
问题:解释一下Android中的构建过程?答: Android 中的构建过程包括三个步骤
- 第一步包括使用 Android 资产打包工具 (AAPT) 编译资源文件夹。它们被编译成一个称为 R.java 的类文件,它只保存常量。
- 第二步,需要使用javac将java源代码编译为.class文件,然后使用“dx”工具将其转换为Dalvik字节码,该工具是软件开发工具包中的工具之一。最终的输出文件是 classes.ex。
- 在第三步也是最后一步,Android apkbuilder 需要接受所有输入并构建 Android 打包密钥 (APK) 文件。
- Java:Java是世界上最流行的编程语言,一直是新开发人员的起点,大多数从事 Android 开发的人都在使用它。
- Kotlin:Kotlin 是一种相对较新、现代、安全且面向对象的跨平台编程语言。当 Android Studio 3.0 于 2017 年 10 月发布时,Kotlin 被宣布为 Android 的官方编程语言。从那时起,Trello、Square 和 Corda 等许多流行的应用程序都转向了 Kotlin。
- C#:使用 C# 语言开发人员可以构建原生 iOS 和 Android 移动应用程序。
- Python:Python 已成为近来最流行的编程语言之一。Python 是一种动态的面向对象的编程语言,在机器学习中非常流行。
Android常见面试题有哪些:Android 开发中有哪些不同的工具可用?解释它们的功能。答:有多种工具可以帮助 Android 开发者:
- Android 软件开发工具包 (SDK) 和虚拟设备管理器:此工具用于生成和处理 Android 虚拟设备 (AVD) 和 SDK。通过 AVD 中的模拟器,你可以指定支持的 SDK 版本、SD 卡中的存储、屏幕分辨率以及 GPS 和触摸屏等其他能力。
- Android 模拟器: AE 是 Android 虚拟机的实现,旨在在虚拟设备本身内运行进程,可在开发计算机上使用。该工具的主要用途是测试和调试 Android 应用程序。
- Android Debug Bridge (ADB): ADB 是随 SDK 分发的命令行调试应用程序。它使开发人员能够与设备进行通信,并促进应用程序的安装和调试等操作。
- Android 资产打包工具 (AAPT): AAPT 构建“.apk”可分发的 Android 包文件。
问题:描述 Android 应用程序的文件夹、文件和描述回答:
- gen : gen 包含编译器生成的 .R 文件,该文件引用了项目中的所有资源
- src: src 存放我们项目中的 .java 源文件
- bin: bin 包含 ADT 在构建过程中构建的 .apkk 文件,以及运行 Android 应用程序所需的所有其他内容
- AndroidManifest.xml:这个文件是manifest文件,解释了应用程序的基本特性并定义了它的所有组件
- res/values: res/values 是其他各种 XML 文件的目录,其中包含字符串、颜色定义等资源。
- res/drawable-hdpi:这是为高密度屏幕设计的可绘制对象的目录
- res/layout:它是定义应用程序 UI 的文件目录
- OnCreate():在这里,创建视图并从包中收集数据。
- OnStart():如果活动对用户可见,则调用它。如果活动到达前台,则可能通过 onResume() 成功,如果它转换为隐藏,则通过 onStop() 成功。
- OnResume():当活动开始与用户交互时调用。
- OnPause():当活动进入后台但尚未被终止时调用。
- OnStop():当你不再对用户可见时调用此方法。
- OnDestroy():活动结束时调用
- OnRestart():在活动停止后,再次启动之前调用
- 低投资,高回报: Android开发入门门槛低,适合希望精通编程领域的新开发者。
- 免费SDK: Android最突出的特点之一是软件开发工具包是开源的,免费提供,免去了许可、分发和开发费用的成本。
- 易于采用: Android 应用程序使用 Java 编写脚本,Java 是世界上最常用的编程语言之一。
- 可重用: Android 组件可以重用,甚至可以被框架替换。
- 多平台支持: Android平台支持Linux、Mac OS、Windows等主流操作系统。
- 对可穿戴设备的支持:现在市场上充斥着可穿戴设备,Android 已成为对此类设备的主要支持,这些设备现在在市场上很容易买到。
问题:解释 Android 上支持的对话框。【最热门的Android常见面试题和答案合集】答: Android 支持四个对话框
- AlertDialog:最推荐的对话框,AlertDialog 支持 0-3 个按钮,以及一个可选项目列表,例如单选按钮和复选框。
- DatePickerDialog:用于用户选择日期
- TimePickerDialog:用于用户选择时间
- ProgressDialog:用于显示进度条,是AlertDIalog的扩展。它还支持添加按钮。
- 虚假应用程序:市场上随时有数以千计的虚假应用程序可用,安装后可能会试图窃取你的数据。
- 精简问题:市场上有各种各样的Android设备,屏幕尺寸和尺寸不同,但更重要的是,不同的Android操作系统。每个应用程序开发人员都必须不断努力为新操作系统更新他们的应用程序,但是对于各种操作系统版本和升级,这个过程非常困难。在一个版本的 Android 操作系统上流畅运行的应用程序可能会在不同的 Android 操作系统上崩溃。
- 后台进程:后台运行的大量进程始终是一个问题,因为它们很快就会耗尽电池电量。
问题:解释 Android 中的传感器回答:基于 Android 的设备有各种各样的内置传感器,可以测量某些参数,例如运动、方向等。这些传感器通过其高精度帮助监控设备的定位和移动。传感器可以是基于软件的和基于硬件的。Android 设备中三个突出的传感器类别是:
- 位置传感器:用于测量Android设备的物理位置。这包括方向传感器和磁力计。
- 运动传感器:这些传感器包括重力、旋转活动和加速度传感器,它们测量设备的旋转或加速度等等。
- 环境传感器:它包括测量温度、压力、湿度和其他环境因素的传感器。
- 消息传递
- 蓝牙
- 安装和卸载存储卡
- 电池方案验证
- 内存相关问题
- 性能验证
- 活动上下文:此上下文附加到活动的生命周期。当你在活动范围内传递上下文或者你需要生命周期附加到当前上下文的上下文时,应该使用它。
- 应用程序上下文:此上下文附加到应用程序的生命周期。应用程序上下文可用于你需要生命周期与当前上下文分开的上下文,或者当你传递超出活动范围的上下文时。
问题: 陈述一个 Android 应用程序的架构。答:任何 Android 应用程序都具有以下组件:
- 通知 -灯光、声音、图标等功能
- 服务 -执行后台功能
- 意图- 在传递数据的活动和机制之间执行互连
- 资源外化 -字符串和图形等特性
- 内容提供者 -在应用程序之间共享数据
- 可用内存:由于移动设备上的空间有限,你可以尝试释放内存空间以使应用程序正常运行。
- 兼容性检查:这可能不是硬件问题,而是软件问题。并非总是可以针对所有设备和 OS 系统测试应用程序。该应用程序可能与你的操作系统不兼容。在应用程序的 Google Play 商店页面上检查兼容性。
- 内存管理:某些应用程序可以在一台移动设备上完美运行,但在其他设备上可能会崩溃。这就是处理能力、内存管理和 CPU 速度发挥作用的地方。如果应用程序不断崩溃,请检查应用程序内存要求。
- 应用程序数据使用:如果应用程序经常崩溃,你可以删除应用程序的数据,这将清除其缓存内存并在你的设备上留出一些可用空间,并可能提高应用程序的性能。
- 转发端口
- 位置数据欺骗
- 屏幕截图
- logcat
- 无线电状态信息
- 线程和堆信息
问题: 解释隐式意图和显式意图之间的区别。答:以下是两种意图的区别
- 显式意图:显式意图是你通知系统应该使用哪个活动或系统组件来生成对此意图的响应。
- 隐式 Intent:隐式 Intent 允许你声明你希望执行的操作,之后 Android 系统将检查注册了哪些组件来处理该特定操作。
- 为 Java 包提供唯一名称
- 描述应用程序的各种组件,例如活动、服务等。它还定义了将实现这些组件的类
- 声明应用程序将使用的 Android API
- 包含链接到应用程序的库文件详细信息
- Standard:此启动模式在其起源的任务中生成活动的新实例。可以创建同一活动的多个实例,这些实例可以添加到相同或不同的任务中。
- SingleTop:这种启动模式类似于Standard启动模式,不同之处在于如果栈顶存在活动的先前实例,则不会创建新实例,而是将意图发送到现有实例活动。
- SingleTask:此启动模式将始终创建一个新任务并将新实例作为根任务推送到该任务。
- SingleInstance:此启动模式与 SingleTask 启动模式相同,但系统不会在同一任务中启动任何新活动。在启动新活动的场景中,它在单独的任务中启动。
问题:说明新 Android 项目所需的组件答:新建Android项目时,需要以下组件:
- Manifest:包含xml文件
- Build/:包含构建输出
- Res/:包含位图图像、UI 字符串等非代码资源
- src/:包含代码和资源
- Assets/:包含可以转换为 .apk 文件的文件
问题: 解释一下Android中的ANR这个术语答:术语 ANR 是应用程序无响应的缩写。每当应用程序在相当长的一段时间内停止响应用户操作时,Android 操作系统就会将其显示为通知。
Android常见面试题和答案合集: AIDL 支持哪些不同的数据类型?答: AIDL 或 Android 接口定义语言有助于客户端和服务之间的通信。AIDL支持的数据类型如下:
- String
- List
- Map
- 字符序列
- INT、Long、Char、Boolean(Java 数据类型)
- SharedPreference:此选项将数据存储在 XML 文件中。
- SQLite:这将结构化数据存储在私有数据库中
- 内部存储:这将数据存储在其他应用程序无法读取的设备文件系统中
- 外部存储:这将数据存储在文件系统中,但可以被设备中的所有应用程序访问
问题:定义Android的架构?答: Android 架构由四个组件组成。这些是:
- Linux内核。
- 库。
- 安卓应用程序。
- 安卓框架。
文章图片
问题:AAPT 的完整形式是什么?解释AAPT?答: AAPT的全称是Android Asset Packaging Tool。该工具由开发人员使用,使他们能够处理与 zip 兼容的档案。因此,在应用程序中使用此工具可以更轻松地创建、提取和查看内容。
Android常见面试题有哪些:Android 中的“模拟器”是什么?答: android 中的“模拟器”可帮助开发人员玩转充当真正移动设备的界面。这样,开发人员可以更轻松地为应用程序编写和测试不同的代码。调试过程也可以通过模拟器进行。因此,模拟器提供了一个安全的平台,可以在代码的早期阶段以及在需要处理错误的后期阶段测试代码。
问题:什么是Activitycreator?答: Activitycreator 是创建 Android 项目的第一步。它由 shell 脚本组成,可用于创建在 Android 系统中编写代码所必需的新文件系统。
问题:Android 中有哪些活动?答:这些活动被称为用户界面的窗口。它有助于显示输出,甚至可以要求输入,以便可以执行对话框和其他角色来创建用户界面。
问:Android 系统中的意图是什么?答: Android 系统中的 Intent 会从支持 Android 的设备(例如智能手机、平板电脑等)向用户显示通知消息。通过这种方式,会尝试提醒用户,并且可以根据 Intent 进行响应。
问题:活动和服务之间有什么区别吗?答:是的,活动和服务之间有很多区别。这些差异如下所述:
活动 | 服务 |
这些都关了 | 这些是开放的 |
这些可以随时终止 | 这些不能随时终止 |
它们旨在在场景之前运行 | 这些旨在在幕后运行 |
他们依赖 | 他们独立行动 |
它们不是连续的 | 它们不是连续的 |
问题:在Android系统中定义容器?答: Android 系统中的容器有助于将对象和小部件放在一起,以便实现特定的项目和安排。这些容器包括标签、按钮、字段等。
问题:移动市场需要Android吗?答:是的,我们在移动市场需要Android,因为它可以帮助智能手机用户下载可以提供多种服务的应用程序。开发人员年复一年地开发各种应用程序。Android 系统为他们提供了一个平台,他们可以通过该平台将这些应用程序展示给智能手机用户并从中找到潜在客户。Android系统为用户提供付费和免费应用程序,可以保护他们的数据,充当信息平台,并根据客户的需求提供各种服务。
问:Android系统有什么缺点吗?把它们都列出来。答:是的,Android 系统有几个缺点。下面列出了这些。
- 没有关于如何使应用程序适应智能手机上的操作系统版本和升级的政策。
- 并非所有应用程序都可以在各种智能手机操作系统上运行。因此,下载可能会导致数据、时间和下载工具的丢失。
- Android 系统中的部分应用程序可能无法适应各种智能手机的屏幕。
- Android 系统也提供此类应用程序,这些应用程序往往会收集用户数据。这可能会导致智能手机用户的重要个人信息数据泄露。
- Android 系统可能会提供下载应用程序,这些应用程序可能没有可靠来源的支持,并可能对移动设备造成损害。
问题:活动中的状态是什么?答:一个活动有四种状态。这些包括以下内容。
- 活动状态:在此状态下,活动处??于前台。
- 暂停状态:在此状态下,活动处??于后台且可见。
- 停止状态:在此状态下,活动处??于后台但不可见甚至隐藏或遮挡其他活动。
- Destroyed 状态:在此状态下,Activity 被完全终止或杀死或移除。
问:应用开发过程中的权限有哪些?答:应用程序开发过程中的权限包括为保护数据和代码而施加的限制。应用这些权限是为了保护应用程序免遭入侵、病毒攻击、窃取用户信息以及导致错误缺陷。
问题:什么是意图过滤器?答:意图过滤器是 Android 系统的重要组件,因为它有助于响应、过滤和接收正确的信息输入。
问题:监控活动时是否存在任何关键循环?回答:是的,监控活动的三个关键循环。这些包括以下内容。
- 循环 1:整个生命周期:在这个关键循环中,活动发生在 onCreate 和 onDestroy 之间。
- 循环 2:可见生命周期:在这个关键循环中,活动发生在 onStart 和 onStop 之间。
- 循环 3:前台生命周期:在这个关键循环中,活动发生在 onResume 和 onPause 之间。
- 状态 1:前台活动
- 状态 2:可见活动
- 状态 3:后台活动
- 状态 4:空活动
问题:什么是Dalvik?它对Android系统有什么用?Android面试题解析: Dalvik 是一个帮助 Android 系统运行其应用程序的虚拟机。它帮助智能手机和其他电子设备从虚拟机下载应用程序,这些应用程序存储在其内存中。新的应用程序、删除和更新都是在 Dalvik 平台上完成的。
Android常见面试题有哪些:什么是默认资源?它们有什么用?答:默认资源包括默认字符串和文件。它们的缺失将导致在屏幕上产生错误,也可能阻碍下载的应用程序的运行。它们非常有用,因为它们作为项目目录下的子目录放置,支持下载的应用程序的运行。
问题:定义AIDL?答: AIDL 代表 Android 界面定义语言。AIDL 用于处理客户端和服务提供者之间存在的接口需求。它作为一个平台,通过进程间通信或IPC方式进行同级通信。AIDL 中遵循的步骤包括将目标分解为原语,以便 Android 系统能够很好地理解它们。AIDL 还有助于限制应用程序从其他设备获取信息。
问:Android系统中的Fragment是什么?答: Android 系统中的 Fragment 是 Activity 的一部分,在某种意义上是模块化的。它们可以四处移动,甚至可以与其他片段结合形成一个单一的活动。片段是可重复使用的。
Android常见面试题和答案合集结论所以这是 50 个顶级 Android 面试问题和答案的列表。你还有什么我们没有回答的问题吗?通过下面的评论告诉我们。另外,不要忘记查看社区推荐的我们最好的Android 教程。
推荐阅读
- 最新的数据科学常见面试题和答案合集推荐
- 最新jQuery常见的面试题和答案合集介绍
- C++与Java有什么区别(基本比较、主要差异和相似之处)
- Bootstrap常见的面试题和答案合集(面试必备)
- Ghost win8.1专业版系统下设置回收站大小的具体技巧
- windows8.1专业版运用win+X快捷键无法打开开始菜单
- Win8.1系统下运用第3方工具检测系统情况的多种技巧
- 电脑公司Win8.1开始菜单不能用快捷方式打开的处理技巧
- win8升级助手检查是否可以升级win8.1系统的具体技巧【图文】