android 测试题 答案

android 测试题 答案
android 测试题 答案

第一天:

1,

对于如下的一些映射关系,当请求URL为”/xxx/yyy/a.do”时,哪个Servlet会响应()Servlet1 映射到 /abc/*

Servlet2 映射到 /*

Servlet3 映射到 /abc

Servlet4映射到*.do

(10分)

A、Servlet1

B、Servlet2

C、Servlet3

D、Servlet4

参考答案:B

答案说明:url-pattern匹配规则:

①完全匹配:以“/”开头,以字母(非“*”)结束

如:/test/list.do

②目录匹配:以“/”开头且以“/*”结尾

如:/test/*

/*

③扩展名匹配:以“*.”开头,以扩展名结束

如:*.do

④“/”用来表明对应的Servlet为应用默认的Servlet。在这种情况下Servlet路径是请求的URI去掉上下文路径并且路径信息为null。

2、

下列选项中,哪个方法可以准确的获取请求页面的一个文本框的输入(文本框的名称为name) ()。(10分)

A、request.getParamter(name)

B、request.getParamter(“name”)

C、request.getParamterValues(name)

D、request.getParamt erValues(“name”)

参考答案:B

答案说明:request.getParameter("name") 根据name获取value值

request.getParameterNames("name") 根据name获取一组值,如多选框

3、

在web.xml中下面哪一个标签标示servlet的URL映射()(10分)

A、mapping

B、servlet-url

C、url-mapping

D、servlet-mapping

参考答案:D

答案说明:

HelloServlet

/hello

多选题共2题满分:20分

4、

下列选项中,说法正确的是()。(10分)

A、客户端每次请求都会创建一个request 对和response对象并且把这2个对象传递到doGet方法和doPost方法中

B、在浏览器的地址栏输入地址,点击回车,这个过程称为一次请求

C、HttpServletResponse,是一个接口,父接口是Servlet

D、服务器端根据客户端的请求,返回数据到浏览器中进行显示,这个过程称为一次响应参考答案:A,B,D

答案说明:C错误原因:HttpServletResponse,是一个接口,父接口是ServletResponse

5、

下列选项中,()是http相应包含的组成部分。(10分)

A、响应体

B、响应头

C、响应尾

D、响应行

参考答案:A,B,D

答案说明:HttpServletResponse,是一个接口,父接口是ServletResponse,代表响应对象。http的响应包含三部分组成:

第一部分:响应行 第二部分:响应头 第三部分:响应体

判断题共0题满分:0分

填空题共1题满分:10分

6、

_____是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。(10分)

参考答案:Servlet

答案说明:Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

简答题共1题满分:20分

7、

请简述HttpServletRequest实例的getContextPath() 方法,getRequestURL()方法和getParameter("name") 方法的作用。(20分)

参考答案:request.getContextPath() 获取根路径;

request.getRequestURL(); 获取请求的url;

request.getParameter("name") 根据name获取value值;

答案说明:request对象是请求对象。请求一次就创建一个request对象,并且存储了请求的信息。所以在表单提交中,我们可以通过request对象获取用户提交的所有信息。HttpServletRequest类中的常用方法:

request.getContextPath() 获取根路径。

request.getParameter("name") 根据name获取value值

request.getParameterNames("name") 根据name获取一组值,如多选框

request.getRequestURL(); 获取请求的url

request.getRequestDispatcher(" 路径 ").forward(request,response) 转发是一次请求request.getCookie();获取请求中的cookie

request.getSession(true)获取session。默认参数为true表示如果没有获取到,则重新创建并返回;false如果没有获取到,返回null

代码题共1题满分:20分

8、

写一个HelloServlet ,实现向页面输出内容hi czbk。(20分)

参考答案:JavaWeb101.txt 下载

答案说明:实现Servlet

(1)实现Servlet接口

如果实现接口,需要把接口里面的方法都实现。

(2)继承GenericServlet, HttpServlet类

如果继承类,不需要把类中的方法都实现。

(3)需要web服务器知道java程序不是一个普通的java程序,而是一个servlet

通过配置进行操作,在web项目中,web.xml里面进行配置。

[1]定义一个类继承httpServlet

public class HelloServlet extends HttpServlet {

//处理get请求

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

PrintWriter writer = resp.getWriter();//向浏览器的输出流

writer.println("");

writer.println("");

writer.println("hi czbk");

writer.println("");

writer.println("");

}

//处理post请求

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

doGet(req, resp);

}

}

[2]重写2个方法doGet,doPost

[3]在在web.xml中配置

HelloServlet

cn.itcast.servlet.ServletDemo1

HelloServlet

/hello

第二天:

1、

关于ANR描述错误的是()。(10分)

A、ANR 全称是Application Not Responding

B、出现ANR 异常不会影响用户使用

C、在主线程中执行了耗时的操作会引起ANR

D、应用超过5秒钟不响应用户操作会出现anr

参考答案:B

答案说明:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。2、

关于handler消息分发机制,下列()方法可以延时发送消息。(10分)

A、sendEmpty(..)

B、sendEmptyMessage(..)

C、sendMessageDelayed(..)

D、sendMessage(..)

参考答案:C

答案说明:我们利用Handler的sendMessageDelayed(msg, secs*1000),可以要求secs秒后,将信息放置在队列中,排队处理,很简单就能实现。

3、

关于Android中消息机制说法正确的是()。(10分)

A、Handler只能用来发送消息

B、Handler是用来发送消息和处理消息的

C、MessageQueue是用来收集消息并主动发送消息

D、Looper是主消息的循环器.Looper是由handler创建的

参考答案:B

答案说明:Handler顾名思义就是处理者的意思,它主要用于发送消息和处理消息。一般使用Handelr对象的sendMessage()方法发送消息,发出的消息经过一系列的辗转处理后,最终会传递到Handler对象的handlerMessage()方法中.

多选题共2题满分:20分

4、

下列选项中说法正确的是()。(10分)

A、避免ANR,可以把耗时操作放到子线程

B、ANR是Application Not Response 应用无响应

C、只有在主线程(UI线程)才可以更新UI

D、消息机制可以用来处理这种更新UI的情况

参考答案:A,B,C,D

答案说明:(1)ANR Application Not Response 应用无响应。主线程(UI线程)。

(2)如果在主线程中进行了耗时的操作(比如连接网络,拷贝大数据)Thread.sleep(); (3)避免ANR,可以把耗时操作放到子线程。

(4)在4.0之后谷歌强制要求连接网络不能在主线程中进行访问。

09-26 01:49:03.818: W/System.err(1638): https://www.360docs.net/doc/8f14727576.html,workOnMainThreadException

(5)只有在主线程(UI线程)才可以更新UI

09-26 01:51:50.050: W/System.err(1708): android.view.ViewRootImpl$CalledFromWrongThreadE xception: Only the original thread that created a view hierarchy can touch its views.

(6)消息机制可以用来处理这种更新UI的情况。

5、

由于子线程不能更新UI代码,我们可以使用下列哪种方式()解决这个问题。(10分)

A、在子线程中使用setImageView(..)设置图片

B、调用runOnUiThread(.. )方法中更新ui

C、在子线程中用handler发送message给主线程,然后在主线程中更新ui

D、Thread中直接更新ui

参考答案:B,C

答案说明:runOnUiThread(),顾名思义就是运行在UI线程,也就是主线程。

1. 如果仅仅就是更新UI,那么我们可以用runOnUiThread(),当中的代码都会在主线程中执行。

2. 当我们需要传递参数的时候,这时候就需要使用handler来实现

判断题共0题满分:0分

填空题共1题满分:10分

6、

_____ 主要用于存放所有通过Handler发送的消息。

(10分)

参考答案:MessageQueue

答案说明:1. Message

Message是在线程之间传递的消息,它可以在内部携带少量的信息what字段,用于在不同线程之间交换数据。除此之外还可以使用arg1和arg2字段来携带一些整型数据,使用obj 字段携带一个Object对象。

2. Handler

Handler顾名思义也就是处理者的意思,它主要是用于发送和处理消息的。发送消息一般是使用Handler的sendMessage()方法,而发出的消息经过一系列地辗转处理后,最终会传递到Handler的handleMessage()方法中。

3. MessageQueue

MessageQueue是消息队列的意思,它主要用于存放所有通过Handler发送的消息。这部分消息会一直存在于消息队列中,等待被处理。每个线程中只会有一个MessageQueue对象。

4. Looper

Looper是每个线程中的MessageQueue的管家,调用Looper的loop()方法后,就会进入到一个无限循环当中,然后每当发现MessageQueue中存在一条消息,就会将它取出,并传递到Handler的handleMessage()方法中。每个线程中也只会有一个Looper对象。

简答题共1题满分:20分

7、

简单介绍一下Handler使用步骤.(20分)

参考答案:1 在主线程创建Handler对象

Private Handler handler = new Handler(){

}

2 重写handlemessage方法

3 拿着主线程创建的Handler发送一条消息

handler.sendMessage();

4 重写的handlemessage方法就会接收到我们发送的消息.

答案说明:Android4.0以后不能在UI线程访问网络,而子线程也不能更新UI界面。为了根据下载进度实时更新UI界面,就需要用到Handler消息机制来实现线程间的通信,一般我们在主线程创建Handler对象.然后开启一个子线程去访问网络处理耗时的任务,然后通过主线程创建的Handler发送消息,消息就被加入到了消息队列MessageQueue中,系统里有一MainLooper(主消息的循环器),不断的监视消息队列,一旦发现消息队列里有消息,就把消息给取出来交给Handler,我们重写Handler的handleMessage()方法,在这个方法里面去更新ui.

代码题共1题满分:20分

8、

编写一个图片查看器的案例,访问指定的url地址,并将获取到的图片更新ui界面。(请使用除handler以外的方式)。(20分)

答案说明:子线程不能更新ui,所以通过runOnUiThread在主线程中更新ui.

Xml布局文件:

xmlns:tools="https://www.360docs.net/doc/8f14727576.html,/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainActivity">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="click"

android:text="查看" />

android:id="@+id/iv"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

Java代码中:

public class MainActivity extends Activity {

private ImageView iv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.360docs.net/doc/8f14727576.html,yout.activity_main);

// [1]找到我们关心的控件

iv = (ImageView) findViewById(R.id.iv);

}

// [2]点击按钮进行查看指定路径的源码

public void click(View v) {

new Thread() {

public void run() {

String path = "https://https://www.360docs.net/doc/8f14727576.html,/img/270_dbb92.png";

try {

URL url = new URL(path);

HttpURLConnection conn = (HttpURLConnection)

url.openConnection();

conn.setRequestMethod("GET");

conn.setConnectTimeout(5000);

int code = conn.getResponseCode();

if (code == 200) {

InputStream inputStream = conn.getInputStream();

final Bitmap bitmap =

BitmapFactory.decodeStream(inputStream);

runOnUiThread(new Runnable() {

public void run() {

iv.setImageBitmap(cacheBitmap);

}

});

}

} catch (Exception e) {

e.printStackTrace();

}

};

}.start();

}

第三天:

1,当前Activity被其他Activity覆盖或者锁屏,系统会调用()生命周期方法,暂停当前Activity的执行。(10分)

A、onDestroy()

B、onStop()

C、onPasue()

D、以上都会调用

参考答案:C

答案说明:1. 启动Activity:系统会先调用onCreate()方法,然后调用onStart()方法,最后调用onResume()方法,Activity进入运行状态。

2. 当前Activity被其他Activity覆盖或者锁屏:系统会调用onPasue()方法,暂停当前Activity的执行。

3. 当前Activity由覆盖恢复到前台或者被解锁屏:系统会调用onResume()方法,再次进入运行状态。

4. 当前Activity转到新的Activity界面或者Home键回到主屏,自居后台:系统会调用onPasue()方法,然后调用onStop()方法,进入停滞状态。

5. 用户退回到此Activity:系统会调用onRestart()方法,然后调用onStart()方法,最后调用onResume()方法,再次进入运行状态。

6. 当前Activity处于被覆盖状态或者后台不可见状态:有的时候系统内存不足,会杀死该Activity,而后用户退回到该Activity时:再次调用onCreate(),onStart(),onResume()方法,进入运行状态。

7. 用户退出该Activity:系统会调用onPause()方法,然后onStop()方法,最后onDestroy()方法,结束该Activity。

2、

Intent中如果既要设置类型又要设置数据,需要使用()方法。(10分)

A、setData(..)

B、setType(..)

C、setDataAndType(..)

D、setTypeAndData(..)

参考答案:C

答案说明:Intent.setData(data)和intent.setType(type)注意这两个方法会互相清除,意思就是:如果先设置setData(data)后设置setType(type),那么后设置的setType(type)会把前面setData(data)设置的内容清除掉,而且会报错,反之一样,所以如果既要设置类型与数据,那么使用setDataAndType(data,type)这个方法。

3、

使用()管理器来完成发送短信的功能。(10分)

A、ActivityManager

B、WifiManager

C、SmsManager

D、ConnectivityManager

参考答案:C

答案说明:ActivityManager 是与系统中所有运行着的Activity交互提供了接口,主要的接口围绕着运行中的进程信息,任务信息,服务信息等。

WifiManager 类似获得wifi链接名字,判断是否链接,开关等一些和无线相关;SmsManager 管理短信操作,如发送数据,文本和PDU短信;

ConnectivityManager 主要管理网络连接相关操作;

多选题共2题满分:20分

4、

intent传递数据时可以传递()类型的数据。(10分)

A、Serializable

B、charsequence

C、Parcelable

D、Bundle

参考答案:A,B,C,D

答案说明:第一类:简单或基本数据类型;

第二类:传递一个Bundle;

第三类:传递Serializable对象;

第四类:Parcelable对象;

第五类:Intent return this;

5、

下列选项中()属于Activity的生命周期方法。(10分)

A、onCreate()

B、onStart()

C、onCreateView()

D、onRestart()

参考答案:A,B,D

答案说明:生命周期方法调用时间

onCreate() 当Activity第一次创建的时候调用

onDestory() 当Activity销毁的时候调用

onStart() 当Activity变成可见的时候调用

onStop() 当Activity不可见的时候调用

onResume() 当Activity可以和用户交互的时候调用

onPause() 当Activity不可和用户交互的时候调用

onRestart() 当Activity停止了,但是没有销毁,从停止到启动时调用

判断题共0题满分:0分

填空题共1题满分:10分

6、

首次启动Activity时,系统会先后调用_____生命周期方法,之后Activity进入运行状态。(10分)

参考答案:onCreate()->onStart()->onResume()

答案说明:1.启动Activity:系统会先调用onCreate()方法,然后调用onStart()方法,最后调用onResume()方法,Activity进入运行状态。

2.当前Activity被其他Activity覆盖或者锁屏:系统会调用onPasue()方法,暂停当前Activity的执行。

3.当前Activity由覆盖恢复到前台或者被解锁屏:系统会调用onResume()方法,再次进入运行状态。

4.当前Activity转到新的Activity界面或者Home键回到主屏,自居后台:系统会调用onPasue()方法,然后调用onStop()方法,进入停滞状态。

5.用户退回到此Activity:系统会调用onRestart()方法,然后调用onStart()方法,最后调用onResume()方法,再次进入运行状态。

6.当前Activity处于被覆盖状态或者后台不可见状态,有的时候系统内存不足,会杀死该Activity,而后用户退回到该Activity时:再次调用onCreate(),onStart(),onResume()方法,进入运行状态。

7. 用户退出该Activity:系统会调用onPause()方法,然后onStop()方法,最后onDestroy()方法,结束该Activity。

简答题共1题满分:20分

7、

请简单谈谈你对Activity四种启动模式的理解。(20分)

参考答案:Activity的启动模式

在AndroidManifest.xml中,可以配置每个activity的启动模式:例如:

android:launchMode="standard"

1. standard 标准模式

不管有没有已存在的实例,都生成新的实例。每次调用startActivity()启动Activity时都会创建一个新的Activity放在栈顶,每次返回都会销毁实例并出栈,可以重复创建。

2. singletop 单一顶部模式

如果任务栈的栈顶存在这个要开启的activity,不会重新创建新的activity,而是复用已存在的activity。保证栈顶如果存在,则不会重复创建,但如果不在栈顶,那么还是会创建新的实例。

3. singletask 单一任务模式

是一个比较严格的模式,在当前任务栈里面只能有一个实例存在,当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,并且把这个activity上面的所有的别的activity都清空,复用这个已经存在的activity。

4. singleInstance

这种启动模式比较特殊,它会启用一个新的任务栈,activity会运行在自己的任务栈里,这个任务栈里面只有一个实例存在并且保证不再有其他Activity实例进入。在整个手机操作系统里面只有一个实例存在。

答案说明:Singletop 应用场景:浏览器的书签

Singletask 应用场景:BrowserActivity浏览器界面,播放器的播放Activity。

如果一个activity的创建需要占用大量的系统资源(cpu,内存)一般配置这个activity 为 singletask的启动模式。webkit内核(c) 初始化需要大量内存如js解析引擎、html渲染引擎、http解析、下载…如果使用singletask模式,可以减少内存开销,cpu占用。SingleInstance 应用场景:来电页面InCallScreenActivity。

代码题共1题满分:20分

8、

打开指定包名,类名的Activity。(包名:com.itcast.intent.NextActivity 类名:NextActivity)(20分)

答案说明:Intent意图:显示意图和隐式意图。

显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。

隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。// trim()方法删除字符串开始和结束位置的空格

Intent intent = new Intent();

intent1.setClassName("com.itcast.intent",

"com.itcast.intent.NextActivity");

//开启打电话意图

startActivity(intent);

第四天:

1、在代码中获取注册的广播事件方法是().(10分)

A、getAction()

B、getActionCall()

C、getMethod()

D、getOutCall()

参考答案:A

答案说明:getAction()方法是获取广播事件的方法.

2、

在广播接收者中,setResultData()方法的作用是()。[标明前提,](10分)

A、修改广播接收者的数据

B、修改数据并往下传递

C、设置广播接收者的数据

D、以上都不对

参考答案:A

答案说明:有序广播可以通过setResultData()来修改广播的数据

3、

广播接收者需要在清单文件配置()节点。(10分)

A、receiver

B、broadReceiver

C、service

D、contentProvider

参考答案:A

答案说明:广播接收者的配置需要在清单文件里配receiver节点.

多选题共2题满分:20分

4、

关于广播接收者说法正确的是()(10分)

A、Android中定义广播接收者要继承BroadCastReceiver

B、Android中定义广播接收者的目的之一是方便我们开发者进行开发

C、Android系统中内置了很多系统级别的广播

D、Android中定义广播这个组件意义不是很大

参考答案:A,B,C

答案说明:Android中定义广播接收者要继承BroadCastReceiver,Android系统中内置了很多系统级别的广播比如外拨电话,接收到短信,sd卡卸载等等,系统定义了这么多广播事件方便我们开发者进行开发,意义很大.

5、

关于有序广播和无序广播说法错误的是( ).(10分)

A、Android中广播分有序广播和无序广播

B、无序广播是按照一定的优先级进行接收

C、无序广播可以被拦截,可以被修改数据

D、有序广播按照一定的优先级进行发送

参考答案:B,C

答案说明:Android中广播分有序广播和无序广播有序广播按照一定的优先级发送,无序广播不可以被拦截数据不可以被修改

判断题共0题满分:0分

填空题共1题满分:10分

6、

调用_____方法动态的注册广播接收者.

(10分)

参考答案:registerReceiver

答案说明:广播接收者可以在清单文件中注册也可以通过代码的方式进行注册.

简答题共1题满分:20分

7、

请简要说明广播接受者在Android4.0以后做了哪些安全考虑?在Android4.0以后如何使广播接受者不生效?(20分)

参考答案:安卓4.0版本之后为了安全考虑,要求应用程序必须要有界面,必须被用户运行过一次,广播接受者才会生效。

安卓4.0版本的强行停止相当于冻结一个应用,一旦应用程序被用户强行停止了,广播接受者就不会生效了,直到用户手动打开这个应用程序为止。

答案说明:安卓4.0版本之后为了安全考虑,要求应用程序必须要有界面,必须被用户运行过一次,广播接受者才会生效。

安卓4.0版本的强行停止相当于冻结一个应用,一旦应用程序被用户强行停止了,广播接受者就不会生效了,直到用户手动打开这个应用程序为止。

安卓4.0以前的版本没有这样的安全考虑。

代码题共1题满分:20分

8、

请编写一个程序,要求定义一个广播接收者,用来接收开机的广播。(20分)

答案说明:android.intent.action.BOOT_COMPLETED是开机的广播的Action,注意需要加入权限:

1、定义广播接受者用来接收开机的广播:

public class BootReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

Intent intent1 = new Intent(context,MainActivity.class);

Intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent1);

}

}

2、清单文件注册

3、加入权限

android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

第五天:

1,以下关于服务的生命周期说法正确的是()(10分)

A、服务的生命周期和Activity一样

B、服务的创建会执行onCreate()

C、启动时 onCreate()–>onStart()->onResume()

D、通过startService方式开启服务,首先会调用onCreate 和 onStart

方法

参考答案:D

答案说明:通过startService方式开启服务首先会调用onCreate()方法然后调用onSta rt( )方法

2、如果一个进程含有一个service和一个可视activity,那么这个进程是什么进程()(10分)

A、前台进程

B、可见进程

C、后台进程

D、空进程

参考答案:B

答案说明:Android 对进程的重要性评级的时候,选取它最高的级别。如果一个进程含有一个service和一个可视activity,进程将被归入一个可视进程而不是service进程。3、

通过bindService()绑定服务,需要传入一个ServiceConnection类的对象,需要实现这个类中的哪两个方法()(10分)

A、onConnected(...)和onDisconnected(...)

B、onServiceConnected(...)和onServiceDisconnected(...)

C、onStartConnected(...)和onSartDisconnected(...)

D、onCreate(...)和onDisconnected(...)

参考答案:B

答案说明:ServiceConnection类是用来监听服务的状态,需要实现其中的onServiceConn ected()方法和onServiceDisconnected()方法。

多选题共2题满分:20分

4、

关于AIDL描述正确的是()(10分)

A、AIDL全称是Android interface definition Language

B、AIDL出现目的是解决进程间通信

C、AIDL定义接口的源代码必须以.aidl结尾

D、AIDL语言就是java语言的演变

参考答案:A,B,C

答案说明:在Android系统中,各个应用程序都运行在自己的进程中,进程之间一般无法直接进行通信,如果想要完成不同进程之间的通信,就需要使用远程服务通信。远程服务通信是通过AIDL(Android Interface Definition Language)实现的,它是一种接口定义语言.它不是由java演变的

5、android 通过startService 的方式开启服务,以下说法错误的是()(10分)

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

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

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

D、如果 service 已经启动,只会执行 onStart()方法,不在执行

onCreate()方法

参考答案:B,C

答案说明:通过startService方式开启服务,当第一次启动的时候先后调用onCreate()和onStart()方法,如果service 已经启动,只会执行onStart()方法,不在执行o nCreate()方法

判断题共0题满分:0分

填空题共1题满分:10分

6、

通过bindService方式开启的服务,_____方法可以进行解绑服务.

(10分)

参考答案:unbindService()

答案说明:通过bindService方式开启服务特点是服务和调用者之间不求同时生,但求同时死,所以调用者退出的时候需要解绑服务,解绑服务调用unbindService().

简答题共1题满分:20分

7、

简单介绍一下Android中如何创建服务(20分)

参考答案:(1)定义一个类继承Service类

在清单文件里面注册Service

答案说明:服务(Service)是Android中的四大组件之一,它能够长期在后台运行且不提供用户界面。

服务的创建定义一个类继承Service.并且四大组件都需要在清单文件里注册.代码题共1题满分:20分

8、

请编写一段程序,开启服务,并调用服务中的方法。(20分)

参考答案:u.zip 下载

答案说明:调用Service中的方法需要通过IBinder中间人对象,调用bindService()方法需要传入一个ServiceConnection对象,这个类中有一个onServiceConnected()方法,当绑定成功后调用,并且Service中onBind()方法中返回的IBinder对象就被传递到onServ iceConnected()方法中,在这个方法中可以通过中间人对象调用服务中的方法。

1、创建Service,并在服务中定义方法

public class TestDemoService extends Service {

@Override

public IBinder onBind(Intent intent) {

return new MyBinder();

}

@Override

public void onCreate() {

super.onCreate();

}

@Override

public void onDestroy() {

super.onDestroy();

}

public void serviceMethod(){

Toast.makeText(this, "我是服务里面的方法", 1).show();

}

}

2、定义接口:

public interface Iservice {

public void serviceMethod();

}

3、创建Binder类,实现接口

private class Mybinder extends Binder implements IService {

@Override

public void serviceMethod() {

}

}

4、定义ServiceConnection类,在onServiceConnected中调用服务方法

private class MyConn implements ServiceConnection{

@Override

public void onServiceConnected(ComponentName name, IBinder service) {

MyBinder binder = (MyBinder) service;

binder.callServiceMethod();

}

@Override

public void onServiceDisconnected(ComponentName name) {

}

}

5、点击按钮,开启服务

public void click(View v){

bindService(new Intent(this,TestDemoService.class), new MyConn(),

BIND_AUTO_CREATE); }

第六天:

1,短信内容提供者的主机名是()(10分)

A、sms

B、com.android.sms

C、smsProvider

D、com.android.smsProvider

参考答案:A

答案说明:短信内容提供者的主机名是sms

2、如果要调用现成的ContentProvider,获得如下()对象才能调用其方法进行增删查改。(10分)

A、CursorLoader

B、ContentResolver

C、Cursor

D、ContentProvider

参考答案:B

答案说明:内容提供者暴露出来的数据,都是通过内容解析者来进行增删改查

3、自定义内容观察者时,继承的类是()(10分)

A、BaseObserver

B、ContentObserver

C、BasicObserver

D、DefaultObserver

参考答案:B

答案说明:自定义内容观察者时,继承的类是ContentObserver

多选题共2题满分:20分

4、下列关于内容提供者的描述,正确的是()(10分)

A、提供的Uri必须符合规范

B、可以提供本应用所有数据供别人访问

C、必须在清单文件注册

D、authorities属性必须和包名一致

参考答案:A,B,C

答案说明:authorities一般和包名一致,不是必须的。

5、

在下列选项中,关于内容观察者说法正确的是()(10分)

A、内容观察者不是Android中的四大组件

B、内容观察是四大组件之一

C、内容观察者原理和java中的观察者模式一模一样

D、内容观察者原理是通过注册Uri的形式来观察数据的变化

参考答案:A,D

答案说明:内容观察者不是四大组件,内容观察者原理是通过注册Uri的方式来观察数据的变化。

判断题共0题满分:0分

填空题共1题满分:10分

6、

Android中通过内容提供者来读取联系人信息,_____表用来保存联系人信息的。

(10分)

参考答案:data

答案说明:Android中读取联系人信息有三张关键的表1 data表用来存储联系人信息的表,2 raw_contacts 表用来存储一共有多少个联系人. 3 mimetype表用来区分联系人信息的表

简答题共1题满分:20分

7、

请简要说明一下内容观察者的原理(20分)

参考答案:内容观察者(ContentObserver)是通过观察指定Uri所代表的数据来观察指定的数据发生变化的

答案说明:内容观察者(ContentObserver)是用来观察指定Uri所代表的数据。当Conte ntObserver观察到指定Uri代表的数据发生变化时,就会触发ContentObserver的onChan ge()方法。此时在onChange()方法里使用ContentResovler可以查询到变化的数据

代码题共1题满分:20分

8、

请编写一段程序,实现短信备份的功能,并将短信备份到sd卡上。(20分)

参考答案:6院校出题2.txt 下载

答案说明:当点击备份短信的按钮把手机里真实的短信内容以xml的方式备份到sd上.

1 创建一个Android应用MainActivity 对应的布局文件主要代码

xmlns:tools="https://www.360docs.net/doc/8f14727576.html,/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

android:onClick="click"

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="35dp"

android:text="备份短信" />

2 mainActivity主要实现逻辑如下

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.360docs.net/doc/8f14727576.html,yout.activity_main);

}

/**

* 点击按钮把手机里的短信信息给备份起来

* @param v

*/

