《Android移动应⽤基础教程》(AndroidStudio)(第⼆版)⿊马程序员课后习
题答案
《Android移动应⽤基础教程》(Android Studio)(第⼆版)⿊马程序员 课后习题答案
⽬录
第1章 Android基础⼊门
⼀、填空题
1、dex
2、@color
3、l
4、LogCat
⼆、判断题
1、对
2、对
3、对
4、错
5、错
6、错
三、选择题
1、C
2、C
3、D
4、C
5、A
四、简答题
1. 简述如何搭建Android开发环境。
答:Android开发环境的搭建分为3步,具体如下:
1.Android Studio⼯具的下载、安装、以及相关配置。在安装过程中选择该⼯具的安装路径,以及配置Android Studio相关设置,
如Android Studio⼯具的主题。
2.创建模拟器。⾸先单击ADV Manager的图标,在弹出框中选择模拟设备,接着下载Android SDK System Image,下载完成后创
建并打开模拟设备。
3.下载SDK。分别在Default Settings窗⼝中下载SDK版本和SDK Tools⼯具。
2. 简述Android源代码的编译过程
答:Java源⽂件经过JDK编译器编译为class⽂件后,Dalvik虚拟机中的Dx⼯具会将部分class⽂件转换成dex⽂件,dex⽂件还会在Dalvik虚拟机中进⼀步优化成odex⽂件。
3.简述Android系统架构包含的层次以及各层的特点
答:Android系统架构从⾼到低分为四层,分别为依次是应⽤程序层(Applications)、应⽤程序框架层(Application Framework)、核⼼类库(Libraries)和Linux内核(Linux Kernel),各层的特点具体如下:
1.应⽤程序层:⼀个核⼼应⽤程序的集合,安装在⼿机中的应⽤程序都属于这⼀层。
2.应⽤程序架构层:主要提供了构建应⽤程序时⽤到的各种API。例如活动管理器(Activity Manager)。
3.核⼼类库:主要包含了系统库和Android运⾏环境。
4.Linux内核:他为Android设备的各种硬件提供了底层的驱动,如:显⽰驱动。
第2章 Android常见界⾯布局
⼀、填空题
1、ViewGroup
2、LinearLayout
3、TableRow
4、RelativeLayout LinearLayout
5、iInt
⼆、判断题
1、√
2、×
3、√
4、√
5、√
1、A
2、C
3、A
4、D
5、C
四、简答题
1. 列举Android中的常⽤布局,并简述他们各⾃的特点。
Android中有五种常⽤布局,分别为RelativeLayout(相对布局)、LinearLayout(线性布局)、FrameLayout(帧布局)、TableLayout(表格布局)、ConstraintLayout(约束布局),他们的特点具体如下:
(1) RelativeLayout(相对布局):该布局是通过相对位置的⽅式指定该布局内⼦控件的位置。
(2) LinearLayout(线性布局):该布局可通过android:orientation属性指定该布局内的⼦控件⽔平和竖
直排列。
(3) TableLayout(表格布局):采⽤⾏、列的形式来管理控件。他通常搭配TableRow布局使⽤,⼀个TableRow代表⼀⾏,在TableRow中添加的控件代表⼀列。
(4) FrameLayout(帧布局):该布局会在屏幕上创建⼀块空⽩区域,添加到该区域中的每个⼦控件占⼀帧,这些帧会⼀个⼀个叠加在⼀起,后加⼊的控件会叠加在上⼀个控件上层。默认情况下,帧布局中的所有控件会与左上⾓对齐。
(5) ConstraintLayout(约束布局):该布局是Android2.2新添加的布局,他适⽤于可视化的⽅式编写界⾯布局,他有相对定位、居中定位和倾向、Chain等性质。
第3章 Android常见界⾯控件
⼀、判断题
1、对
2、错
3、错
4、对
5、对
⼆、选择题
1、B
2、C
3、D
4、A
5、C
6、B
7、A
8、A
三、简答题
1.简述ListView与RecyclerView的区别
答:ListView与RecyclerView的区别具体如下:
1、展⽰效果:RecyclerView控件可以通过LayoutManager类实现横向或竖向的列表效果、瀑布流效果和GridView效果,⽽ListView控件只能实现竖直的列表效果。
2、适配器:RecyclerView控件使⽤的是RecyclerView.Adapter适配器,该适配器将BaseAdapter中的getView()⽅法拆分为onCreateViewHolder()⽅法和onBindViewHolder()⽅法,强制使⽤ViewHolder类,使代码编写规范化,避免了初学者写的代码性能不佳。
3、复⽤效果:RecyclerView控件复⽤Item对象的⼯作由该控件⾃⼰实现,⽽ListView控件复⽤Item对象的⼯作需要开发者通过convertView的setTag()⽅法和getTag()⽅法进⾏操作。
4、动画效果:RecyclerView控件可以通过setItemAnimator()⽅法为Item添加动画效果,⽽ListView控件不可以通过该⽅法为Item添加动画效果。
2.简述实现Button按钮的点击事件的⽅式有哪⼏种?
答:实现Button按钮的点击事件⼀共有3种⽅式,具体如下:
1、 在布局⽂件中指定onClick属性的⽅式设置点击事件。
2、使⽤匿名内部类的⽅式设置点击事件。
3、通过为Activity实现OnClickListener接⼝的⽅式设置点击事件。
3.简述AlertDialog对话框的创建过程
1、 调⽤AlertDialog的静态内部类Builder创建AlertDialog.Builder的对象。
2、 调⽤AlertDialog.Builder的setTitle()和setIcon()⽅法分别设置AlertDialog对话框的标题名称和图标。
3、 调⽤AlertDialog.Builder的setMessage()、setSingleChoiceItems()或者setMultiChoiceItems()⽅法设置AlertDialog对话框的内容为简单⽂本、单选列表或者为多选列表。
4、 调⽤AlertDialog.Builder的setPositiveButton()和setNegativeButton()⽅法设置AlertDialog对话框的确定和取消按钮。
5、 调⽤AlertDialog.Builder的create()⽅法创建AlertDialog对象。
6、 调⽤AlertDialog对象的show()⽅法显⽰该对话框。
7、 调⽤AlertDialog对象的dismiss()⽅法取消该对话框。
第4章程序活动单元Activity
1.singleInstance
2.startActivityForResult()
3.IntentFilter
4.action
5.finish()
⼆、判断题
1.对
2. 错 3、对 4、错 5、对
三、选择题
1.C 2、B 3、B 4、A 5、B
四、简答题
1.简述Activity的⽣命周期的⽅法有哪些
答:Activity⼀共有7个⽅法,这些⽅法和调⽤的时机具体如下:
(1) onCreate():Activity创建时调⽤,通常做⼀些初始化设置。
(2)onStart():Activity即将可见时调⽤。
(3)onResume():Activity获取焦点时调⽤。
(4)onPause():当前Activity被其他Activity覆盖或屏幕锁屏时调⽤。
(5)onStop():Activity对⽤户不可见时调⽤。
(6)onDestroy():Activity销毁时调⽤。
android学习教程(7)onRestart():Activity从停⽌状态到再次启动时调⽤。
2.简述Activity的四种启动模式及其特点
答:Activity的四种启动模式分别为standard、singleTop、singleTask和singleInstance,这些模式的特点具体如下:
(1)standard:每启动⼀个Activity就会在栈顶创建⼀个新的实例。
(2)singleTop:当被启动的Activity位于栈顶时,复⽤该Activity实例。
(3) singleTask:当被启动的Activity在栈中存在实例时,会直接复⽤此Activity实例,并把当前Activity上⾯的所有实例弹出栈。
(4) singleInstance:会启动⼀个新的任务栈来管理该Activity。
3.简述Activity、Intent、IntentFilter的作⽤
答:Activity表⽰活动,他是Android的四⼤组件之⼀,Intent表⽰意图,IntentFilter表⽰过滤器,他们
的作⽤具体如下:
(1)Activity是⼀个负责与⽤户交互的组件,每个Android应⽤中都会⽤Activity来显⽰界⾯以及处理界⾯上⼀些控件的事件。
(2)Intent被称为意图,是程序中各组件间进⾏交互的⼀种重要⽅式,它不仅可以指定当前组件要执⾏的动作,还可以在不同组件之间进⾏数据传递。
(3)IntentFilter为过滤器,当发送⼀个隐式Intent后,Android系统会将它与程序中的每⼀个组件的过滤器进⾏匹配,匹配属性有action、data、category,需要这三个属性都匹配成功才能唤起相应的组件。
第5章数据存储
⼀、判断题
1.对 2、对 3、错 4、对 5、错 6、对
⼆、选择题
1.C 2、B 3、B 4、C 5、C 6、D
三、简答题
1.简述数据库事物的4个基本要素要素
答:事务的操作⽐较严格,他必须满⾜ACID,ACID是指数据库事务正确执⾏的四个基本要素的缩写,这些要素包括原⼦性(Atomicity)、⼀致性(Consistency)、隔离性(Isolation)、持久性(Durability),接下来针对这四个基本要素进⾏详细解释。(1) 原⼦性:表⽰事务是⼀个不可再分割的⼯作单位,事务中的操作要么全部成功,要么全部失败回滚。
(2) ⼀致性:表⽰事务开始之前和结束之后,数据库的完整性没有被破坏。也就是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的⼀致性。
(3) 隔离性:表⽰并发的事务是相互隔离的,也就是⼀个事务内部的操作都必须封锁起来,不会被其他事务影响到。
(4) 持久性:表⽰事务⼀旦提交后,该事务对数据做的更改便持久保存在数据库中,并不会被回滚,即使出现了断电等事故,也不会影响数据库中的数据。
2.简述Android数据存储的⽅式
答:Android平台提供的五种数据存储⽅式,分别为⽂件存储、SharedPreferences、SQLite数据库、ContentProvider和⽹络存储,这些存储⽅式的特点如下。
(1) ⽂件存储:Android提供了openFileInput()和openFileOutput()⽅法来读取设备上的⽂件,其读取⽅式与Java中I/O程序是完全⼀样的。
(2) SharedPreferences:这是Android提供的⽤来存储⼀些简单的配置信息的⼀种机制,他采⽤了XML格式将数据存储到设备中。通常情况下,我们使⽤SharedPreferences存储⼀些应⽤程序的各种配置信息,如⽤户名、密码等。
(3) SQLite数据库:SQLite是Android⾃带的⼀个轻量级的数据库,他运算速度快,占⽤资源少,还⽀持基本SQL语法,⼀般使⽤他作为复杂数据的存储引擎,可以存储⽤户信息等。
(4) ContentProvider:Android四⼤组件之⼀,主要⽤于应⽤程序之间的数据交换,他可以将⾃⼰的数据共享给其他应⽤程序使⽤。(5) ⽹络存储:需要与Android⽹络数据包打交道,将数据存储到服务器上,通过⽹络提供的存储空间来存储/获取数据信息。
第7章使⽤内容提供者共享数据
⼀、判断题
1、对
2、对
3、对
4、错
5、对
⼆、选择题
1、C
2、B
3、B
4、C
5、D
三、简答题
1.简述内容提供者的⼯作原理
答:假设B程序需要操作A程序数据库中的数据,⼀般需要A程序使⽤ContentProvider
暴露数据,才能被其他程序操作。B程序通过ContentResolver操作A程序暴露出来的数据,⽽A程序会将操作结果返回给ContentResolver,然后ContentResolver再将操作结果返回给B程序。
2.简述内容观察者的⼯作原理
使⽤ContentObserver观察A程序的数据时,⾸先要在A程序的ContentProvider中调⽤ContentResolver的notifyChange()⽅法。调⽤此⽅法后,当B程序操作A程序中的数据时,A程序会向“消息中⼼”发送数据变化的消息,此时C程序会观察到“消息中⼼”的数据有变化,会触发ContentObserver的onChange()⽅法。
第8章⼴播机制
⼀、填空题
1.BroadcastReceiver
2.⽆序⼴播和有序⼴播 动态注册和静态注册
⼆、判断题
1、对
2、对
3、错
4、对
5、错
三、选择题
1.BC
2.ABCD
四、简答题
1.⼴播机制的实现过程
答:Android中的⼴播使⽤了观察者模式,即基于消息的发布/订阅事件的模式。⼴播发送者和接收者分别处于观察者模式中的消息发布和订阅两端。⼴播机制的实现过程具体如下:
(1)⼴播接收者通过Binder机制在AMS(Activity Manager Service)中进⾏注册。
(2) ⼴播发送者通过Binder机制向AMS发送⼴播。
(3) AMS查符合相应条件(IntentFilter/Permission)的⼴播接收者,将⼴播发送到相应的消息循环队列中。
(4)执⾏消息循环时获取到发送的⼴播,然后回调⼴播接收者中的onReceive()⽅法并在该⽅法中进⾏相关处理。
2.简述有序⼴播和⽆序⼴播的区别
答:⼴播分为有序⼴播和⽆序⼴播,他们有以下⼏点的区别。
(1) 发送⼴播时,使⽤的⽅法不同。有序⼴播使⽤sendOrderedBroadcast()发送⼴播,⽽⽆序⼴播使⽤sendBroadcast()⽅法发送⼴播。
(2) ⼴播接收者执⾏的顺序
a)有序⼴播的接收者是顺序执⾏的。
有序⼴播按照⼴播接收者声明的优先级别被依次接收。当在⾼级别的⼴播接收者逻辑执⾏完毕之后,⼴播才会继续传递。当优先级相同时,先注册的⼴播接受者优先执⾏。
b)⽆序⼴播是完全异步执⾏的。
当发送⽆序⼴播时,所有监听这个⼴播的⼴播接收者都会接收到此⼴播消息,但接收和执⾏的顺序不确定。
(3)拦截⼴播
有序⼴播的接收者可拦截⼴播。如果优先级较⾼的⼴播接收者将⼴播终⽌,那么⼴播将不再向后传递。⽽⽆序⼴播则不能被拦截。
(4)效率
有序⼴播的效率⽐⽆序⼴播低。
第9章服务
⼀、填空题
2.本地服务 远程服务
3.AIDL
⼆、判断题
1.错 2、错 3、对 4、错 5、错
三、选择题
1.C 2、D 3、D
四、简答题
1.简述Service的两种启动⽅式
答:Service的启动⽅式分别可以调⽤startService()、bindService()⽅法,这两个启动⽅式的区别如下所⽰:
(1) ⽣命周期
startService():使⽤该⽅法开启Service时,执⾏的⽣命周期⽅法依次为onCreate()、onStartCommand()、onDestroy()。
bindService():使⽤该⽅法开启Service时,执⾏的⽣命周期⽅法依次为:onCreate()、onBind()、onUnbind()、onDestroy()。
(2)停⽌服务的⽅法
startService():调⽤stopSelf()、stopService()⽅法停⽌服务。
bindService():调⽤unbindService()⽅法停⽌服务。
(3) 组件的关联
startService():当⼀个组件通过此⽅法开启服务时,服务与开启该组件没有关联,即使开启服务的组
件被销毁,服务依旧运⾏。bindService():当⼀个组件通过此⽅法开启服务时,服务会与该组件绑定,组件⼀旦被销毁,该服务也会被销毁。
2.简述Service的⽣命周期?
答:使⽤不同的⽅式启动服务,其⽣命周期会不同。开启服务的⽅法分别为startService()、bindService(),当通过startService()⽅法启动服务时,执⾏的⽣命周期⽅法依次为onCreate()、onStartCommand()、onDestroy()。当通过bindService()⽅法启动服务时,执⾏的⽣命周期⽅法依次为onCreate()、onBind()、onUnbind()、onDestroy()。
其⽣命周期⽅法的具体含义如下:
(1)onCreate ():第⼀次创建服务时执⾏的⽅法。
(2)onStartCommand():调⽤startService()⽅法启动服务时执⾏的⽅法。
(3)onBind():调⽤bindService()⽅法启动服务时执⾏的⽅法。
(4)onUnbind():调⽤unBindService()⽅法断开服务绑定时执⾏的⽅法。
(5)onDestory():服务被销毁时执⾏的⽅法。
第10章 Android事件处理
⼀、填空题
2.GestureDetector
3.OnClickListener
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论