Android复习题

Android复习题

一、选择题

 

1.   Android  中下列属于 Intent 的作用的是 ( C )

A .实现应用程序间的数据共享

B .是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失

C .可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带

D .处理一个应用程序整体性的工作

2.   在 Android 中使用 Menu 时可能需要重写的方法有 (AC ) 。

A . onCreateOptionsMenu()       B . onCreateMenu()

C . onOptionsItemSelected()       D . onItemSelected()

3.   在 Android 中使用 SQLiteOpenHelper 这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是 (AB )

A . getWriteableDatabase()         B . getReadableDatabase()

C . getDatabase()             D . getAbleDatabase()

4.   下列哪个不是  Activity  的生命周期方法之一(B)  

A .onCreate   B .startActivity   C.onStart   D .onResume

5.   Android  关于 service 生命周期的 onCreate() 和 onStart() 说法正确的是 ( A D)

A .当第一次启动的时候先后调用 onCreate() 和 onStart() 方法

B .当第一次启动的时候只会调用 onCreate() 方法

C .如果 service 已经启动,将先后调用 onCreate() 和 onStart() 方法

D .如果 service 已经启动,只会执行 onStart() 方法,不 再 执行 onCreate() 方法

6.   下面在 AndroidManifest.xml 文件中注册 BroadcastReceiver 方式正确的 ( A )

   A . <receiver android:name= " NewBroad " >

     <intent-filter>

       <action   

  android:name= "android.provider. action.NewBroad " />

 <action>

     </intent-filter>

   </receiver>

  B . <receiver android:name= " NewBroad " >

     <intent-filter>

  android:name= "android.provider. action.NewBroad " />

     </intent-filter>

   </receiver>

  C . <receiver android:name= " NewBroad " >

     <action   

  android:name= "android.provider. action.NewBroad " />

 <action>

   </receiver>

  D . <intent-filter>

  <receiver android:name= " NewBroad " >

          <action >

  android:name= "android.provider. action.NewBroad " />

   <action>

      </receiver>

</intent-filter>

7.   我们都知道 Hanlder 是线程与 Activity 通信的桥梁 , 如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是 ( A)

A . onDestroy()     B . onClear()       C . onFinish()     D . onStop()

8.   下面退出 Activity 错误的方法是 (C )

A . finish()     B .抛异常强制退出   C . System.exit()     D .onStop()

9.   Android 项目工程下面的 assets 目录的作用是什么 (B)

A .放置应用到的图片资源。       B .主要放置多媒体等数据文件

C .放置字符串,颜色,数组等常量数据   D .放置一些与 UI 相应的布局文件,都是 xml 文件

10.   关于 res/raw 目录说法正确的是 (  )

A .这里的文件是原封不动的存储到设备上不会转换为二进制的格式

B .这里的文件是原封不动的存储到设备上会转换为二进制的格式

C .这里的文件最终以二进制的格式存储到指定的包中

D .这里的文件最终不会以二进制的格式存储到指定的包中

11.   Android 是如何组织 Activity 的 ( A )

A .   以栈的方式组式 Activity       B .   以队列的方式组织 Activity

C .   以树形方式组织 Activity       D .   以链式方式组织 Activity 。

12.   onPause 什么时候调用 ( C )

A . 当界面启动时            B . 当 onCreate 方法被执行之后

C . 当界面被隐藏时           D . 当界面重新显示时

13.   在 Activity 中,如何获取 service 对象 ( A)

A . 可以通过直接实例化得到。       B . 可以通过绑定得到。

C . 通过 startService()          D . 通过 getService() 获取。

14.   在表格布局中, android:collapseColumns="1,2" 的含义是 (  C  )

A .在屏幕中,当表格的列能显示完时,显示 1 , 2 列  

B .在屏幕中,当表格的列显示不完时,折叠

C .在屏幕中,不管是否能都显示完,折叠 1 . 2 列

D .在屏幕中 , 动态决定是否显示表格。

15.   绝对布局中, android:layout_x  的含义有 (B )

A .以手机左下为原点,组件显示到屏幕中的横向坐标值。

B .以手机左上为原点,组件显示到屏幕中的横向坐标值。

C .以手机右下为原点,组件显示到屏幕中的横向坐标值。

D .以手机右下为原点,组件显示到屏幕中的横向坐标值。

16.   创建 Menu 需要重写的方法是 (C )

A . onOptionsCreateMenu ( Menu menu )

B . onOptionsCreateMenu ( MenuItem menu )

C . onCreateOptionsMenu(Menu menu)  

D. onCreateOptionsMenu(MenuItem menu)

