您的当前位置:首页正文

复习材料《Android移动应用开发技术》

来源:小奈知识网


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不再接收到这个消息

二、开发技术设计与应用能力部分

注:以下程序均是相关程序或小项目的实现代码,根据每个程序或项目的特性,完成程序空缺部分的内容,使其实现。具体程序代码注释省略。

图1 图2 图3 图4 1)电话实现 [主界面如图1]

程序描述:完成手机打电话功能。

public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_call = (Button)this.findViewById(R.id.btn_call);

btn_call.setOnClickListener(new btnCall());

}

private class btnCall implements OnClickListener (1) { public void onClick(View v) { // TODO Auto-generated method stub EditText et_number = (EditText) MainActivity.this.findViewById(R.id.et_number); String s_number = et_number.getText().toString().trim(); (2) Intent i_call = new Intent(); i_call.setAction(Intent.ACTION_CALL(3)); i_call.setData(Uri.parse(\"tel:\"+s_number)); startActivity(i_call); (4) } } }

2)动画实现 [主界面如图2]

程序描述:手机屏幕触摸后演示动画,假设XML文件已经设置好,id资源为:R.drawable.panda public class MainActivity extends Activity { ImageView iv_action; AnimationDrawable ad_action; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv_action = (ImageView)this.findViewById(R.id.iv_action); iv_action.setBackgroundResource(5)(R.drawable.panda); ad_action = (AnimationDrawable) iv_action.getBackground(); }

public boolean onTouchEvent(MotionEvent event) { ad_action.start(); (6) return super.onTouchEvent(event); } }

3)撕衣服游戏实现

项目描述:划动屏幕时完成撕衣服效果,并产生撕衣服声音(sound.mp3) public class MainActivity extends Activity { ImageView iv_upper; ImageView iv_below;

试卷 共 5 页 第 1页

Bitmap bmp_upper; Bitmap bmp_below; Bitmap bmp_upper_alter; Canvas canvas; Paint paint; SoundPool sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sp = new SoundPool(5, AudioManager.STREAM_SYSTEM(7), 5); sp.load(getApplicationContext(), R.raw.sound, 0); Options opts = new Options(); opts.inSampleSize = 2; iv_upper = (ImageView) this.findViewById(R.id.iv_upper); iv_below = (ImageView) this.findViewById(R.id.iv_below); bmp_upper = BitmapFactory.decodeResource(getResources(), R.drawable.upper, opts); bmp_below = BitmapFactory.decodeResource(getResources(), R.drawable.below, opts); bmp_upper_alter = Bitmap.createBitmap(bmp_upper.getWidth(), bmp_upper.getHeight(), bmp_upper.getConfig()(8) ); iv_upper.setImageBitmap(bmp_upper_alter(9)); iv_below.setImageBitmap(bmp_below(10)); paint = new Paint(); paint.setColor(Color.BLACK(11)); paint.setStrokeWidth(5); canvas = new Canvas(bmp_upper_alter(12)); canvas.drawBitmap(bmp_upper(13), new Matrix(), paint); iv_upper.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub int x; int y; switch (event.getAction()(14)) { case MotionEvent.ACTION_MOVE: x = (int)event.getX(); y = (int)event.getY(); sp.play(1, 1, 1, 0, 0, 1); for(int i=-20; i<21;i++) { for(int j=-20; j<21; j++)

{

bmp_upper_alter.setPixel(i+x, j+y, Color.TRANSPARENT(15)); } } iv_upper.setImageBitmap(bmp_upper_alter(16)); break; default: break; } return true; } }); } }

4)数据库技术项目

项目描述:完成数据库的增、删、改、查设计,完成数据库数据的显示界面设计及实现。 注:相关文件及包结构关系如下,完成相关设计及实现 package com.android.dao.dao; import 省略;

public class DataBaseOpenHelper extends SQLiteOpenHelper { public DataBaseOpenHelper(Context context) { super(context, \"testdb.db\ //完成数据库名称等设置 } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(\"create table person (id integer primary key autoincrement(17), name varchar(20), telnum varchar(20))\"); //数据表结构设计 } 其余省略 }

package com.android.dao.dao; import 省略

public class DBDAO { DataBaseOpenHelper helper; public DBDAO() { }

试卷 共 5 页 第 2页

public DBDAO(Context context) { helper = new DataBaseOpenHelper(context)(18); } public void insert(String name, String telnum) //数据表成员增加 { SQLiteDatabase db = helper.getWritableDatabase()(19); db.execSQL(\"insert into person (name, telnum) values (?,?)\ db.close(); } public void delete(String name) //数据表成员删除 { SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL(\"delete from person where name = ?\ db.close(); } public void update(String name, String newnumber) //数据表成员更新 { SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL(\"update person set telnum = ? where name = ?\newnumber(20), name(21)}); db.close(); } public boolean find(String name) //数据表成员条件查找 { boolean result = false; Cursor cs; SQLiteDatabase db = helper.getWritableDatabase(); cs = db.rawQuery(\"select * from person where name = ?\ result = cs.moveToNext(); cs.close();(22) db.close(); return result; } public List findAll() //数据表成员查找全部 { Cursor cs; List person = new ArrayList(); SQLiteDatabase db = helper.getReadableDatabase(); (23) cs = db.rawQuery(\"select * from person\

while(cs.moveToNext())

{ int id = cs.getInt(cs.getColumnIndex(\"id\")); String name = cs.getString(cs.getColumnIndex(\"name\")); String telnum = cs.getString(cs.getColumnIndex(\"telnum\")); Person p = new Person(id, name, telnum); person.add(p); (24) } cs.close(); db.close(); return person; (25) } }

package com.android.dao.dao; public class Person { int id; String name; String telnum; public Person(int id, String name, String telnum) { this.id = id; this.name = name; this.telnum = telnum; } 其余省略 }

package com.android.dao; import省略

public class MainActivity extends Activity { LinearLayout layout_root; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); layout_root (26)= (LinearLayout) this.findViewById(R.id.layout_root); TextView tv; DBDAO dao;

试卷 共 5 页 第 3页

dao = new DBDAO(getApplicationContext()(27)); List persons = dao.findAll()(28); for(Person p : persons) { tv = new TextView(this); tv.setText(p.toString()(29)); layout_root.addView(tv(30)); } } }

三、课程内容归纳[简答题 (2×5)] 1、简要总结Android系统的特点。

1)Android平台首先就是其开放性,丰富的硬件选择。 开放的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者和用户;

2)无缝结合的Google应用。

Android平台手机将无缝结合Google服务,如搜索、地图等应用。 3)不受任何限制的开发商

Android平台提供给第三方开发商一个十分宽泛、自由的环境。

2、Android中的动画有哪几类,它们的特点和区别是什么?

主要有两种,一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似GIF动画及电影播放原理。

试卷 共 5 页 第 4页

因篇幅问题不能全部显示,请点此查看更多更全内容