《Android移动应用开发》
复习题(二)
一、填空
1、Android的系统架构采用了分层架构的思想,从上层到底层共包括四层,分别是应用层、 应用框架层 、 系统运行库层 以及Linux内核层。
2、Android的四大组件分别是 Activity 、 Service 、
BroadCastRecevicer 和 ContentProvider。
3、如果界面的某个控件的id设置为btnLogin,那么调用方法findViewById()时,引用该控件的参数应为 R.id.btnLogin 。
4、Toast可以通过makeText( )方法创建Toast对象并设置相关属性,并调用
Show() 方法显示提示。
5、Intent启动Activity,分为 显式启动 和 隐式启动 两种。
6、 SharedPreferences 是Android系统提供的一种轻量级数据保存方式,它的数据以键值对(Key-Value)的形式存放在 xml 文件中。
7、 SQLite 数据库是Android系统内置的一款轻量级开源嵌入式数据库。
8、 AIDL 是一种接口定义语言,用于约束两个进程间的通讯规则,供编译器生成代码,实现Android设备上的两个进程间通信(IPC)。
9、 SharedPreferences 是Android系统提供的一种轻量级数据保存方式,它的数据以键值对(Key-Value)的形式存放在XML文件中,直到应用程序被删除。
10、通常Android应用程序之间的数据不能够直接访问,为了实现不同应用程序之间的数据交互,Android提供了一个接口 ContentProvider ,它是不同应用程序之间进行数据交互的标准API,一个应用程序把自己的数据通过 暴露给其他应用程序,而其他程序通过 ContentResolver 来获取暴露的数据
11、当一个Fragment被创建的时候,它会经历以下状态: onAttach() →onCreate()→ onCreateView() →onActivityCreated()。
12、Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是 ExecutorService 。
13、 Executors 类为创建ExecutorService提供了便捷的工厂方法。要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚的情况下,很有可能配置的线程池不是较优的,因此在 Executors 类里面提供了一些静态工厂,生成一些常用的线程池。
14、 Future 模型是将异步请求和代理模式联合的模型产物,类似商品订单模型。
15、volatile修饰符告诉JVM, 访问该变量的线程必须总是使自己对该变量的私有副本与内存中的主副本保持一致 。
16、当两个系统需要进行数据交换的时候,如果传递的是经过序列化的对象,效率是非常低的,如果传递的是存储大量对象的数组的时候效率就更不敢想象了,这时如果通过将对象或数据转换成 JSON 字符串进行传递,效率就会提高很多。
17、 Maven 是一个项目管理工具,它包含了一个项目对象模型(Project Object Model)、一组标准集合、一个项目生命周期(Project Lifecycle)、一个依赖管理系统(Dependency Management System)和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
18、 Gradle 是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。
19、Maven 的所有构件均通过坐标进行组织和管理。Maven的坐标通过5个元素进行定义,其中 groupId 、 artifactId 、version是必须的,packaging是可选的(默认为jar),classifier 是不能直接定义的。
20、一个构件只有在本地仓库中之后,才能由其他Maven项目使用,那么构件如何进入到本地仓库中呢?最常见的是依赖Maven从 远程仓库 下载到本地仓库中。
二、选择题
1、下列方法中,用于发送一条有序广播的方法是( B )。
A. startBroadcastReceiver( ) B. sendOrderedBroadcast( )
C. sendBroadcast( ) D. sendReceiver( )
2、在清单文件中,注册广播时使用的节点是( C )。
- <activity> B. <broadcast> C. <receiver> D. <broadcastreceiver>
3、下列选项中,属于绑定服务特点的是( ABC )。(多选题)
- 以bindService()方法开启 B. 调用者关闭后服务关闭
C. 必须实现ServiceConnection( ) D. 使用stopService()方法关闭服务
4、关于Service生命周期的onCreate()和onStart()方法,正确的的是( BD )。
(多选题)
A. 如果Service已经启动,将先后调用onCreate()和onStart()方法。
B. 当第一次启动的时候,先后调用onCreate()和onStart()方法。
C. 当第一次启动的时候只会调用onCreate()方法。
D. 如果Service已经启动,只会执行onStart()方法,不再执行onCreate()方法。
5、下列选项中,不属于Handler机制中的的关键对象是( A )。
- Content B. Handler C. MessageQueue D. Looper
6、下列关于Activity的描述中,错误的是( D )。
A. 一个Activity可以表示一个可视化的用户界面。
B. Activity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的。
C. Activity有4种启动模式。
D. Activity通常用于开启一个广播事件。
7、Android中有许多控件,这些控件都继承自( D )类。
A. Control B. Window C. TextView D. View
8、Android中有一个服务用来管理通知,它是( B )。
A. Service B. NotificationManager C. Notice D. DialogueBuilder
9、以下哪一个控件是用来显示图片?( A )
A. ImageView B. TextView C. EditText D. Button
10、以下哪个控件可以用来显示进度?( B )
A. EditText B. ProgressBar C. TextView D. Button
11、如果要实现用户单击后触发一定的处理,以下哪一个控件最合适?( D )
A. ImageView B. TextView C. EditText D. Button
12、以下哪个属性用来表示引用图片的资源id( D )。
A. text B. img C. id D. src
13、如果需要创建一个字符串资源,需要将字符串放在res/values文件夹下的哪个文件中?( B )
A.value.xml B.strings.xml C.dimens.xml D.styles.xml
14、ListView是最常用的( C )类型控件。
A.按钮 B.图片 C.列表 D.下拉列表
15、Android中有许多布局,它们均是用来容纳子控件和子布局的,这些布局均继承自( B )。
A.Layout B.ViewGroup C.Container D.Line Layout
16、startActivityForResult方法接受两个参数,第1个是Intent对象,第2个是( C )。
A.resultCode B.action C.请求码 D.data
17、Android中下列属于Intent的作用的是(C )。
A.实现应用程序间的数据共享。
B.可以保持应用在后台运行,而不会因为切换页面而消失。
C.可以实现界面间的切换,可以保护动作和动作数据,连接四大控件的纽带。
D.处理一个应用程序整体性的工作。
18、继承BroadcastReceiver会重写( A )方法。
- onReceive( ) B. onUpdate( ) C. onCreate( ) D. onStart( )
19、如果需要捕捉某个控件的事件,需要为该控件创建( C )。
- 属性 B. 方法 C. 监听器 D. 事件
20、一个Android应用程序默认会包含( 1 )个Activity。
A. 1 B. 5 C. 10 D. 2
21、下列方法中,Activity从启动到关闭不会执行的是( D )。
A. onCreate( ) B. onStart( ) C. onResume( ) D. onRestart( )
22、下列控件中,不能用Intent启动的是( D )。
A. Activity B. 启动服务 C. 广播 D. 内容提供者
23、如果要将数据中的私有数据分享给其他应用程序,可以使用的是( C )。
A. 文件存储 B. SharedPreferences C. ContentProvider D. SQLite
24、以下哪个方法能够实现数据库的数据插入?( C )
A. onCreate B. onUpgrade C. execSQL D. rawQuery