17.   在使用 SQLiteOpenHelper 这个类时,它的哪一个方法是用来实现版本升级之用的 (  D   )

A  onCreate()    B  onCreade()    C  onUpdate()     D  onUpgrade()

18.   ScrollView 中,可以直接包含多少个组件 ( D  )

A . 三个         B .两个         C .一个         D .无数个

19.   关于适配器的说法正确的有 (B)

A . 它主要是用来存储数据           B . 它主要用来把数据绑定到组件上

C .它主要用来解析数据             D .它主要用来存储 xml 数据

20.   关于 Activity 说的法不正确的是 (C)

A .  Activity 是为用户操作而展示的可视化用户界面

B .   一个应用程序可以有若干个 Activity

C .  Activity 可以通过一个别名去访问

D .  Activity 可以表现为一个漂浮的窗口

21   service 中如何实现更改 Activity 界面元素 (B)

A . 通过把当前 actvity 对象传递给 service 对象。

B . 通过向 Activity 发送广播。

C . 通过 Context 对象更改 Act]ivity 界面元素

D . 可以在 service 中,调用 Activity 的方法实现更改界面元素。

22.   激活 Activity 的方法是 (C )

A . runActivity()    B . goActivity()     C . startActivity ()     D . startActivityForIn()

23.   下列样式表定义正确的是 (C)

A . 

<style name="text">

<item name="android:textColor">#FF00FF</item>

</style>

B . 

<resources>

<style name=" android:textColor ">#FF00FF </style>

</resources>

C . 

<resources>

<style name="text">

<item name=" android:textColor">#FF00FF</item>

</style>

</resources>

D . 

<resources>

<style name="text">

<item name="textColor">#FF00FF</item>

</style></resources>

24.   关于 android 进程,说法不正确的是 ( C )

A . 组件运行所在的进程,是由 androidmanifest.xml 决定,它可以指定该组件运行于哪个进程。

B .当急需内存时, android 会决定优先关闭那些空闲的进程

C .背景进程是不为用户所见的 Activity ,但是还会有可能被用户看到,所以它不能被杀死

D .可视进程一般不会不被系统所杀死

25.   在 Activity 的生命周期中,当它从可见状态转向半透明状态时,它的哪个方法必须被调用 (B)

A . onStop ()       B . onPause()      C . onRestart ()      D . onStart ()

26.   当 Activity 被消毁时,如何保存它原来的状态 (A)

A .实现 Activity 的 onSaveInstanceState () 方法

B .实现 Activity 的 onSaveInstance () 方法

C .实现 Activity 的 onInstanceState () 方法

D .   实现 Activity 的 onSaveState () 方法

27.   关于 Intent 对象说法错误的是 (D)

A . 在 android 中, Intent 对象是用来传递信息的

B . Intent 对象可以把值传递给广播或 Activity

C .利用 Intent 传值时,可以传递一部分值类型

D .利用 Intent 传值时,它的 key 值可以是对象

28.   在 android 中, ArrayAdapter 类是用于 (A )

A .用于把数据绑定到组件上

B .它能把数据显示到 Activity 上

C .它能把数据传递给广播

D .它能把数据传递给服务

29.   activity 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行 (  D  )

A . onPause()      B . onCreate()      C .onResume()    D .onStart()

30.   下面在 AndroidManifest.xml 文件中注册 BroadcastReceiver 方式正确的是 (A )

A . android:name="android.provider.action.NewBroad"/>

31.   下面哪一个不属于 Android 体系结构中的应用程序层 ( )

A . 电话簿      B . 日历         C . SQLite       D . SMS 程序

32.   下面哪种说法不正确 ( )

A . Android 应用的 gen 目录下的 R.java 被删除后还能自动生成 ;

B . res 目录是一个特殊目录,包含了应用程序的全部资源,命名规则可以支持数字 (0-9) 下横线 (_), 大小写字母 (a-z , A-Z);

C . AndroidManifest.xml 文件是每个 Android 项目必须有的,是项目应用的全局描述。其中指定程序的包名 (package= ”…” )+ 指定 android 应用的某个组件的名字 (android:name= ”…” ) 组成了该组件类的完整路径

D . assets 和 res 目录都能存放资源文件,但是与 res 不同的是 assets 支持任意深度的子目录,在它里面的文件不会在 R.java 里生成任何资源 ID

33.   在一个相对布局中怎样使一个控件居中 ( )

A . android:gravity="center"          B . android:layout_gravity="center"

C . android:layout_centerInParent="true"   D . android:scaleType="center"