public void click(View v){

//1 把手机里短信信息给查询出来因为短信的内容已经通过内容提供者给暴露出来了所以我们用内容解析者去查

//2 初始化xml 序列化器

XmlSerializer serializer = Xml.newSerializer();

try {

File file = new File(Environment.getExternalStorageDirectory().getPath(),"smsbackup.xml");

FileOutputStream fos = new FileOutputStream(file);

//3 初始化序列化器参数

serializer.setOutput(fos, "utf-8");

//4 开始写xml

serializer.startDocument("utf-8", true);

//5开始写xml 的根节点smss

serializer.startTag(null, "smss");

Uri uri = Uri.parse("content://sms");

Cursor cursor = getContentResolver().query(uri, new String[]{"address","date","body"}, null, null, null);

while(cursor.moveToNext()){

String address = cursor.getString(0);

String date = cursor.getString(1);

String body = cursor.getString(2);

//6写sms address body date

serializer.startTag(null, "sms");

//7 写address节点

serializer.startTag(null, "address");

serializer.text(address);

serializer.endTag(null, "address");

//7 写date节点

serializer.startTag(null, "date");

serializer.text(date);

serializer.endTag(null, "date");

//7 写body节点

serializer.startTag(null, "body");

serializer.text(body);

serializer.endTag(null, "body");

serializer.endTag(null, "sms");

}

// smms结束

serializer.endTag(null, "smss");

serializer.endDocument();

Toast.makeText(getApplicationContext(), "保存成功", 1).show();

} catch (Exception e) {

e.printStackTrace();

}

}

}

