客观题:Android基础【基础题】

2023-09-21 12:10:54

一. 单选题(共6题,60分)

1. (单选题, 10分)Android四层架构中,应用框架层使用的是什么语法?

A. Java
B. Android
C. C
D.C++

正确答案: A

Android 四层架构通常指的是 Android 应用的四个关键组件,包括:

  1. 应用层(Application Layer):这是最顶层的层次,包括用户界面(UI)和应用的业务逻辑。应用层通常使用 JavaKotlin 编程语言来开发 Android 应用程序。

  2. 应用框架层(Application Framework Layer):这一层包含了 Android 框架的各种库和服务,开发者可以使用这些库和服务来访问设备的硬件功能和系统功能。应用框架层主要使用 Java 编程语言编写。

  3. 系统库和 Android 运行时(System Libraries & Android Runtime):这一层包含了 Android 操作系统的核心库和运行时环境。在这个层次上,Android 使用了一种名为 Dalvik 虚拟机(在 Android 5.0 及更高版本中替代为 ART,即 Android Runtime)来执行应用程序的字节码。这些库和运行时环境主要由 C 和 C++ 编写,但 Android Runtime 部分也包括 Java 部分。

  4. Linux 内核(Linux Kernel):这是 Android 四层架构的最底层,包括操作系统的核心组件,如驱动程序管理、内存管理、进程管理等。Android 使用了 Linux 内核作为底层的操作系统,并与上层的 Android 层次进行通信。

2. (单选题, 10分)

对于一个Activity,在AndroidManifest.xml中对他这样进行定义

<intent-filter>

	<actionandroid:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

这样的描述代表什么含义?

A. 代表该Activity将作为程序的主Activity,并且在桌面上建立图标
B. 代表该Activity的优先级高于其他的Activity
C. 代表该Activity会自动运行启动
D. 无明确含义,每个Activity都需要这样定义

正确答案: A:代表该Activity将作为程序的主Activity,并且在桌面上建立图标;

这段 <intent-filter> 的配置表示该Activity将被用作应用程序的主Activity,也就是启动应用程序时首先打开的界面。

同时,它也指示 Android 系统在设备桌面上创建应用程序的图标,用户可以点击该图标来启动应用程序。

这是 AndroidManifest.xml 文件中常见的配置,用于指定应用程序的入口点。其他Activity通常不需要包含这个配置,因为只有一个Activity应该被指定为主Activity

3. (单选题, 10分) 在Android应用程序中,图片应放在那个目录下?

A. values
B. drawable
C. layout 
D. raw

正确答案: B:drawable;

在 Android 应用程序中,图片资源通常应该放在 drawable 目录下。

drawable 目录用于存储应用程序使用的各种图片资源,例如图标、按钮背景、图片按钮等。这些资源可以根据不同的屏幕密度(如 mdpi、hdpi、xhdpi 等)放置在相应的子目录中,以确保在不同类型的设备上具有适当的分辨率和质量。这个目录结构有助于 Android 系统在运行时选择正确的资源版本以适应设备的屏幕密度和分辨率。

4. (单选题, 10分) 在android程序中,Log.w()用于输出什么级别的日志信息?

A. 调试  
B. 错误
C. 警告
D. 信息

正确答案: C

在 Android 程序中,Log.w() 用于输出警告级别(Warning)的日志信息。警告级别的日志信息通常用于记录一些不严重但值得注意的情况,例如潜在的问题或错误,但不会导致应用程序崩溃或停止运行。这些日志信息对于开发者来说是有用的,可以用于诊断和调试应用程序。在 Android 的日志级别中,警告级别的日志信息的优先级介于信息级别(Log.i())和错误级别(Log.e())之间。

5. (单选题, 10分)应用程序员编写的Android应用程序,主要是调用( )提供的接口进行实现。

A. 应用框架层
B. 应用程序层
C. 应用视图层
D. 系统库层

正确答案: A:应用框架层;

应用程序员编写的 Android 应用程序主要是调用 Android 应用框架层提供的接口进行实现。

应用框架层包括了 Android 框架的各种库和服务,开发者可以使用这些库和服务来访问设备的硬件功能和系统功能,以构建自己的应用程序。这些接口包括了与用户界面、数据存储、网络通信、传感器、位置服务等相关的功能,帮助开发者构建功能丰富的 Android 应用程序。

6. (单选题, 10分)Android四层架构中,系统库层使用的是什么语法?

A. VB
B. Android
C. Java
D. C /C++

正确答案: D:C /C++ ;

D
C /C++

Android 四层架构中,系统库层主要使用 C 和 C++ 编程语言编写。