34.   下列说法错误的是 (B)

A . Intent 起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦

B . Intent  可以传递  View 对象

C . 对于直接 Intent , Android 不需要去做解析,因为目标组件已经很明确, Android 需要解析的是那些间接 Intent ,通过解析,将  Intent 映射给可以处理此 Intent 的 Activity . IntentReceiver 或 Service

D . 通过 Intent 可以删除程序

35.下列哪个可做EditText编辑框的提示信息(  D  )

A android:inputType  B android:text

C android:digits D android:hint

36.下列哪个属性是专用于相对布局的( D )

A.线性vertical垂直horizontal        

B.android:stretchColumns

C.android:layout_alignParentRight   

D.android:layout_toRightOf

37. 定义LinearLayout垂直方向布局时设置的属性( D )

A.android:layout_height     B.android:gravity  

C.android:layout         D.android:orientation:”vertical”

38. 为了使android适应不同分辨率的机型,布局时 字体 单位应用( D )

A.dp      B.dip 像素    C.px     D.sp

39. 在android程序中 LOG.W()用于输出什么级别的日志信息 (C)

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

40. 在Activity中需要找到一个id是bookName的的TextView组件,下面哪种语句写法是正确的 (C)

A、TextView tv = this.findViewById(R.id.bookName);

B、TextView tv = (TextView)this.findViewById(R.id.code);

C、TextView tv = (TextView)this.findViewById(R.id.bookName);

D、TextViewtv=(TextView)this.findViewById(R.string.bookName)

3、如果将一个TextView的android:layout_height属性值设置为

41. wrap_content那么该组件将是以下哪种显示效果 (D)

A、该文本域的宽度将填充父容器宽度

B、该文本域的宽度仅占据该组件的实际宽度

C、该文本域的高度将填充父容器高度

D、该文本域的高度仅占据该组件的实际高度

42. 给一个TextView设置红色字体 应该使用以下哪种写法 (A)

A、setTextColor(0xffff0000);

B、setColor("0xffff0000")

C、setTextColor("0xffff0000")

D、setColor("red")

43. 在Android应用程序中 图片应放在那个目录下 (D)

A、raw B、values

C、layout  D、drawable

44.   下列属于 Activity 的状态是 ( ABC ) [ 多选 ]

A. 运行状态        B  暂停状态      C  停止状态       D  睡眠状态

45.   关于 Handler 的说话正确的是 ( AB  ) [ 多选 ]

A. 它实现不同线程间通信的一种机制       B. 它避免了新线程操作 UI 组件

C. 它采用栈的方式来组织任务的       D. 它可以属于一个新的线程

46.   关于广播的作用,正确的说法是 (ABCD )  [ 多选 ]

A  它是用接收系统发布的一些消息的     B  它可以帮助 service 修改用户界面

C  它可以启动一个 Activity           D  它可以启动一个 Service

47.   下面属于 View 的子类的是 (  CD   )   [ 多选 ]

A Activity       B Service       C ViewGroup       D TextView

48.   在 main.xml 中,定义一个组件时,有两个属性必须写 ( AB )   [ 多选 ]

A android:layout_width           B android:layout_height

C android:id="@+id/start"           D android:text

49.   关于主题的说法,正确的是 ( )   [ 多选 ]

A  它是属性集合

B  它可以在程序中来设置

C  它通常用于一个 Activity 或所有 Activity 上

D  它可以用于单个 TextView 上

50.   意图可分为 (AB )   [ 多选 ]

A  显式意图        B  隐式意图       C  组件意图       D  类意图

51.   关于 Sqlite 数据库,正确的说法 (ABD )   [ 多选 ]

A SqliteOpenHelper 类主要是用来创建数据库和更新数据库

B SqliteDatabase 类是用来操作数据库的

C  在每次调用 SqliteDatabase 的 getWritableDatabase() 方法时,会执行 SqliteOpenHelper 的 onCreate 方法。

D  当数据库版本发生变化时,可以自动更新数据库结构

 二、填空题

 1.android虚拟设备的缩写是( AVD )

2.一个 Activity 就是一个 (可视化的界面) 或者看成是(控件的容器)。

3.AndroidSDK提供一些开发工具可以把应用软件打包成Android格式文件( APK )

4.Android当中基本的所有的UI都是由( View )或者其子类实现的

5.Android平台由(操作系统),(中间件),(用户界面)和(应用软件)组成。

6.为了使  android  适应不同分辨率机型,布局时字体单位应用 (    sp    ), 像素单位应用 (    sp    )和(   dip    )  