3 清单文件代码如下:

package="com.itheima.smsbackup"

android:versionCode="1"

android:versionName="1.0">

android:minSdkVersion="8"

android:targetSdkVersion="17" />

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme">

android:name="com.itheima.smsbackup.MainActivity"

android:label="@string/app_name">

Android工程师笔试题及答案(汇编)

Android工程师面试题 一、基础(79分) 1. String s = new String("xyz");创建了几个String Object? ( )3分 A、1个 B、2个 C、3个 D、4个 2. Math.round(11.5)和Math.round(-11.5)分别等于多少?()2分 A、11和-11 B、12和-11 C、11和-12 D、12和-12 3.以下错误的说法有:( )2分 A、只要设计合理,当出现error这样的情况时,程序完全可以自动处理 B、exception 表示一种设计或实现问题 C、Set和Map都继承自Collection接口 D、接口可以继承接口 E、抽象类可以继承没有构造函数的实体类 4. 以下哪种类型不能作为switch(expr1)表达式的expr1?( )3分 A、int B、long C、char D、byte 5. 有关ArrayList和Vector的说法,那些是错误的?( )3分 A、Vector是线程安全的 B、ArrayList是线程序不安全的 C、当需要增长时,Vector默认增长为原来一培 D、当需要增长时, ArrayList默认增长为原来一培 6. 以下说法那些是错误的?()3分 A、一个char型变量可以存储一个中文汉字 B、String是最基本的数据类型 C、Integer的缺省值是0 D、String类提供了数值不可改变的字符串 7.请指出以下代码的执行结果()5分 class A{ static{ System.out.print("X"); } public A(){ System.out.print("2"); } } class B extends A{ static{ System.out.print("a"); } public B(){ System.out.print("b"); } } public class Hello{ public static void main(String[] ars){

Android期末考试复习试卷(仅供参考)

一、选择题(20分,每小题2分) 1、下列不是手机操作系统的是( D )。 A Android B Window Mobile C Apple IPhone IOS D Windows Vista 2、下列选项哪个不是 Activity 启动的方法(B ) A startActivity B goToActivity C startActivityForResult D startActivityFromChild 3、下列哪个不是 Activity 的生命周期方法之一(B ) A onCreate B startActivity C onStart D onResume 4、下列哪个可做 Android 数据存储(A ) A SQlite B M ySql C Oracle D DB2 5、下列哪个可做EditText编辑框的提示信息( D ) A android:inputType B android:text C android:digits D android:hint 6、Math.ceil(99.1) 的结果是(B ) A 99 B 100 C 99.1 D 99.0 7、android 中下列属于Intent的作用的是(C) A实现应用程序间的数据共享 B是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D处理一个应用程序整体性的工作 8、关于 res/raw 目录说确的是A A这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B这里的文件是原封不动的存储到设备上会转换为二进制的格式 C这里的文件最终以二进制的格式存储到指定的包中 D这里的文件最终不会以二进制的格式存储到指定的包中 9、Math.round(11.5)等于多少(). Math.round(-11.5)等于多少( C) A 11 ,-11 B 11 ,-12 C 12 ,-11 D 12 ,-12 10、我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(A ) A onDestroy() B onClear() C onFinish() D onStop() 二、填空题(10 分,共10 题,每空1 分) 1、为了使 android 适应不同分辨率机型,布局时字体单位应用( sp ),像素单位应用( sp )和(dip ) 2、定义 LinearLayout 水平方向布局时至少设置的三个属性: ( android:orientation), (android:layout width)和(android:layout height)

(完整word版)AndroidAPP开发期末复习资料

1.短信的内容提供者是() A. ContactProvider B. MessageProvider C. SmsProvider D. TelephonyProvider 2.以下是Android中用于xml解析方式的是()。 A. SAX B. DOM C. XmlPullParser D. Juint 3.下列选项中,关于Bitmap类描述正确的是()。 A. Bitmap类表示画 B. Bitmap类代表画布 C. Bitmap类是最常用的绘图类 D. Bitmap类表示位图工厂 4.Dalvik虚拟机是基于()的架构。 A.栈 B.堆 C. 寄存器 D. 存储器 5.在Android UI开发中,常见的刮刮卡是通过()实现的。 A.FrameLayout B.LinearLayout C.RelativeLayout D.TableLayout 6.注册一个短信到来的广播事件需要在清单文件配置什么权限()。 A. B. C. D. 7.关于服务的创建说法错误的是()。 A. Android中创建服务需要继承Service类 B. Android 中的服务需要在清单文件配置。

Android期末测试题(附带答案)

一、选择题 1、下列哪项不是Android四大组件( C ) A.Seivice B. Activity C. Handler D. Content Provider 2、Android是如何组织Activity的( B ) A.以堆的方式组织Activity B. 以栈的方式组织Activity C. 以树形方式组织Activity D. 以链式方式组织Activity 3、关于线程说法不正确的是( B ) A. 在 android 中,我们可以在主线程中,创建一个新的线程 B. 在创建的新线程中,它可以操作 UI 组件 C. 新线程可以和 Handler 共同使用 D. 创建的 Handler 对象,它隶属于创建它的线程 4、下列关于内存回收的说明,哪个是正确的(B ) A.程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 5、设置xml布局文件中的字体大小一般用什么单位( c ) A.dp B. px C. sp D. pt 6、关于service生命周期的onCreate()和onStart()说法正确的是( D ) A.当第一次启动的时候先后调用onCreate()和onStart()方法 B.当第一次启动的时候只会调用onCreate()方法 C.如果service已经启动,将先后调用onCreate()和onStart()方法 D.如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法 7、Android项目工程下面的assets目录,以下说法正确的是( A ) A.这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B.主要放置多媒体等数据文件 C.主要放置图片文件 D.放置字符串,颜色,数组等常量数据 8、在android中使用SQLiteOpenHelper这个辅助类,生成一个可操作的数据库,调用的方法是( A )A.getReadableDatabase() B.getDatabase() C.getEnbleDatabase() D.createDateBase() 9、Activity从可见状态变为半透明遮盖状态时,生命周期中哪个方法被调用( B )

android笔试题及答案

单选题 中可以用来处理中警示,确认等对话框地是() .假设目录下有文件结构,用()方法将该网页加载至 时,需传入地参数是() . . . . .下列不属于补间动画相关类地是() 中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状态码表示请求完成地是() .关于说法错误地是:() 里可以通过设定转换时候地透明位 .在使用一个之前,不一定要调用方法 是设置资源被读入到这个地时候动画效果 是资源文件从这个里消失地时候要实现地动画效果 .建立蓝牙连接时通过方法来获取对象 () (); (); . () .关于地说法不正确地是( ) .它实现不同进程间通信地一种机制 .它避免了在新线程中刷新地操作 .它采用队列地方式来存储 .它实现不同线程间通信地一种机制

8.和地主要区别是(): . 内部基于链表,而是基于数组地 . 地大部分方法做了同步,而没有同步 . 是可串行化地,而不是 . 实现了,而没有 .下列属于解析文件地优点地是() .将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能 .不用事先调入整个文档,占用资源少 .整个文档调入内存,浪费时间和空间 .不是长久驻留在内存,数据不是持久地,事件过后,若没有保存数据,数据就会消失""; ""; ""; 总共创建( )个对象. 多选题 .在添加第一个窗口小部件时,会执行地方法是() .下列属于优点地是() 与编程语言无关. 可以使用任何语言来完成是完全和厂商无关. 与平台无关 是简单地,可扩展地 3.下列属于解析需要用到地类和接口是() A. .在使用蓝牙必须获取地权限是() .< ""> .< "" > .< ""> .< ""> 5.类地重要方法()

Android面试题附答案

Android面试题附答案 一、选择题(30题,每题1.5分,共45分) 1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功能分为:(c),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(g) A、输入流和输出流 B、字节流和字符流 C、节点流和处理流 D、File stream E、Pipe stream F、Random stream G、Filter stream 2.下列代码的执行结果是:(b) public class Test3{ public static void main(String args[]){ System.out.print(100%3); System.out.print(“,”); System.out.println(100%3.0); } } A、1,1 B、1,1.0 C、1.0,1 D、1.0,1.0

3.在继承中,关于构造方法的说明,下列说法错误的是(d) A、子类无条件的继承父类的无参构造方法, B、子类可以引用父类中的有参构造方法,使用super关键字, C、如果子类没有构造方法,则父类无参构造方法作为自已的构造方法, D、如果子类有无参构造方法,而父类的无参构造方法则被覆盖。 4.以下程序的运行结果为(b) public class IfTest{ public static void main(String args[]){ int x=3; int y=1; if(x==y) System.out.println(“Not equal”); else System.out.println(“Equal”); } } A、Not equal B、Equal C、无输出 D、编译出错 5.Java语言中字符串“学Java”所占的内存空间是(a) A. 6个字节 B. 7个字节

android试卷A及答案

Android应用试卷A 一、选择题(10分) 1. 下列不是手机操作系统的是?(D) A.Android B. Window Mobile C. Apple IPhone IOS D. windows vista 2. 下列选项哪个不是Activity启动的方法?(B ) A. startActivity B. goToActivity C. startActivityForResult D. startActivityFromChild 3. 下列哪个不是Activity的生命周期方法之一?(B ) A. onCreate B startActivity C. onStart D. onResume 4. 下列哪个可做Android数据存储?( A ) A. SQlite B. MySql C. Oracle D. DB2 5. 下列哪个可做EditText编辑框的提示信息?( D ) A. android:inputType B. android:text C. android:digits D. android:hint 二、真空题(2分) 1. 为了使android适应不同分辨率机型,布局时字体单位应用sp ,像素单位应用sp 和dip 。 2. 定义LinearLayout水平方向布局时至少设置的三个属性: android:orientation ,android:layout_width 和android:layout_height 。 3. 设置 ImageView控件为灰色的方法是:android:background=”#040” 。 4. layout布局文件的命名不能出现字母大写。 5. 设置EditText只能输入”1234567890.+-*/%()”属性:android:digits 。 6. 设置TextView字体的属性是:android:textSize 。 三、简答题(30分) 1. Android项目中的入口Activity怎么写?如何注册一般的Activity? (1) Android项目中的入口Activity:

Android编程基础笔试题及答案2.0

《Android 编程基础》试卷A 注意事项: 1. 本试卷共8页,满分100分; 2. 请把学院、姓名、班级写到密封线内,考试时间90分钟; 3. 请不要把答案写在密封线内 一、单选题(共35题,共61分) 1、 D03MA057(2分)退出 activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行 a A 、onPause() B 、onCreate() C 、onResume() D 、onStart() 2、 D02MA058 (2分) Android 项目工程下面的 assets 目录的作用是什么 b A 、放置应用到的图片资源。 Res/drawable B 、主要放置一些文件资源,这些文件会被原封不动打包到 apk 里面 C 、放置字符串,颜色,数组等常量数据 res/values D 、放置一些与 UI 相应的布局文件,都是 xml 文件 res/layout 3、 D04MA059 (2分)下列不属于android 布局的是(c) A 、F r a m e L a y o u t B 、L i n e a r L a y o u t C 、BorderLayout D 、T a b l e L a y o u t E 、R e l a t i v e L a y o u t 4、 D08MA2060 (2分)Intent 的作用的是 a A 、intent 是连接四大组件的纽带,可以实现界面间切换,可以包含动作和动作数据, B 、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会 因为切 换页面而消失 service C 、实现应用程序间的数据共享 contentprovider D 、处理一个应用程序整体性的工作 5、 D04EA1061(1分) 下列哪个是AbsoluteLayout 中特有的属性 b A,android:layout_height B,android:layout_x C,android:layout_above D,android:layout_toRightOf 6、 D07EA1062(1分)RatingBar 组件中不能用属性直接设置的是d A,五角星个数 B,当前分数C,分数的增量D,五角星的色彩 7、 D 10EA1063(1分) 在手机开发中常用的数据库是_a__ A,sqlLite B,Oracle C,Sql Server D,Db23 8、 D14MA2064(2分) 关于BroadcastReceiver 的说法不正确的是_b_ A, 是用来接收广播Intent 的 密封线内不要答 题 学院班级姓名

android java笔试题(带大部分答案)

请将试题答在答题卡上,不要在试卷中做任何标记 一、基础题: 1.请写出输出结果 public class Test1 { public static void changeStr(String str){ str="welcome"; } public static void main(String[] args) { String str="1234"; changeStr(str); System.out.println(str); } } ___"1234"____________________________________________________ 2.请写出输出结果 public class Test2 { static boolean foo(char c) { System.out.print(c); return true; } public static void main(String[] argv) { int i = 0; for (foo('A'); foo('B') && (i < 2); foo('C')) { i++; foo('D'); } } } _____ABDCBDCB___________________________________________________ 3.class A { protected int method1(int a, int b) { return 0; } } 以下A扩展类中的方法哪两个是正确的:(选择两个) A.public int method1(int a, int b) { return 0;} B.private int method1(int a, int b) { return 0;} C.private int method1(int a, long b) { return 0;} D.public short method1(int a, int b) { return 0;} E.static protected int method1(int a, int b) { return 0;} ____AD___________________________________________________ 4.public class Outer{ public void someOuterMethod() { // Line 3

(完整版)Android应用开发期末考试题

试题 一、选择题 1 android虚拟设备的缩写是(AVD) 2 Android SDK目前支持的操作系统(DOS) 3 Android开发工具插件(ADT)没有提供的开发功能(自动更新) 4Android SDK提供一些开发工具可以把应用软件打包成Android格式文件(APK) 5 Android当中基本的所有的UI都是由(view)或者其子类实现的 6以下不是Android中调试项目的正确步骤(测试用例) 7下列不是Activity的生命周期方法之一的是(OnResume) 8以下可以做EditText编辑框的提示信息是(adroid:hint) 9以下不是Activity启动的方法是(gotoActivity) 10以下不是手机操作系统的是(windows vista) 二、填空题 1 Android平台由操作系统,中间件,用户界面和应用软件组成的。 2 Android平台提供了2D,3D的图形支持,数据库支持SQLite,并且集成了浏览器 3目前已知的可以用来搭建Android开发环境的系统有windows,Linux,Mac 等4开发中推荐使用的IDE开发组合为IDE,eclipse,ADI来开发 5 Android SDK主要以java语言为基础 6创建工程时需要填写的信息名称有工程名,包的名字,Activity的名字还有应用的名字

7 Android.jar是一个标准的压缩包,其内容包含的是编译后的class,包含了全部的API 三、简答题 1 Android SDK中API的包结构的划分?至少五个 android.util,android.os,android.content,android.view,android.graphics,android.text 2 Android软件框架结构自上而下可分为哪些层? 应用程序(Application)、应用程序框架(Application Framework)、各种库(Libraries)和Android运行环境(RunTime)、操作系统层(OS) 3 Android应用程序的4大组件是什么? Activity、Broadcast Intent Receiver、Service、Content Provider 4 Android应用工程文件结构有哪些? 源文件(包含Activity),R.java文件,Android Library,assets目录res目录,drawble目录,layout目录,values目录,AndroidManifest.xml 5 Android开发应用程序最有可能使用到的应用框架部分是哪些? 一组View(UI)组件,Content Providers,Resource Manger,Notification Manger,Activiy Manger 6 Android底层库包含哪些? 系统C库,媒体库,Surface Manager,LibWebCore,SGL 四、编程 1实现点击一个按钮,结束当前Activity并将需要返回的数据放置并关闭当前窗体请编写核心代码 Bundle bundle = new Bundle ( ); Bundle.putString(“store”,”数据来自Activity1”) ;

android笔试题及答案

单选题 中可以用来处理js中警示,确认等对话框的是(C) 2.假设assets目录下有文件结构html/,用loadUrl()方法将该网页加载至 webView 时,需传入的参数是(B) A. B. C. D. 3.下列不属于补间动画相关类的是(B) 中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状 态码表示请求完成的是(D) 5.关于ImageSwitcher 说法错误的是:( B ) 里可以通过Alpha设定转换时候的透明位 B.在使用一个ImageSwitcher之前,不一定要调用setFactory方法 是设置资源被读入到这个ImageSwitcher的时候动画效果 是资源文件从这个ImageSwitcher里消失的时候要实现的动画效果 6.建立蓝牙连接时通过_D_方法来获取BluetoothAdapter对象 D. () 7.关于Handler的说法不正确的是( A ) A.它实现不同进程间通信的一种机制 B.它避免了在新线程中刷新UI的操作 C.它采用队列的方式来存储Message D.它实现不同线程间通信的一种机制 8.Vector和ArrayList的主要区别是(B): A. ArrayList内部基于链表,而Vector是基于数组的

B. Vector的大部分方法做了同步,而ArrayList没有同步 C. Vector是可串行化的,而ArrayList不是 D. Vector实现了RandomAccess,而ArrayList没有 9.下列属于SAX解析xml文件的优点的是(B ) A.将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能 B.不用事先调入整个文档,占用资源少 C.整个文档调入内存,浪费时间和空间 D.不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失 a1="abc"; String a2="abc"; String a3="abcd"; 总共创建( A )个String对象。 多选题 1.在添加第一个appwidget窗口小部件时,会执行的方法是(ABD) 2.下列属于SOAP优点的是(ABCD) A,SOAP 与编程语言无关。SOAP 可以使用任何语言来完成 B,SOAP 是完全和厂商无关。 C,SOAP 与平台无关D,SOAP 是简单的,可扩展的 3.下列属于SAX解析XML需要用到的类和接口是(BCD) A.DocumentBuilder 4.在使用蓝牙必须获取的权限是(AD) 5.Chronometer类的重要方法(ABC) 简答题 1.oom是什么如何避免 当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了GC操作以后这就会抛出OutOfMemoryException 也就是OOM 避免:

Android基础阶段 测试题

一、选择题(每题2分,共20分) 1.给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项)a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 2.在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 3.给定如下java代码,编译运行之后,将会输出()。 public class Test{ public staticvoid main(String args[]){ int a=5; System.out.println(a%2==1) ?(a+1) /2:a/2) ; } } a)1 b)2 c)2.5 d)3 4. 有关线程的哪些叙述是对的?( ) A、当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。 B、使用Start()方法可以使一个线程成为可运行的,但它不一定立即开始运行。 C、一个线程可能因为不同的原因停止并进入就绪状态。 D、一旦一个线程被创建,它立即开始运行。 5.下列属于Intent的作用的是( ) A、实现应用程序间的数据共享

