《Android程序设计》期末试题A(答案)

更新时间:2024-03-11 17:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、 判断题(每小题2分,共10分)

1、( 对 ) 2、( 对 ) 3、( 错 ) 4、( 错 ) 5、( 错 )

二、单项选择题(在每小题的四个备选答案中,有且只有一个正确答案,请将正确答案的序号填在题干的括号内。每小题2分,共20分) 题号 答案

三、填空题(每空2分,共10分)

1、 BroadcastReceiver 、 ContentProvider 2、 onCreate 、 onResume 3、 getSystemService

四、名词解释(每小题5分,共15分)

1、答:Activity是一个独立的,可以与用户交互的Android应用组件,在表现形式上它代表一个单独的屏幕。从功能上来说,它作为应用程序的界面框架,负责动态加载各种用户界面视图,实现底层的消息传递等。

2、答:在Android中,Intent是一类特殊的组件,它负责对应用中一次操作的动作以及动作相关数据进行描述,包含了动作的产生组件、接收组件和传递的数据信息。Android则根据此描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。

3、答:ContentProvider是不同应用程序之间进行数据交换的标准API。ContentProvider以某种Uri的形式对外提供数据,允许其它应用访问和修改数据;其它应用使用ContentResolver根据Uri去访问操作指定数据。

五、简答题(每小题5分,共20分)

1、答:Android平台的体系架构可以分为以下几层:

(1)Linux Kernel:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。

(2) Libraries和Android Runtime:Libraries:即C/C++函数库部分,大多数都是开放源代码的函数库,例如WebKit,该函数库负责Android网页浏览器

1 D 2 C 3 C 4 A 5 D 6 D 7 C 8 B 9 B 10 B

的运行,例如标准的C函数库Libc、OpenSSL、SQLite等,当然也包括支持游戏开发2D SGL和3D OpenGL | ES,在多媒体方面有MediaFramework框架来支持各种影音和图形文件的播放与显示,例如MPEG4、H.264、MP3、AAC、AMR、JPG和PNG等众多的多媒体文件格式。Android的Runtime负责解释和执行生成的Dalvik格式的字节码。

(3)Application Framework:(应用软件架构),Java应用程序开发人员主要是使用该层封装好的API进行快速开发。

(4)Applications:该层是Java的应用程序层,Android内置的Google Maps、E-mail、即时通信工具、浏览器、MP3播放器等处于该层,Java开发人员开发的程序也处于该层,而且和内置的应用程序具有平等的位置,可以调用内置的应用程序,也可以替换内置的应用程序。

上面四个层次中,下层给上层服务,上层支持下层支持,调用下层的服务,这种严格的分层机制,为Android系统带来很大的灵活性,稳定性和可扩展性。也利于不同层的开发人员专心于该层次的开发任务。 2、答:一个Intent组件包含以下属性。 (1)component:指定Intent的的目标组件 (2)action:要执行的动作

(3)category:动作的所属类别,被执行动作的附加信息。 (4)data:执行动作要操作的数据 (5)type:显式指定Intent的数据类型 (6)extras:包含的所有附加信息的集合

3、广播消息在本质上就是一个Intent对象。要发送一个广播消息,首先把要发送的信息和相关的属性信息(如Action、Category等)封装进一个Intent对象。

调用Context的下列方法之一发送广播消息。 sendBroadcast():发送普通广播

sendOrderedBroadcast() :发送有序广播 sendStickyBroadcast() :发送持续广播

4、开放性问题,没有标准答案。

六、编程题(第1小题10分,第2小题15分,共25分)

1、解://CalculateSumActivity.java

package xiong.calculatesum; import android.app.Activity; import android.os.Bundle; import android.view.View;

import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView;

public class CalculateSumActivity extends Activity { private EditText num1Text = null; private EditText num2Text = null; private Button addBtn = null;

private TextView resultView = null; @Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

num1Text = (EditText)findViewById(R.id.num1); num2Text = (EditText)findViewById(R.id.num2); addBtn = (Button)findViewById(R.id.addBtn); resultView = (TextView)findViewById(R.id.result); addBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { double num1 = Double.parseDouble(num1Text.getText().toString()); double num2 = Double.parseDouble(num2Text.getText().toString()); double sum = num1 + num2; resultView.setText(num1 + \ } }); } }

2、解://CallPhoneActivity.java package xiong.callphone;

import java.util.regex.Matcher; import java.util.regex.Pattern; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle;

import android.view.View; import android.widget.Button; import android.widget.EditText;

public class CallPhoneActivity extends Activity { @Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

final EditText phoneNumText = (EditText) findViewById(R.id.phoneNum); Button callBtn = (Button) findViewById(R.id.callBtn); callBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { String phoneNum = phoneNumText.getText().toString(); if(isValid(phoneNum)){ Uri phoneUri = Uri.parse(\ Intent intent = new Intent(Intent.ACTION_CALL,phoneUri); startActivity(intent); } else{ System.out.println(\请输入正确的电话号码!\ } } private boolean isValid(String phoneNum){ Pattern p = Pattern.compile(\ Matcher m = p.matcher(phoneNum); boolean b = m.matches(); return b; } }); } }

本文来源:https://www.bwwdw.com/article/q908.html

Top