7.定义  LinearLayout水平方向布局时至少设置的三个属性: (    android:orientation ),( android:layout width   )和( android:layout height )

 8.layout布局文件的命名不能出现字母 (   大写   )

 9.Android  四大组件是( Activity ),( Service ),( BroadcaseReceiver )和( ContentProvider )。

 10.设置  TextView  字体的属性是: (   android:typeface  )。  

11.android 的数据存储的方式 sharedpreference ,文件, SQlit,,contentprovider ,网络。

12.当启动一个 Activity 并且新的 Activity 执行完后需要返回到启动它的 Activity 来执行的回调函数是 startActivityResult() 。

13.属于 android 中的三种适配器(SimpleAdapter)、( ArrayAdapter)、(BaseAdapter)。

14.onPause() 方法在 activity 被暂停或收回 CPU 和其他资源时调用,该方法用于 保存活动状态的 ,也是对运行时数据的现场保护。

15.onDestroy 是 activity 被干掉前最后一个被调用方法,当调用 finish 方法或者系统为了节省空间将它暂时性的干掉时候调用。

16.使用 startService() 方法启动服务后,调用者和服务间没有关联,即使调用者退出了,服务 仍然 进行 。

17.当应用程序中某广播在 AndroidMainifest .xml 进行注册后,即使该应用程序关闭后,也可以接受操作系统发出的 广播信息 。

18.Intent是android的四大组件之一。(   x    )

19.Activity的onStop()和onDestroy()方法效果是差不多的。(    x    )  

、简答题

1 . 请介绍下Android中常用几种布局(至少  3  种)  

1)   相对布局 (RelativeLayout) :相对布局中可以设置某一个视图 相对于其他 视图的位置,包括上、下、左、右。

2)   线性布局 (LinearLayout) :线性布局可分为水平线性布局和垂直线性布局。水平线性布局所有在这个布局中的视图都沿着水平方向线性排列。垂直线性布局则沿着垂直方向线性排列。

3)   框架布局 (FrameLayout) :所有添加到框架布局中的视图都是 以层叠的方式 显示,这种显示方式 类似堆栈 。

4)   表格布局 (TableLayout) :表格布局可以将视图按行、按列进行排列。

5)   绝对布局 (AbsoluteLayout) :可以 任意设置 视图定位位置。

2.Android  工程下面有个  gen  目录,该目录下有个  R..java  文件,该文件的作用是什么,能不能修改,为什么  

答:作用:该文件相当于项目的字典项目中所涉及到的用户界面、字符串、图片、声音等资源都会在该文件中创建一个  ID  编号,这些编号为整形,以  16  进制自动生成。项目要使用这些资源时,会通过这个类得到资源的引用。不能够被修改  

3 . 把文件名为“图片1.jpg ”的一张图片放到 android 工程下的  res- drawable-mdpi  下,会不会报错,为什么?  

答:不会。因为使用  Android  系统的手机可能采用不同的分辨率,所以在开发的时候会要求有不同分辨率的图片,  drawable-hdpi  存高分辨率的  ,drawable-mdpi  存中等分辨率的 ,drawable-ldpi  存低分辨率的,所以,你要把相同的图片用图片处理软件处理成不同的分辨率的图片,然后分别保存,当然了,如果你嫌麻烦,也可以在三个目录下保存相同的图片,这样也没有问题,但是不符合开发的初衷。 

4.在界面上创建一个 Spinner (含数据选项)的步骤。

1 、在布局文件中添加 <spinner> 标记 , 并为其指定 android:entries 属性

2 、编写用于指定列表项的数组资源文件 , 并将其保存在 res/values 目录中 , 在该文件中添加一个字符串组

5.线性布局中属性 orientation 的作用是什么?

用于设置布局管理器内组件的排列方式 , 其可选的值为 horizontal 和 vertical , 默认值为 vertical

6.AndroidManifest.xml 主要包含哪些功能 ?

说明 application 的 java 数据包 , 数据包名是 application 的唯一标识

描述 application 的 component

说明 application 的 component 运行在那个 process 下

声明 application 的权限 , 用以访问受保护的 API , 以及与其他 application 进行交互

声明 application 的其他必备权限 , 用以与 component 进行交互

列举 application 运行时所需要的配置信息,这些声明信息只有在程序开发和测试时存在,在发布前被删除

声明 application 所需要的 Android API 的最低级版本

列举 application 所需要链接的库

7.阐述 android:padding 和 android:layout_margin 的异同?