B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 6.关于下列程序段的输出结果,说法正确的是:() public class MyClass{ static int i; public static void main(String argv[]){ System.out.println(i); } } A、有错误,变量i没有初始化。 B、null C、1 D、0 7.下列属于SAX解析xml文件的优点的是() A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会 消失 8.下列哪些语句关于内存回收的说明是正确的? ( ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 9.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的是() A、 B、

Android面试题整理

Android常用面试简答题 1、android 中得动画有哪几类,它们得特点与区别就是什 么? 参考答案: 有两种,一种就是 Tween(补间)动画、还有一种就是 Frame(帧)动画。Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产 生透明度得变化;另一种 Frame 动画,传统得动画方法,通过顺序得播放排列好得图片来实现,类似电影。 2、请简述Handler得机制原理 参考答案: andriod 提供了 Handler 与 Looper 来满足线程间得通信。Handler 先进先出原则。 Looper类用来管理特定线程内对象之间得消息交换(Message Exchange)。 1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里 得 Message Queue(消息队列)。 2)Handler: 您可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 Message Queue 里;或者接收 Looper从 Message Queue 取出)所送来得消息。 3) Message Queue(消息队列):用来存放线程放入得消息。 4)线程:UI thread 通常就就是 main thread,而 Android 启动程序时会替它建立一个Message Queue。 3、说说mvc模式得原理,它在android中得运用 参考答案: MVC 就是 Model,View,Controller 得缩写,从上图可以瞧出 MVC 包含三个部分: 模型( Model )对象:就是应用程序得主体部分,所有得业务逻辑都应该写在该层。 视图( View )对象:就是应用程序中负责生成用户界面得部分。也就是在整个MVC 架构中用户唯一可以瞧到得一层,接收用户得输入,显 示处理结果。 控制器( Control )对象:就是根据用户得输入,控制用户界面数据显示及更新Model 对象状态得部分,控制器更重要得一种导航功能,想 用用户触发得相关事件,交给 Model处理。 Android 鼓励弱耦合与组件得重用,在 Android 中 MVC 得具体体现如下 1) 视图层( view ):一般采用 xml 文件进行界面得描述,使用得时 候可以非常方便得引入,当然,如何您对 android 了解得比较得多了话,就一定可以想到在 android 中也可以使用javascript+html 等得方式作为 view 层,当然这里需要进行 java 与 javascript 之间得通信,幸运得就是, android 提供了它们之间非常方便得通信实现。