这一层包含了 Android 操作系统的核心库和运行时环境,用于处理底层的硬件操作、内存管理、进程管理等系统级任务。这些任务通常需要使用 C 和 C++ 等底层编程语言来实现,以获得更好的性能和硬件控制。

Java 主要用于应用框架层应用程序层,而系统库层主要是由 C 和 C++ 编写

二. 判断题(共10题,40分)

7. (判断题, 4分)dp是设备独立像素,不依赖于设备,是最常用的长度单位

正确答案:

**dp(设备独立像素)**是一种在 Android 开发中常用的长度单位,但它并不是不依赖于设备的。事实上,dp 是一种相对于设备屏幕密度的单位,用于实现设备独立的界面设计。

Android 设备具有不同的屏幕密度,例如 mdpi、hdpi、xhdpi、xxhdpi 等等。使用 dp 单位可以让应用程序的界面元素在不同密度的设备上以相对一致的方式显示,而不会受到屏幕密度的影响。Android 系统会根据设备的屏幕密度来自动缩放 dp 单位,以便在不同的设备上获得一致的外观。

因此,虽然 dp 是相对于设备的单位,但它的设计目的是实现设备独立性,以便开发者可以创建适用于各种不同屏幕密度的应用程序界面。这使得 dp 成为 Android 开发中最常用的长度单位之一。

8. (判断题, 4分)约束布局ConstraintLayout是一个ViewGroup

正确答案:

约束布局(ConstraintLayout)是一个ViewGroup,用于在Android应用程序中创建灵活且复杂的用户界面。它允许开发者以一种相对的方式定义视图之间的位置关系,而不是依赖于传统的线性布局或相对布局。

约束布局使用约束条件来描述视图之间的相对位置和尺寸,这使得它能够适应不同屏幕尺寸和方向,以及各种设备上的不同屏幕密度。

我们可以在其中添加其他视图(View),包括文本视图、图像视图、按钮等等,以构建复杂的用户界面。通过使用约束布局,开发者可以更精确地控制界面元素的位置和大小,同时保持界面的灵活性,适应各种设备和屏幕尺寸。这使得约束布局成为 Android 开发中的重要工具之一。

9. (判断题, 4分)线性布局中代码设置了属性android:orientation=“vertical”,代表布局为水平方向。

正确答案:

当设置属性 android:orientation="vertical" 时,代表布局方向为垂直方向,而不是水平方向。在线性布局中,android:orientation 属性用于指定子视图(View)的排列方向。如果将其设置为 “vertical”,子视图将在垂直方向上排列,一个在另一个下面。如果将其设置为 “horizontal”,则子视图将在水平方向上排列,一个在另一个旁边。所以 android:orientation="vertical" 表示垂直布局,而不是水平布局。

10. (判断题, 4分)RadioButton必须在RadioGroup组件中才能实现单选功能

正确答案:

RadioButton 单选按钮通常需要放置在 RadioGroup 组件中才能实现单选功能。

RadioGroup 是一个单选组,它可以容纳多个 RadioButton,并确保在同一时间只有一个 RadioButton 被选中。当用户选择一个 RadioButton 时,与该 RadioButton 同属于同一个 RadioGroup 的其他 RadioButton 会自动取消选中状态。

这种方式可以确保在一组选项中只能选择一个,从而实现单选功能。如果你只是单独使用 RadioButton 而没有放置在 RadioGroup 中,那么它们之间不会有自动的单选效果,用户可以同时选中多个 RadioButton,这通常不符合单选的需求。所以,为了实现单选功能,通常会将 RadioButton 放置在 RadioGroup 组件中。

11. (判断题, 4分) sp代表缩放像素,作用和dp相同,可以用于任何需要的地方

答案:

sp(缩放像素)和 dp(设备独立像素)都用于处理文字的大小,但它们的主要应用场景略有不同。

  • dp:dp 是用于处理视图元素的尺寸,包括布局中的视图、图像等。它是相对于设备屏幕密度无关的单位,用于确保视图在不同屏幕密度的设备上有一致的尺寸。dp 通常用于设置视图元素的大小。

  • sp:sp 主要用于处理文字的大小。与 dp 不同,sp 考虑到了用户的字体偏好设置。因此,当用户在设备上设置了不同的字体大小偏好时,sp 单位可以自动调整文字的大小以适应用户的设置。sp 通常用于设置 TextView、EditText 和其他显示文本的控件的字体大小。

虽然 sp 和 dp 都是相对单位,但它们的主要用途略有不同,应根据具体情况来选择使用。