( 1 )不同点: android:padding  是站在父 View  的角度描述问题,它规定它里面的内容必须与这个父 View  边界的距离。 android:layout_margin  则是站在自己角度描述问题,规定自己和其他(上下左右)的  View  之间的距离如同一级只有一个 View ,那么他的效果基本上就和 padding 一样。

8.   简述 Activity 的生命周期

一个 activity 有三个基本的状态:  

当 activity 在前台运行时(在 activity 当前任务的堆栈顶),为活动或者运行状态。这时 activity 会响应用户的操作。

当 activity 失去焦点但是对用户仍然可见时为 paused 暂停状态。此时,别的 activity 在他的上面,透明或者备有被全部覆盖。所以其中一些暂停的 activity 也可以被显示。一个暂停的 activity 是处于活动状态的(他维护着所有的状态保存着信息,并且依然附着在窗口管理器)。  

如果一个 activity 完全被另一个 activity 所掩盖那他会处于 stop 状态。但仍然保存着原来的状态和信息。然而,如果别的地方需要更多的内存而且这个 activity 仍一直处于隐藏状态,那么系统有可能会杀死他的进程。

如果一个 activity 是暂停或者停止状态,系统可以清理他们占用的内存,或者调用 finish () 方法,或者直接结束他的进程。当他再次显示给用户时,会完全的重新运行并且加载以前所存储的信息。

8.简述 Android 的数据存储方式。

SharedPreferences 方式

SharedPreferences主要用于存储配置信息 ,类似windows中的inf文件,格式是.xml。 SharedPreferences是一个轻量级的存储策略,和应用程序是属于从属关系。

文件存储方式

SQLite 数据库方式

SQLite数据库是移动数据库, 轻量级 的,IOS,Android都是使用这种数据库作为存储策略 ;虽然SQLite是轻量级的移动数据库,但是 性能非常高 (远高于Oracle) ;SQLite和传统数据库相比最大不同点就是 不存在服务器和客户端的 概 念 ,Android系统 自带了SQLite ,所以也不需要安装 ;SQLite数据库的操作上更 类似文件操作 ,而非传统的客户端服务器操作模式

内容提供器( Content provider )方式

网络存储方式

9.Android应用程序的4大组件是什么?

Activity、BroadcastIntentReceiver、ContentProvider、Service

Activity,“活动”,在应用程序中, 一个Activity通常就是一个单独的屏幕。 每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。

Intent,Android用Intent这个特殊类 实现在Activity与Activity之间的切换 。Intent用于描述应用的功能。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。

ContentProvider是所有 应用程序之间数据存储和检索的一个桥梁 ,实现了一组标准的方法,使得各个应用程序之间 实现数据共享 。

Service,“服务”,Server是一个 生命周期长且没有用户界面 的程序。

10.Android应用工程文件结构有哪些?

源文件(包含Activity),R.java文件,AndroidLibrary,assets目录,res目录,drawble目录,layout目录,values目录,AndroidManifest.xml

源文件(包含Activity)主程序继承Activity类,重写了onCreate(BundlesavedInstanceState)方法。setContentView

R.java文件在建立项目时自动生成,是只读模式,不能修改,R.java文件是定义该项目所有 资源的索引文件 。

AndroidManifest.xml 资源清单文件 ,包含了该项目中所使用的Activity、Service、Receiver。

11. 简述Android应用程序结构是哪些

(1)一组View(UI组件)。这些组件包括列表(List)、文本框(textbox)、按钮(button)等。通过这些UI 组件可以构建应用程序的视图部分。

(2) ContentProviders 。它提 供了一种机制,通过这种机制,应用程序可以实现数据的互访和共享。

(3)ResourceManager 。它负责管理非代码的访问。即 资源文件的访问管理 。

(4)NotificationManager。它能让程序将自己的警示信息显示在 状态栏上。例如:当有短信时,可以在状态栏上显示出新短信的信息。

(5)ActivityManager。它管理着 应用的生命周期 ,并且提供了应用页面退出的机制。在Android应用中,每个应用一般由多个页面组成,而每个页面的单位就是Activity。通俗的说,Android的应用是由多个Activity 的交互构成的各种库,当使用Android应用架构时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好地为我们服务。如SGL、SSL、SQLite、Webkit等。

12.简述 Activity和Intent、IntentFilter 的作用,以及它们之间的关系

Activity作用:向用户呈现操作界面,与用户交互

Intent作用:启动另一个Activity,传递数据

IntentFilter作用: 可以帮助Activity 跨应用调用 ,可以对Activity进行 功能分组

上一篇:一个水平方向多行cell的自定义layout —LBHorizontalCollectionViewLayout


下一篇:POJ 3169 Layout