Android练习题及答案

练习题 一、选择题 1. 下面哪个属于体系结构中的应用程序?( ) (A) (B) (C)浏览器(D) 2. 应用程序需要打包成( )文件格式在手机上安装运行。 (A) (B) (C) (D) 3. 在的生命周期中,当被某个覆盖掉一部分后,会处于哪种状态?( ) (A) 暂停(B) 活动(C) 停止(D) 销毁 4. 中下列属于的作用的是( )。 (A) 实现应用程序间的数据共享() (B) 是一段长的生命周期,没有用户界面的程序,可以保持在后台运行,而不会因为切换页面而消失() (C) 可以实现界面间的切换,可以包含动作和动作数据,是连接4大组件的纽带 (D) 处理一个应用程序整体性的工作 5. 项目启动时最先加载的是文件,如果有多个,以下哪个属性决定了该最先被加载?( )。 (A) (B)(没有) (C) (D) 6. 如果需要捕捉某个组件的事件,需要为该组件创建( ) (A)属性(B)监听器(C)方法(D)工程 7.关于描述正确的是( )。 (A)该布局为绝对布局,可以自定义控件的的位置 (B)该布局为切换帧布局,可实现标签切换的功能 (C)该布局为相对布局,其中控件的位置都是相对位置

(D)该布局为表格布局,需要配合一起使用 8.关于的说法不正确的是 ( )。 (A)它实现不同进程间通信的一种机制(B)它采用队列的方式来存储 (C)既是消息的发送者也是消息的处理者(D) 它实现不同线程间通信的一种机制 9. 下列哪种不是的存储方式?( ) (A) (B) (C) (D) 10. 下列关于的描述,不正确的是 ( )。 (A)是系统的后台服务组件,适用于开发无界面、长时间运行的应用功能 (B)比的优先级高,不会轻易被系统终止 (C)有两种不同的使用方式,一种是以启动方式使用,另一种是以绑定方式使用 (D)每个服务都继承自基类 二、填空题 1. 目前,常见的智能手机操作系统有、和等。 2第一次被创建的时候调用的方法是()。 3.为了使系统适应不同分辨率机型,布局时使用的字体和像素单位分别是 和。 4支持的4大重要组件,分别是、、和。 5. 4.0中提供了5种布局管理器:、、、和。 6类不能直接使用关键字来创建类的对象实例,而是首先创建其内部 类类的对象,再调用这个内部类的()方法来显示对话框。

