完整word版移动应用开发复习Word格式文档下载.docx
《完整word版移动应用开发复习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《完整word版移动应用开发复习Word格式文档下载.docx(34页珍藏版)》请在冰点文库上搜索。
A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能
B、不用事先调入整个文档,占用资源少
C、整个文档调入内存,浪费时间和空间
D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失
6.下面的对自定style的方式正确的是(a)
A、
<
resources>
style
name="
myStyle"
>
itemname="
android:
layout_width"
fill_parent<
/item>
/style>
/resources>
B、
C、
D、
stylename="
7.在android中使用Menu时可能需要重写的方法有(ac)。
(多选)
A、onCreateOptionsMenu()
B、onCreateMenu()
C、onOptionsItemSelected()
D、onItemSelected()
8.
在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是(ab)
A、getWriteableDatabase()
B、getReadableDatabase()
C、getDatabase()
D、getAbleDatabase()
9.
关于service生命周期的onCreate()和onStart()说法正确的是(ad)(多选题)
A、当第一次启动的时候先后调用onCreate()和onStart()方法
B、当第一次启动的时候只会调用onCreate()方法
C、如果service已经启动,将先后调用onCreate()和onStart()方法
10.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的(a)
A、<
receiver
NewBroad"
intent-filter>
action
android.provider.action.NewBroad"
/>
/intent-filter>
/receiver>
B、<
C、<
action>
D、<
11.
关于ContenValues类说法正确的是(a)
A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型
B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型
C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String类型
D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型
1、关于android进程,说法不正确的是(
B
A、组件运行所在的进程,是由androidManifest.xml决定,它可以指定该组件运行于哪个进程。
B、背景进程是不为用户所见的Activity,但是还会有可能被用户看到,所以它不能被杀死
C、当急需内存时,android会决定优先关闭那些空闲的进程
D、可视进程一般不会不被系统所杀死
2、Matrix类的作用(
A
A、可以存储缩小或放大比列
B、存储文件中的图片信息
C、存储资源中的图片信息
D、存储内存中的图片信息
3、关于主题的说法,错误的是(
D
A、它是属性集合
B、它可以在程序中来设置
C、它通常用于一个Activity或所有Activity上
D、它可以用于单个TextView上
4、setOnTouchEvent
设置返回值为true
和
false有何区别?
以下说法较准确是(
C
A、没有区别,都能对事件进行监听
B、设置为true时
只能在移动时获得一次监听事件,false则可以多次
C、设置为false是
,在处理一次监听事件后,系统将抛弃该次事件
D、返回true表示这个消息已经被处理结束,后续的handler不再接收到这个消息
简答题
12.
页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度显示工作。
(10分)
public
class
ProgressBarStu
extends
Activity
{
private
ProgressBar
progressBar
=
null;
protected
void
onCreate(BundlesavedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.progressbar);
//从这到下是关键
(ProgressBar)findViewById(R.id.progressBar);
Thread
thread
new
Thread(newRunnable()
run()
int
progressBarMax
=progressBar.getMax();
try
while(progressBarMax!
=progressBar.getProgress())
intstepProgress
progressBarMax/10;
intcurrentprogress
progressBar.getProgress();
progressBar.setProgress(currentprogress+stepProgress);
Thread.sleep(1000);
}
catch(InterruptedException
e)
e.printStackTrace();
});
thread.start();
//关键结束
13.
注册广播有几种方式,这些方式有何优缺点?
请谈谈Android引入广播机制的用意。
静态AndroidManifest.xml注册,2.动态registerReceiver.
静态注册可以伴随着App启动而存在,动态注册只是在代码运行时注册,如果代码没有执行则该广播接收不到消息。
Android引入广播的机制用意是方便组件之前进行数据交互。
14.
什么情况会导致Force
Close
?
如何避免?
能否捕获导致其的异常?
未处理的异常出现时会导致ForceClose,UI界面中Null指针导致ForceClose,当出现异常时,通过Logcat查看日志信息来判断原因。
尽量在可能出现异常的地方加入异常处理。
15.
简要解释一下activity、
intent
、intent
filter、service、Broadcase、BroadcaseReceiver
Activity:
表示一个用户交互界面
Intent:
消息封装对象,用来在Android组件间进行数据通信。
intentFilter:
消息过滤器,用来过滤不响应的消息,保留要处理的消息。
Service:
后台长期运行的Android组件。
Broadcast:
广播,用来发送异步广播。
BroadcaseReceiver:
广播接收器,用来接收响应的广播消息。
16.
简要解释下Handler的工作原理。
andriod提供了Handler
Looper
来满足线程间的通信。
Handler先进先出原则。
Looper类用来管理特定线程内对象之间的消息交换。
1)Looper:
一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。
2)Handler:
你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;
或者接收Looper从Message
Queue取出)所送来的消息。
3)
Message
Queue(消息队列):
用来存放线程放入的消息。
4)线程:
UIthread
通常就是main
thread,而Android启动程序时会替它建立一个MessageQueue。
17.Android应用容易发生ANR错误,请简述几种避免ANR错误的办法。
不要在Service,Activity,BroadCastReceiver中进行长时间耗时、阻塞、等待、睡眠等操作,上述操作通过AsyncTask或Handler机制实现。
18.
Android应用对于内存的大小是有限制的,请简述几种解决办法。
1.可以在
manifest
文件中的
application>
标签中设置
largeHeap
属性的值为
"
true"
时,
当前应用就可以获取到系统分配的最大堆内存.
如果你设置了该值,
可以通过
ActivityManager
的
getLargeMemoryClass()
函数获取最大的堆内存.
2.
修改dalvik代码
修改/system/build.prop配置文件,dalvik.vm.heapsize=32m
在使用大量内存之前调用ActivityManager中的getMemoryClass()来获得当前应用可用内存大小进行检测。
5.
当使用Bitmap时,decode
bitmap
的时候,尽量配置下Options,例如:
inSameSize,Bitmap使用完以后,调用
bitmap.recycle()来释放内存。
6.
如果应用是基于图片的应用,尽量采用LazyLoad和DymanicRecycle
7.
decode
的时候,将decode代码
catch
出来,catch
oom
error,避免程序crash,可以在catch里面做一些释放内存操作
1、描述Android平台体系结构的层次划分,并说明各个层次的作用。
答:
Android
是基于Linux内核的软件平台和操作系统,采用了软件堆层的架构,
共分为4层。
第一层是Linux
内核,提供由操作系统内核管理的底层基础功能;
第二层是中间件层,由函数库和Android运行时构成;
第三层是应用程序框架层,提供了Android平台基本的管理功能和组件重用机制;
第四层是应用程序层,提供了一系列核心应用程序。
2、简述Android系统的四种基本组件Activity、Service、BroadcaseReceiver和ContentProvider的用途。
Activity是android程序的呈现层,显示可视化的用户界面,并接受与用户交互所产生的界面事件,与“窗体”的概念非常相似。
Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动。
Activity在界面上的表现形式一般是全屏窗体,也可以是非全屏悬浮窗体或对话框。
Service一般用于没有用户界面,但需要长时间在后台运行的应用。
例如在播放MP3音乐时,使用service播放MP3音乐,可以在关闭播放器界面的情况下长时间播放MP3音乐,并通过对外公开service的通信接口,控制MP3音乐播放的启动,暂停和停止。
Broadcasereceiver是用来接收并响应广播消息的组件。
大部分广播消息是由系统产生的,例如时区改变,电池电量低或语言选项改变等,但应用程序也可以产生广播消息,例如数据下载完毕等。
Broadcasereceiver不包含任何用户界面,但可以通过启动activity或者notification通知用户接收到重要信息。
Notification能够通过多种方法提示用户,包括闪动背景灯,震动设备,发出声音或者在状态栏上放置一个持久的图标等。
Contentprovider是android系统提供的一种标准的共享数据的机制,应用程序可以通过contentprovider访问其他应用程序的私有数据。
私有数据可以是存储在文件系统中的文件,也可以是SQlite中的数据库。
Android系统内部也提供一些内置的contentprovider,能够为应用程序提供重要的数据信息,例如联系人信息和通话记录等。
3、简述Activity生命周期的四种状态,以及状态之间的变换关系。
Activity生命周期指activity从启动到销毁的过程,在这个过程中,activity一般表现为四种状态,分别是活动状态,暂停状态,停止状态和非活动状态。
1,活动状态,当activity在用户界面中处于最上层,用户完全看不到,能够与用户进行交互,则这个activity处于活动状态。
2,暂停状态,当activity在界面上被部分遮挡,该activity处于暂停状态。
3,停止状态,当activity在界面上能完全不被用户看到,也就是说这个activity被其他activity全部遮挡,则这个activity处于停止状态。
4,非活动状态,活动状态暂停状态和停止状态是activity的主要状态,不在以上三种状态的中activity则处于非活动状态。
Activity启动后处于活动状态,此时的activity位于界面的最上层,是与用户正在进行交互的组件,因此android系统会努力保证处于活动状态activity的资源需求,资源紧张时可终止其他状态的activity;
如果用户启动了新的activity,部分遮挡了当前的activity,或新的activity是半透明的,则当前的activity转换为暂停状态,android系统仅在为处于活动状态的activity释放资源时,才终止处于暂停状态的activity:
如果用户启用了新的activity完全遮挡了当前的activity,则当前的activity转变为停止状态,停止状态的activity将优先被终止;
活动状态的activity被用户关闭后,或暂停状态或停止状态的activity被系统终止后,activity便进入了非活动状态。
5、简述Android系统支持的三种菜单。
(1)选项菜单,是一种经常被使用的Android系统菜单,用户可以通过“菜单键”(MENU
key)打开选项菜单。
(2)子菜单,是能够显示更加详细信息的菜单子项。
(3)快捷菜单,同样采用了动窗体的显示方式,虽然快捷菜单的实现方式与子菜单相同,但两种菜单的启动方式却截然不同。
6、简述Intent过滤器的定义和功能。
Intent过滤器是一种根据intent中的动作,类别和数据等内容,对适合接受该intent的组件进行匹配和筛选的机制。
Intent过滤器还可以匹配数据类型,路径和协议,还包括可以用来确定多个匹配顺序的优先级。
应用程序的activity组件,service组件和broadcastreceiver都可以注册intent过滤器。
这样,这些组件在特定的数据格式上则可以产生相应的动作。
7、简述Service的基本原理和用途;
(1)基本原理:
Service的生命周期从onCreate()开始到onCreate()中完成Service的初始化工作,在onDestroy()中释放所有占用的资源。
活动生命周期从onStart()开始,但没有与之对应的“停止”函数,因此可以近似认为活动生命周期也是以onDestroy()标志
结束的。
(2)用途:
Service非常适用于无需用户干预,且需要长期运行的后台功能;
还可以用于进程间通信(IPC),解决两个不同Android应用程序之间的调用和通信问题。
1.常见的手机操作系统
在移动开发领域,常见的手机操作系统有android、ios以及windows
mobile
2.常见术语
Dalvik虚拟机:
Android应用程序是在Dalvik虚拟机的实例下以进程的形式运行的,Dalvik允许一个设备有效的运行多个虚拟机,虚拟机的执行文件时.dex,被优化为最小内存存放;
需要注意的是Dalvik虚拟机是基于寄存器的
ADT:
developement
Tools,目的是为用户提供一个强大的Android集成开发环境,使用户能够快速创建项目,调试程序以及导出签名的APK
AVD:
Virtual
Device,每个AVD模拟了一套设备来运行Android平台,这个平台只要有自己的内核、系统图像和数据分区,还可以有自己的SD卡,用户数据以及外观现实
3.Android应用程序的四大组件以及每一个组件的作用
(1)Activities:
一个Activity(活动)表示一个用户界面,可以和用户进行交互;
(2)Services:
Service(服务)是运行在后台的组件,一般用于执行需要长时间运行的操作,不提供用户界面,也不直接与用户进行交互,且比Activity具有更高的优先级;
(3)Content
Provider:
内容提供器管理应用程序共享的数据,程序员可以将数据存储在文件系统、SQLite数据库、网络或任何其他应用程序可以访问到的位置;
(4)Broadcast
Receives:
广播接受者是一个负责全系统广播通知的组件。
4.Android生命周期的调用的每一个方法及及作用
onCreate(
):
在Activity第一次被创建的时候调用,可在此处做初始化设置——创建视图、绑定数据至列表等
onStart(
当Activity正要变得为哦难怪乎所见时被调用,若Activity转向前台接着调用onResume(),若转向后台,则调用onStop(
);
onRestart(
在Activity停止后,再次启动前被调用
onResume(
在Activity与用户开始进行交互之前被调用,此时Activity处于栈顶,用户可见
onPause(
当系统要启动另一个Activity或弹出对话框时调用
onStop(
当Activity不再为用户可见时,调用
onDestroy(
当Activity销毁前被调用
5.Android应用程序界面之间的跳转
在一个android应用程序中有多个屏幕,即多个activity,并且在这些Activity之间进行切换是通过Intent机制来实现的。
在使用Intent进行Activity之间的跳转时,有三种方式
(1)不带参数的跳转:
Intent
Intent();
intent.setClass(Activity1.this,Activity2.class);
startActivity(intent);
(2)带参数的跳转
Intent(
Bundle
bundle
Bundle(
bundle.putString(“name”,”kite”);
intent.putExtras(bundle);
(3)带返回值的跳转
in