《Android应用开发》课后习题参考答案
第1章Android开发简介
1.如何搭建Android开发环境?
搭建Android开发环境需要以下几个步骤:
(1)下载和安装JDK
(2)配置PATH环境变量
(3)下载和安装Android Studio
(4)创建Android模拟器
(5)下载和安装Android SDK
2.Android源代码的编译过程是怎样的?
Java源文件经过JDK编译器编译成class文件后,Dalvik虚拟机中的Dx工具会将部分class文件转换成dex文件,dex文件进一步被优化成odex文件。
3.Android系统架构包含的层次以及各层的特点是怎样的?
Android系统采用分层架构,从低到高分为4层,依次是Linux内核层、核心类库层、应用程序框架层和应用程序层。
Linux内核层为Android设备的各种硬件提供了底层驱动,底层驱动是应用程序以访问底层硬件的形式实现人机交互。核心类库层包含了系统库和Android运行时库(Android Runtime)。系统库为Android系统提供主要的特性支持,Android运行时库提供了一些核心库和Dalvik虚拟机。应用程序框架层提供了编写应用程序时用到的各种API。应用程序层是指所有安装在移动设备上的App。
第2章Android应用界面布局设计
4.线性布局哪个属性设置界面元素呈现垂直或水平排列?
属性android:orientation 控制排列方向,设置值“vertical”为垂直方向、“horizontal”为水平方向,如果不设置该属性,则默认为水平方向排列。
5.属性值match_parent 和wrap_content 有何区别?
在为控件设置尺寸layout_width和layout_height时。使用match_parent表示和父容器尺寸一样大,使用wrap_content表示控件的尺寸大小设置为包裹住内容即可。
6.约束布局中如何实现控件居中?
在线性布局中,常使用android:layout_gravity 属性的“center”属性值来设计控件的居中显示,在约束布局中通过设置控件的上下左右约束来完成控件的居中设计。设置约束后,控件会自动排列在中间位置。
7.帧布局有什么特点?
帧布局方式,是将放在其中的子控件进行堆叠放置,所有子控件的位置都是从帧布局的
左上角开始,因为是堆叠放置,所以会发生子控件覆盖,后放置的子控件位于上面,会遮住先放置的子控件。帧布局只有基础属性,不能使用android:gravity 属性设置子控件的位置。
8.安卓提供了哪些常用辅助布局工具?
常用的辅助工具有分组、屏障、辅助线等。分组Group可以把多个控件归为一组,方便隐藏或显示一组控件。可以使用屏障Barrier,在多个控件的一侧放置一个屏障,相当于一个虚拟的分割墙,另一侧控件以屏障Barrier为参照目标控件设置约束关系,解决以多控件为参照的布局问题。
第3章Android应用界面效果
9.样式和主题有什么不同?
样式与主题在定义的语法方式上是一样的,但应用场合不同。样式主要是针对控件的定义。主题是针对整个应用、Activity窗口的外观设置,影响面更大,一次指定,可以使整个应用或整个Activity窗口生效。。
10.shape形状与图片相比有何优点?比较适合用在哪些场合?
使用shape标签定义各种各样的形状,应用到界面的控件中,使控件呈现特殊效果的外观。与使用图片相比,使用shape形状可以减少安装包大小,并能较好地适配不同尺寸的手机。适合应用一些规则形状图形做背景时使用。
11.layer-list图层列表的中可以使用哪些元素?
layer-list图层列表,通过将图一层一层叠加,来实现更复杂的显示效果。layer-list中不同的图层使用item节点来定义,先定义节点的图形在下面,后定义的图形在上面。可以使用图片、形状、图层列表等作为节点中的图层。
12.selector选择器用途是什么?有何优点?
selector选择器是一种状态列表,用来定义控件在不同状态下的外观。比如,将控件的背景、颜等属性值设置为选择器,当控件状态发生变化后,它的背景和颜也会随之变化。使用选择器配置控件外观,使用上比较便利,可以节省大量后台代码开发调试工作,并且易于修改和调试。
13.Android应用如何实现国际化?上述界面设计工具可否应用在国际化中?
通过增加面向特定国家和地区后缀的同名目录、资源文件等,让应用实现资源自动适配国际化。当Android应用运行时,Android系统会根据运行的地区环境语言来匹配和使用这些资源,从而实现自动适配目标国家地区的语言文本和界面。
第4章Android应用人机交互
14.Android应用处理事件的方式有哪几种?
Android开发框架提供了两种事件开发方式。第一种方式,通过注册事件,让应用获得和处理事件。第二种方式,通过重写父类事件方法,来获得和处理事件,比如重写
Activity类中的生命期方法来处理窗口的生命期事件。
15.选项菜单和上下文菜单有什么区别?如何规划两种菜单中的菜单项功能?
有的Android设备,会提供物理或虚拟的菜单按键,当按下后,可以激活应用的选项菜单。有的应用长按某个区域后会弹出上下文菜单。
选项菜单针对整个窗口的操作,上下文菜单针对某个控件的操作,根据应用范围选择不同的菜单。
16.常见控件的功能和用途是什么?控件如何处理事件?
UI界面控件,主要为UI界面开发提供支撑,用于信息呈现、用户交互操作等功能。控件多通过注册事件,来获得和处理事件。有的事件是通过重写父类事件方法,来获得和处理事件。
17.软键盘的作用是什么?何时显示软键盘比较好?
使用Android应用时,经常会用到软键盘输入数据。软键盘有多种类型以应对不同的输入场景。根据窗口应用场景,来决定在窗口呈现时同时显示软键盘,还是等点击用户输入框时显示软键盘。
第5章Activity和Intent
1.Activity的作用是什么?
Activity是Android程序中的四大组件之一,为用户提供可视化界面及操作。每个APP 中可以包含多个A
ctivity,每个Activity负责管理一个用户界面。在界面中可以添加多个控件,并编写相应的后台代码切换到其他界面。
2.Activity的生命周期是什么?
Activity的运行从开始到结束会经历各种状态,并且会发生从一个状态到另一个状态的切换,这样的过程就叫作生命周期。
3.Activity的启动模式是什么?
默认情况下,每启动一个新的Activity都会创建新的实例,并覆盖在原Activity之上,单击返回按钮,最上面的Activity会被销毁,下面的Activity重新显示。在开发中,可以为每个Activity指定恰当的启动模式,来复用Activity实例,优化APP的效率和资源占用。4.两个Activity之间如何传递数据?
Android系统中,组件之间可以进行消息传递或者数据传递,使用的是Intent。Intent不仅可以开启Activity,还可以在各个Activity之间传递数据。
5.常用对话框有哪些,分别有什么作用?
如果需要可交互的对话框,可以使用安卓SDK提供的AlertDialog类构建可交互的对话框,让用户选择
和确认信息。此外安卓SDK还提供了用于日期和时间选择的对话框类DatePickerDialog和TimePickerDialog,这两个类继承自AlertDialog类,使用上相对比较简单。安卓SDK还提供了ProgressDialog进度条对话框,这种对话框运行期间用户不能与主界面交互,不推荐使用。
第6章子窗口设计
1.Fragment的作用是什么?
Fragment是Android3.0后引入的一个新的API,它是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,可以将其看成一个小型Activity,它又被称作Activity片段。
2.Fragment加载到Activity有几种方式?
Fragment加载到Activity有两种方式,分别是静态加载和动态加载。使用Fragment时只需要将Fragment作为一个控件在Activity的布局文件中进行引用即可。除了可以在布局文件中添加Fragment之外,还可以在Activity中通过代码动态添加Fragment,这种方式更加灵活。
3.Fragment的生命周期是什么?
Fragment生命周期和Activity的生命周期相似,Fragment比Activity多了几种方法。
onAttach():当Fragment和Activity建立关联时调用。
onCreateView():当Fragment创建视图时调用。
onActivityCreated():当相关联的Activity的OnCreate()方法已返回时调用。
onDestroyView():当Fragment中的视图被移除时调用。
onDetach():当Fragment和Activity取消关联时调用。
4.Fragment和Activity之间如何传递数据?
从Activity向Fragment中传递数据可以Arguments方法向Fragment传递参数值,并且通过Arguments方法获取传递的参数值。安卓app开发用什么框架
从Fragment向Actvity中传递数据采用接口回调的方式实现数据的传递。
5.FragmentPagerAdapter与FragmentStatePagerAdapter的区别?
FragmentPagerAdapter适用于页面比较少的情况,FragmentStatePagerAdapter适用于页面比较多的情况。
第7章数据访问
18.Android中有几种数据存储方式以及各自特点?
Android平台的数据存储方式有SharedPreferences配置文件、文件存储、SQLite数据库等。SharedPreferences是Android提供的用来存储简单配置信息的存储方式,底层采用XML文件存储数据。文件存储,用途更广泛,可以存储各种类型的数据。JSON是一种轻量级数据交换格式,现在广泛使用。SQLite数据库提供关系数据的存储,可以存储大量数据。
19.Android中如何使用SharedPreferences类?
SharedPreferences是一种轻型的数据存储方式,底层是基于XML文件存储key-value 键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<;包名>/shared_prefs目录下。SharedPreferences与其他存储方式相比,使用上简单、方便,但只能存储boolean、int、float、long和String五种简单的数据类型。
SharedPreferences类对象用来获取数据,存储和修改数据通过该对象获取的Editor对象来实现。
20.如何实现JSON数据解析的?
JSON是一种轻量级的数据交换格式,它的全称为“JavaScript Object Notation”,它是基
于JavaScript编程语言的一个子集,主要用来交换数据,这种数据格式易于阅读和编写,同时也易于机器解析和生成。
21.SQLite数据库是如何创建的?
Android应用开发时,需要继承SQLiteOpenHelper类定义自己的数据库工具类,该工具类用来创建数据库、创建表、升级数据库表的操作。自定义类时,需要重写SQLiteOpenHelper类中的onCreate()方法、onUpgrade()方法和构造方法。
22.ListView控件如何实现数据展示?
ListView是一个列表视图,以垂直的形式列出需要显示的列表项。列表项由很多Item组成,每个Item的布局都是相同的,这个Item布局会单独使用一个XML定义,需要使用适配器将数据填充到Item布局文件中,进行多条目显示。
第8章广播和内容提供者
23.广播是什么?为何引入广播这一组件?
广播是一种在应用程序内、应用程序之间传输消息的机制,当某些事件发生时,Android 系统、应用程序都可以使用广播向其他应用发送这些事件信息。
在应用中添加广播组件,可以接收Android系统或者其他应用发出的广播事件,然后根据广播事件做相应的处理。
24.广播分类有哪几种?为何限制全局广播的使用?
可以从机制、类型、来源对广播进行分类。按广播机制分类,广播分为无序广播和有序广播两种。按广播类型分类,广播分为全局广播和本地广播。按广播来源分类,广播可分为自定义广播和系统广播两类。
全局广播可以被任何应用接收到,容易引起安全性的问题。比如我们发送的一些携带关键性数据的广播可能被其他应用程序截获或者其他程序不停向我们的广播接收者发送垃圾广播。
25.本地广播的优点是什么?
本地广播只能够在本应用内部进行传递,不用担心隐私数据泄露,其他应用程序也无法将广播发送到我们程序内部,造成安全隐患。相比系统内发送全局广播,本地刚播更安全更高效。
26.内容提供者的作用是什么?
为了方便在不同应用间共享数据,Android系统为开发者提供了内容提供者组件,该组件定义了一套接口用以操作共享数据,开发者通过重写相关方法等方式,可以将自己的数据开放给其他应用。
27.如何为其他应用提供数据?如何获取其他应用提供的数据?
要为其他应用提供数据,开发者需要在自己的项目中继承ContentProvider类自定义类,并重写父类中操作数据的相关抽象方法,就可以使用自己的数据源提供数据操作功能,可以提供查询、增加、修改、删除等功能。在自定义好ContentProvider类后,还需在清单文件中注册自定义的内容提供者组件,并定义相关访问权限。
在Activity当中通过getContentResolver()方法得到当前应用的ContentResolver实例。然后用它的增、删、改、查成员方法操作目标ContentProvider提供的数据即可。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论