android面试题及答案

一选择题(可多选,30分) 1、关于BroadcastReceiver说法正确的是(AB) A、BroadcastReceiver有两种注册方式,静态注册和动态注册 B、Broadcast分正常广播和有序广播,其中有序广播可以被停止掉,不传给下一个接受者 C、Broadcast Receiver 提供了可视化的界面来显示广播信息 D、BroadcastReceiver的onReceive函数里可以使用线程来执行耗时的操作 2、关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是(D) A、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念. B、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念. C、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念. D、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念. 3 android 中下列关于Intent说法正确的是(C) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 4 android 关于service生命周期的onCreate()和onStart()说法正确的是(AD) A、当第一次启动的时候先后调用onCreate()和onStart()方法 B、当第一次启动的时候只会调用onCreate()方法 C、如果service已经启动,将先后调用onCreate()和onStart()方法 D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法 5.在异常处理中,如释放资源、关闭文件、关闭数据库等由( C)来完成。 A.try子句 B.catch子句 C.finally子句 D.throw子句 6.关于Collections说法正确的是(AC) A.Collections 包含有各种有关集合操作的静态多态方法 B.Collections是集合类的一个顶级接口, C.Collections 是一个包装类,此类不能实例化 D.List是Collections的子接口 7.关于java抽象类说法正确时是(AC)

