一、填空题

1)TextView不换行

android:singleLine=“true”

2)创建一个MyService的Service
public class MyService extends Service{
    // 必须实现的方法
    @Override
    public IBinder onBind(Intent intent){
        return null;
    }
}
3)获取Activity中的返回数据

①打开Activity——startActivityForResult()

②设置返回数据——setResult()

③得到返回值——重写onActivityResult()

4)关于Intent对象

①激活Intent对象常用——Activity、Service和BroadcastReceiver。

②Service——在后台长时间运行操作且不提供用户界面的组件

5)ADT插件的四个文件夹

①drawable-xhdpi——超高清分辨率图片

②drawable-hdpi——高分辨率图片

③drawable-mdpi——中分辨率图片

④drawable-ldpi——低分辨率图片

6)SQLiteDataBase

①insert()插入数据

②update()更新数据

③query()查询数据

④delete()删除数据

7)Activity退出说明

Back键或者finish()方法,退出当activity,实际调用了onDestroy()方式

8)如何获取user
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
String user =bundle.getString("user")
9)文本框与编辑框

①android:autoLink——超链接

②android:inputType——密码域

10)获取WebView,且添加指定URL
WebView webView=(WebView)findViewById(R.id.webView1);
webView.loadUrl("http://127.0.0.1:8080/bbs/");

二、简答题

1)SurfaceView类的作用及常用的场合:

说明:

surface类是一种特殊的视图,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在独立的线程中进行绘制,不会占用主线程资源。所以它更适合性能比较高的场合。

总结:

①surface类是一种特殊的视图,独立于主窗口

②SurfaceView的UI独立的线程,不占主线程

③适合于性能比较高的场合

2)LayoutInflater类的主要作用及工作原理:

该类可以从上下文环境获取一个局部填充器,利用它把xml布局文件转化为View对象。然后再将此View对象放入主界面的LinearLayout中。LayoutInflater类用inflate()方法加载xml布局文件。

3)Fragment对象的工作原理,以及对Activity之间的关系

①将应用程序拆解为多个部分,使各个部分灵活组合,以使用不同分辨率的手机和平板设备。

②将Activity代码和界面“切割”,分成多个碎片,每一小块都是迷你的Activity。

③Fragment与Activity的关系:Activity是由多个Fragment组合而成。

4)Android 的四大基本组件与其作用

四大组件:Activity、BroadcastReceiver、ContentProvider和Service

Activity:android的最基本板块,提供可视化的用户界面,一个android项目有一个或多个activity。

BroadcastReceiver:广播接收器,专注于接收广播通知信息,且做出对应处理的组件。

ContentProvider:应用程序之间共享数据的一种接口机制,一共高级的数据共享方法,共享的数据可以在不知道数据来源、路径的情况下进行操作。

Service:没有可视化的用户界面,一段时间内在后台运行的程序。

5)Padding与Margins

padding:内边距,参考固定于当前位置,向上下左右进行移动。

margins:外部距,参考于其他的对象,向上下左右进行移动。

6)Looper、Handler、Message,以及MessageQueue的工作原理

Looper对象用来为一个线程开启一个消息循环,用来操作MessageQueue。默认情况下Android中新创建的线程是没有开启消息循环的。但是主线程除外,系统会自动为主线程创建Looper对象,开启消息循环。

消息处理类(Handler)允许发送和处理Message或Rannable对象到其所在线程的MessageQueue中。

消息类(Message)被存放在MessageQueue中,一个MessageQueue中可以包含多个Message对象。每个Message对象可以通过Message.obtain()方法或者Handler.obtainMessage()方法获得。

MessageQueue(消息队列),用于存放Message(消息),在MessageQueue中,存放的消息按照FIFO(先进先出)原则执行。

7)R.java和AndroidManifest.xml文件的作用:

