android系统面试问答_Android面试问答

android系统面试问答

上次更新时间:2019年1月4日
android面试问答
我们的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。这是一个命令行工具,允许开发人员执行s​​hell命令,其基本功能是控制与仿真器端口之间的通信。

绩效

44.什么是ANR?

ANR代表应用程序无响应。 这是一个对话框(通知或弹出窗口),如果应用程序无响应,该对话框将显示给用户。

45.什么时候发生ANR?

发生以下情况之一时,将为您的应用触发ANR:

  • 当您的活动处于前台时,在5秒钟内未响应输入事件。
  • 虽然您的活动(不是前台活动)在相当长的时间内没有完成执行。

是否需要更多Android面试问题?

你还在和我们在一起吗? 哇,那是一篇关于Android面试中可以使用的不同类型问题的大型文章。 如果你喜欢的话

订阅我们的新闻

享受每周更新和免费白皮书! 另外,请查看我们的

培训班

进行更高级的培训!

那么,还有哪些其他Android面试问题? 在评论中让我们知道,我们将在文章中添加它们!

编码愉快!


翻译自: https://www.javacodegeeks.com/2011/08/android-interview-questions-answers.html

android系统面试问答

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值