《Android程序设计》期末试题B

一、判断题(每小题2分,共10分) 1、Android是J2ME的一个实现。() 2、View是ViewGroup的子类。() 3、一个Intent可以包含多个category。() 4、Android系统下的文件,可以被本系统里的所有应用程序访问。() 5、无论Service是以启动方式还是绑定方式运行,该Service类都要重写onBind 方法。() 二、单项选择题(在每小题的四个备选答案中,有且只有一个正确答案,请将正确答案的序号填在题干的括号内。每小题2分,共20分) 1、下列关于继承的哪项叙述是正确的?() A、在Java中类允许多重继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口允许继承自另一个接口 2、以下哪种方式不能退出当前活动状态的Activity?() A、调用finish()方法 B、单击(返回)按钮 C、单击(回到桌面)按钮 D、Activity运行时出现异常 3、对于TextView,使用哪个属性来设置显示的文本?() A、android:textSize B、android:text C、android:textColor D、android:string 4、要处理Button的点击事件,需要注册哪个监听器?() A、OnClickListener() B、OnButtonClickListener() C、OnButtonListener() D、OnItemClickListener() 5、浏览网页使用的Intent的Action是什么?() A、ACTION_CALL B、ACTION_EDIT C、ACTION_SEND D、ACTION_VIEW 6、Android 关于启动方式的service生命周期的onCreate()和onStartCommand()方法,说法正确的是()