R.java文件用来定义Android程序中所有资源的索引,在Java源文件中编写代码时,可以直接通过该索引访问各种资源。每个Android应用程序必须包含一个AndroidManifest.xml文件,它位于根目录中。它是整个Android应用的全局描述文件。在该文件内,需要标明应用的名称、使用图标、Activity和Service等信息,否则程序不能正常启动。

8)Android提供的线性布局、表格布局方式的特点:

线性布局(LinearLayout) :控件按照从上至下或从左至右的顺序排列成一行或一列. 另外Android的线性布局中的组件不会换行,当组件一个挨着一个排列到窗体的边缘后,剩下的组件将不会被显示出来。表格布局(TableLayout) :用创建行; 或直接向中添加UI组件,该组件独占一行。 往行中每添加一个组件,表格会自动增加一列。

9)什么是Intent,其作用为:

Intent(意图)是一个对象,它是一个被动的数据结构保存一个将要执行操作的抽象描述,或在广播的情况下,通常是某事已经发生并正在执行,开发人员通常使用该对象激活Activity、Service和BroadcastReceiver。Intent用于相同或者不同应用程序组件间的后期运行时绑定。

10)Android提供的相对布局、帧布局这两种常用界面布局方式的特点 :

在相对布局中,放入其中的组件是相对于兄弟组件,或者父容器的位置进行排列的,其特点是布局比较灵活。帧布局(FrameLayout) :每加入一个组件,都会创建一个空白的区域,称之为帧。 这些帧会根据gravity属性自动对齐; 默认从屏幕左上角(0,0)坐标点开始布局,多个组件重叠,后面的覆盖前面的。

三、编程题

1)Android网络应用程序

实现功能:使用HttpClient和HttpGet对象完成一个Android网络应用程序,连接地址为:http://www.weather.com.cn/data/list3/city.xml, 后通过HttpResponse对象将所获得的返回内容打印在日志界面中。

HttpClient client=new DefaultHttpClient();
	HttpGet get=new HttpGet("http://www.weather.com.cn/data/list3/city.xml ");
	try{
		HttpResponse response=client.execute(get);
		if(response.getStatusLine().getStatusCode()==200){
			HttpEntity entity=response.getEntity();
			String content=EntityUtils.toString(entity,"UTF-8");
			Log.i("rss", content);
	}catch(Exception e){
			e.printStackTrace();
}
2)Android连接数据库

实现功能:使用Android数据库对象db(假设已存在,不需编写创建该对象的代码)向数据库的tb_student表中添加一条记录,具体值如下:

sno:12;sname:张三;age:23;address:福州

ContentValues values=new ContentValues();
values.put("sno ", 12);
values.put("sname ", "张三");
values.put("age ", 23);
values.put("address ", "福州");
db.insert("tb_student",null ,values);
3)按钮功能绑定

实现功能:

(1)、通过findViewById方法获得界面上的id为submit的Button按钮对象

(2)、为submit按钮对象添加单击事件监听器,使得点击该按钮时,创建一个显示的intent对象,通过该intent对象实现:切换当前界面MainActivity到第二个界面DetailActivity中去

Button submit= (Button) findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {
		Intent intent = 
new Intent (MainActivity.this, DetailActivity.class);
		startActivity(intent);
	}
});
4)EditText功能使用

实现功能:

(1)、通过findViewById方法获得界面上的id为txtLogin的EditText输入框和btnLogin按钮对象

(2)、为btnLogin按钮对象添加单击事件监听器,实现功能:获取用户在txtLogin输入框中输入的内容,判断其值是否为“123”,若是则将该内容打印在日志中,若不是则在日志中打印“输入错误!”

EditText txtlogin = (EditText) findViewById(R.id.txtLogin);
Button btnlogin = (Button) findViewById(R.id.btnLogin);			btnlogin.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View v) {
		String pwd = txtlogin.getText().toString();
       if(pwd.equals("123"))
		Log.i("MainActivity",pwd);	
       else
       	Log.i("MainActivity","输入错误!");	
	}
});