如果要设置文字的大小,通常使用 sp 单位更为合适,因为它可以考虑到用户的字体偏好设置,以提供更好的可访问性。

对于视图元素的大小,使用 dp 单位更为常见,因为它们用于确保在不同设备上的一致性。

12. (判断题, 4分)Button 继承 Textview,所以TextView的一些属性也适用于Button控件。

答案:

在 Android 中,Button 控件继承自 TextView 控件,因此 Button 控件继承了 TextView 控件的大部分属性和功能。这包括文字属性、文本颜色、文本大小、文本样式等。因此,你可以像操作 TextView 一样操作 Button 控件,设置其文本、文本颜色、字体大小等属性。

例如,你可以使用以下方式设置 Button 的文本:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click Me" />

在上面的示例中,android:text 属性设置了 Button 的文本内容,这是一个常见的 TextView 属性,同样适用于 Button。

13. (判断题, 4分)可以使用View类的findViewById( )方法,获得当前View对象中的某一个视图元素

正确答案:

在 Android 开发中,可以使用 View 类的 findViewById() 方法来获得当前 View 对象中的某一个视图元素(例如,一个 ButtonTextView 等)。这个方法允许我们通过指定视图元素的资源 ID 来获取对该视图元素的引用,以便在代码中进行操作或修改。

示例代码如下:

// 在 Activity 中查找视图元素
Button myButton = findViewById(R.id.my_button);

// 对获取到的视图元素进行操作
myButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 处理按钮点击事件
    }
});

在这个示例中,findViewById() 方法用于查找具有资源 ID my_button 的按钮,并将它的引用存储在 myButton 变量中,以便在后续的代码中对按钮进行操作。

14. (判断题, 4分)在Activity中,可以使用setContentLayout( )方法,确定加载哪一个布局文件

正确答案:

在 Android 的 Activity 中,正确的方法是使用 setContentView() 方法来确定加载哪一个布局文件,而不是 setContentLayout()setContentView() 方法用于设置当前 Activity 的用户界面,通常会传递一个布局文件的资源 ID 作为参数,以指定要加载的布局文件。

示例代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); // 加载名为 activity_main.xml 的布局文件
}

在上面的示例中,setContentView() 方法加载了名为 activity_main.xml 的布局文件,将其作为当前 Activity 的用户界面。

15. (判断题, 4分)px是像素单位,在不同的设备上显示效果相同,因此推荐在布局中使用该单位

正确答案:

尽管像素单位(px)在不同的设备上具有相同的显示效果,但通常不推荐在布局中使用像素单位作为尺寸单位,特别是在多种屏幕密度的 Android 设备上。原因如下:

  1. 不适应不同密度的屏幕:Android 设备具有不同的屏幕密度,例如 mdpi、hdpi、xhdpi 等等。使用像素单位会导致在不同密度的屏幕上显示效果不一致,可能会导致界面在某些设备上显得过小或过大。

  2. 不适应不同屏幕尺寸:Android 设备还具有不同的屏幕尺寸,从小型手机到大型平板电脑。使用像素单位可能会导致在不同尺寸的屏幕上布局不当,界面元素可能会显得拥挤或稀疏。

为了解决这些问题,Android 推荐使用以下单位:

  • dp(设备独立像素):用于处理视图元素的尺寸,以确保在不同屏幕密度的设备上具有一致的显示效果。

  • sp(可缩放像素):用于处理文字的大小,考虑到用户的字体大小偏好设置,以提供更好的可访问性。

因此,尽管 px 可以在某些情况下使用,但在布局中更常见且更推荐使用 dp 和 sp 单位,以实现更好的跨设备和跨屏幕尺寸的兼容性。

16. (判断题, 4分)View的父类是ViewGroup

正确答案:

View 的父类不是 ViewGroup。事实上,ViewViewGroup 都是 Android 用户界面层次结构的关键组成部分,但它们的层次结构不同。

  • View 是 Android 用户界面层次结构中的基本构建块,代表了一个用户界面元素,例如按钮、文本框、图像视图等。ViewViewGroup 的子类之一,但它不具备容纳其他视图的能力,它们通常是用户界面的最小单元。

  • ViewGroupView 的子类,它代表了一种容器,可以包含其他视图元素。ViewGroup 可以是线性布局、相对布局、帧布局等等。它用于组织和布局多个 View 元素,以构建更复杂的用户界面。

所以,View 的父类不是 ViewGroup,而是 Object,因为它们位于不同的层次结构中。

更多推荐

Vue路由及Node.js环境搭建