Android移动应用试题(带答案)

<>试题 一.选择题(2’X12) 1.下面哪一个不属于Android体系结构中的应用程序层 A.电话簿 B.日历 C.SQLite D.SMS程序 2.下面哪种说法不正确 A.Android应用的gen目录下的R.java被删除后还能自动生成; B.res目录是一个特殊目录,包含了应用程序的全部资源,命名规则可以支持数字(0-9) 下横线(_),大小写字母(a-z , A-Z); C.AndroidManifest.xml文件是每个Android项目必须有的,是项目应用的全局描述。其 中指定程序的包名(pack age=”…”)+指定android应用的某个组件的名字(android:name=”…”)组成了该组件类的完整路径 D.assets和res目录都能存放资源文件,但是与res不同的是assets支持任意深度的子目 录,在它里面的文件不会在R.java里生成任何资源ID 3.在一个相对布局中怎样使一个控件居中 A.android:gravity="center" B.android:layout_gravity="center" C.android:layout_centerInParent="true" D.android:scaleType="center" 4.下面是一段生成对话框的代码,哪一行有错误? Builder builder = new Builder(getApplicationContext()); 1 builder.setTitle("提示").setMessage("请选择"); 2 builder.setPositiveButton("重置", new OnClickListener() 3 { 4 public void onClick(DialogInterface dialog, int which) 5 { 6 Log.i("log", "重置被按了!"); 7 } 8 }); 9 builder.setNegativeButton("取消", null); 10 builder.setNeutralButton("确定", new OnClickListener() 11 { 12 public void onClick(DialogInterface dialog, int which) 13 { 14 Toast.makeText(getApplicationContext(), "确定被按了!", 15 Toast.LENGTH_SHORT).show(); 16 } 17

Android面试题-带答案

1.介绍一下Android系统的体系结构 答:应用层:android的应用程序通常涉及用户界面和交互。 应用框架层:UI组件、各种管理器等。 函数库层:系统C库、媒体库、webkit、SQLite等。 linux核心库:linux系统运行的组件。 2.Android的四大组件是哪些,它们的作用? 答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期及一些跳转逻辑 service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事物,定义好需要接受的Intent提供同步和异步的接口 Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径 BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型 3.请介绍下Android的数据存储方式。 答:一.SharedPreferences方式 二.文件存储方式 三.SQLite数据库方式 四.内容提供器(Content provider)方式 五. 网络存储方式 4.说说mvc模式的原理 答:mvc是model,view,controller的缩写,mvc包含三个部分: 模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。 视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。 控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,响应用户出发的相关事件,交给m层处理。 5.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 答:重写onSaveInstanceState()方法,在此方法中保存需要保存的数据,该方法将会在activity被回收之前调用。通过重写onRestoreInstanceState()方法可以从中提取保存好的数据

相关文档
最新文档