Android手机开发期末考试简答题
- 格式:doc
- 大小:54.00 KB
- 文档页数:3
1.
简述Android 平台的特征有哪些。
答:开放性、挣脱运行商的束缚、丰富的硬件选择、无缝结合的Google应用
2.简述Android 平台开发环境搭建的步骤。
答:安装Java JDK,安装Eclipse,安装Android SDK,搭建Eclipse集成开发环境(IDE)、配置ADT(Android Development Tools)、创建AVD(Android Virtual Device)
3.简述Android系统架构从高到低的几个层次。
答:四个层次,分别是:应用程序层(Applications)、应用程序框架层(Application Framework)各种库(Libraries)和运行环境(Runtime)、Linux内核(Linux kernel)
4.应用程序的基本组件有哪些?
答:Activity、Service、Content Provider、BroadCast Receiver
5.Android根据应用程序的组件以及组件当前运行状态将所有的进程按重要性程度从高到低划分为几个?
答:可以划分为5个:前台进程、可见进程、服务进程、后台进程、空进程
6.随着Activity的创建和销毁,可能会经历哪四种状态?
答:活动状态:当前的Activity,位于Activity栈顶,用户可见,并且可以获得焦点暂停状态:失去焦点的Activity,依然可见,即使在内存低的情况下,也不会被系统杀死
停止状态:该Activity被其他Activity所覆盖,不可见,但是仍然保存所有的状态和信息。当内存低的情况下,它将要被系统杀死
销毁状态:该Activity结束,或Activity所在的Dalvik进程结束
7.使用资源包括哪几种方法?
答:在代码里使用资源类;在代码里调用资源类并实例化;从其他资源类里引用
8.AndroidManifest.xml主要包含哪些功能?
答:说明application的java数据包,数据包名是application的唯一标识
描述application的component
说明application的component运行在那个process下
声明application的权限,用以访问受保护的API,以及与其他application进行交互
声明application的其他必备权限,用以与component进行交互
列举application运行时所需要的配置信息,这些声明信息只有在程序开发和测试时存在,在发布前被删除
声明application所需要的Android API的最低级版本
列举application所需要链接的库
9.应用程序的界面布局主要有哪些?
答:线性布局(LinearLayout)、表格布局(TableLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)10.Android应用程序的菜单有哪几种?
答:Android应用程序的菜单有3种:选择菜单(Option Menu)上下文菜单(Context Menu)子菜单(Sub Menu)11.在界面上创建一个Spinner(含数据选项)的步骤。
答:1、在布局文件中添加
12.现行布局中属性orientation的作用是什么?
答:用于设置布局管理器内组件的排列方式,其可选的值为horizontal和vertical,默认值为vertical 13.Android中实现事件处理的步骤?
答:(1)将事件监听器注册到事件源(2)触发事件源上的事件(3)生成时间对象
(4)触发事件监听器,事件被作为参数传入事件处理器(5)调用事件处理器做出响应
14.简述Android平台提供了那些数据存储方法。
答:Preferences、 File、SQLite、ContentProvider,网络
15.简述Android模拟器中应用程序使用SD卡的步骤。
答:(1)调用Environment的getExternalStorageState()方法判断手机上是否插入了SD卡,并且应用程序具有读写SD卡的权限 2)调用Environment的getExternalDirectory()方法来获取外部存储器,也就是SD 卡的目录(3)使用FileOutputStream、FileInputStream、FileReader和FileWriter来读写SD卡
16.简述创建或打开一个SQLite数据库的方法有哪些?答:openDataBase、openOrCreateDataBase
17.使用ContentProvider来实现数据共享,都涉及到哪些辅助类。
答:onCreate()、insert()、delete()、update()、query()、getType()
18.开发ContentProvider的步骤
答:(1)开发一个ContentProvider子类,并实现增、删、改、查等方法
(2)在AndroidManifest.xml里面注册该ContentProvider
19.startService()和bindService()启动服务的区别:
服务不能自己运行,需要通过调用startService()或bindService()方法启动服务。这两个方法都可以启动Service,但是它们的使用场合有所不同。
1.使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。
使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。
2.采用startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会导致多次调用onStart()方法。采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。
3.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法。这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,接着调用onDestroy()方法。如果调用bindService()方法前服务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-->onDestroy()方法。
20.请解释下在单线程模型中Message、Handler、MessageQueue、Looper之间的关系。
Handler简介:一个Handler允许你发送和处理Message和Runable对象,这些对象和一个线程的MessageQueue 相关联。每一个线程实例和一个单独的线程以及该线程的MessageQueue相关联。当你创建一个新的Handler 时,它就和创建它的线程绑定在一起了。这里,线程我们也可以理解为线程的MessageQueue。从这一点上来看,Handler把Message和Runable对象传递给MessageQueue,而且在这些对象离开MessageQueue时,Handler负责执行他们。
Handler有两个主要的用途:(1)确定在将来的某个时间点执行一个或者一些Message和Runnable对象。
(2)在其他线程(不是Handler绑定线程)中排入一些要执行的动作
21. handler机制的原理
andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。
1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。
2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从Message Queue取出)所送来的消息。
3) Message Queue(消息队列):用来存放线程放入的消息。
4)线程:UIthread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。