目录一.Vue路由1.1定义1.2应用领域1.3代码展示二、Node.js2.1定义2.2特点三.Node.js安装与配置好啦今天到这了,希望帮到你!!!一.Vue路由1.1定义Vue路由是指使用VueRouter插件来管理前端应用程序的导航和页面路由的过程。它允许你在单页面应用程序(SPA)中定义不同的路由路径,并将

JVM相关知识

运行程序时JVM中内存区域的划分:线程私有:本地方法栈:本地方法栈与虚拟机栈相似,区别是,本地方法栈为虚拟机使用的本地方法服务,虚拟机栈为虚拟机使用的JAVA方法服务。虚拟机栈:虚拟机栈中保存的主要是一个个栈帧,每当有一个方法被调用时,都会有栈帧入栈,方法结束时,栈帧就会被弹出,每个栈帧由局部变量表和操作数栈,动态连接

计算机毕业设计 基于SSM的电影推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟————————————————计算机毕业设计题目《10

亚运之城:杭州的搞钱之王 首富都得靠边站

作者:积溪简评:这届亚运会,杭州成了显眼包,也卷成了蚊香,这背后杭州的搞钱实力,究竟有多牛?#杭州亚运会#马云#阿里手机可以“打”公交10分钟就能到还只要1块钱?这届亚运会杭州的宝子们真成了“显眼包”杭州也卷成了蚊香钱塘江边的灯光秀玉皇大帝睡觉都得戴眼罩路边的椅子能充电垃圾桶穿上新外套就连“美男计”都不放过地铁口人均1

软考 -- 计算机学习(2)

文章目录一、安全性知识1.1信息安全和信息系统安全1.2信息安全技术1.3网络安全技术二、多媒体技术三、软件工程基础知识3.1信息系统生命周期3.2软件过程模型3.3信息系统开发方法3.4系统分析和设计概述3.5结构化开发方法3.6系统运行与维护四、项目管理4.1进度管理4.2质量管理4.3风险管理一、安全性知识1.1

OpenText EnCase 客户案例——诺贝丽斯(Novelis)

OpenTextEnCase客户案例——诺贝丽斯(Novelis)诺贝丽斯(世界领先的铝材压延和回收企业)通过OpenText保存数据和节省资金诺贝丽斯在内部引入电子发现,通过OpenTextEnCaseInformationAssurance(以前称为EnCaseeDiscovery)解决方案交付复杂的案例。挑战电子

MySQL常见面试题(四)

😀前言在进行数据库设计和优化的过程中,我们不得不面对多样化的技术和方法来确保我们的系统可以高效、可靠地运行。为了深入了解和掌握这个领域,我们将讨论InnoDB存储引擎的多种索引类型,以及索引的不同方面和分类。我们还将深入探讨为什么通常推荐使用自增列作为主键,以及主键和唯一键之间的区别。最后,我们将提供一系列可用于SQ

activiti流程变量

activiti流程变量定义流程变量在Activiti中是一个十分重要的角色,流程运转时,需要靠流程变量,业务系统和activiti结合时少不了流程变量,流程变量就是activiti在管理工作流时根据管理需要而设置的变量。比如:在出差申请流程流转是如果出差天数大于三天则需要总经理审批,否者只需要认识审批,出差天数就可以

AI&DAO,将会引领我们走向何方?

人工智能(AI)和分布式自治组织(DAO)都是区块链赛道的热门项目之一,他们看似在不同的领域独立发展,然而,它们之间也存在着巨大的协同潜力。未来,AI有望成为推动DAO发展的重要动力,同时,DAO也可成为AI的最佳实验场所。DAO的下一波浪潮可能是AIDAO。释放生产力的未来首先,让我们来思考一下,AI如何在DAO中释

创建一个简单的外卖订餐系统

在今天的快节奏生活中,外卖订餐系统已经成为了人们日常生活中不可或缺的一部分。这些系统通过在线点餐和配送服务,为用户提供了便捷的用餐体验。在本文中,我们将创建一个简单的外卖订餐系统,使用Python和Flask框架构建后端,以及HTML、CSS和JavaScript构建前端。技术栈我们将使用以下技术栈来构建这个外卖订餐系

【基本数据结构 三】线性数据结构:栈

学习了数组和链表后,再来看看第三种线性表结构,也就是栈,栈和后边讲的队列一样是一种受限的线性表结构,正是因为其使用有限制,所以对于一些特定的需要操作可控的场合,受限的结构就非常有用。栈的定义我们平时放盘子的时候,都是从下往上一个一个放;取的时候,我们也是从上往下一个一个地依次取,不能从中间任意抽出。栈的结构后进者先出,

热文推荐