android考试复习资料

  • 格式:pdf
  • 大小:183.31 KB
  • 文档页数:13

android考试复习资料

Unit 4. Android ⽣命周期

Android 系统中的进程优先级由⾼到低

前台进程

⾼优先级

中优先级

低优先级

可见进程

服务进程

后台进程

空进程Android 组件

组件是可以调⽤的基本功能模块,Android 应⽤程序就是由组件组成的Android 系统有四个重要的组件,分别是Activity 、Service 、BroadcaseReceiver 和ContentProvider

Activity 是

Android 程序的呈现层,显⽰可视化的⽤户界⾯,Android 应⽤程序可以包含⼀个或多个Activity ,⼀般在程序启动后会呈现⼀个Activity 。Service ⽤于没有⽤户界⾯,但需要长时间在后台运⾏的应⽤ BroadcaseReceiver 是⽤来接受并响应⼴播消息的组件

ContentProvider 是Android 系统提供的⼀种标准的共享数据的机制,应⽤程序可以通过ContentProvider 访问其他应⽤程序的私有数据,私有数据可以是存储在⽂件系统中的⽂件,也可以是SQLite 中的数据库Activity 表现为四种状态,分别是活动状态、暂停状态、停⽌状态和⾮活动状态

Activity 事件的回调函数: protected void onStart(); protected void onRestart(); protected void onResume(); protected voidonPause(); protected void onStop();

protected void onDestroy(); Activity:

onCreate

onDestroy

onStart

onStop

onResume

onPause

onRestore InstanceState

onSave InstanceState

onRestart

活动⽣命周期可视⽣命周期全⽣命周期12

3

45

6

7

89

Android 系统提供了两种调试⼯具LogCat 和DevTools ,⽤于定位、分析及修复程序中出现的错误

LogCat 程序调试原理

1.引⼊android.util.Log 包

2.使⽤Log.v(),Log.d(),Log.i(),Log.w() 和 Log.e()五个函数在程序中设置“⽇志点”

3.当程序运⾏到“⽇志点”时,应⽤程序的⽇志信息便被发送到LogCat 中

4.判断“⽇志点”信息与预期的内容是否⼀致

E.g. final static String TAG = "LOGCA T"; Log.v(TAG ,"Verbose");

DevTools 是⽤于调试和测试的⼯具,包括了⼀系列⽤户各种⽤途的⼩⼯具

Unit 5. Android ⽤户界⾯

常见的系统控件包括TextView 、EditText 、Button 、ImageButton 、Checkbox 、RadioButton 、

Spinner 、ListView 和TabHost

TextView :显⽰字符串,EditText 是⼀个具有编辑功能的TextView 相应的XML ⽂件:

android:layout_width="wrap_content" //wrap_content 表⽰TextView 的宽度只要能够包含所显⽰的字符串即可,若为fill_content 表⽰则表⽰控件宽度将等于⽗控件的宽度

android:layout_height="wrap_content" android:text="TextView01" >

Test.java:

TextView txv=(TextView)findViewByID(R.id.TextView01);

txv.setText("User:");

ImageButton:

将img1拷贝到/res/drawable⽂件夹下(R.java中⾃动更新)imageButton.setImageResource(R.drawable.img1);

按钮响应点击事件:添加点击事件的监听器imageButton.setOnClickListener(new View.OnClickListener()

{

public void onClick(View view)点击事件的回调函数

{

txv.setText("ImageButton按钮");

}

})

每个View仅可以注册⼀个点击事件的监听器,如果使⽤setOnClickListener()函数注册第⼆个点击事件的监听器,之前注册的监听器将被⾃动注销.

多个按钮注册到同⼀个点击事件的监听器上,代码如下:Button.OnClickListener buttonListener = new Button.OnClickListener(){

@Override

public void onClick(View v) {

switch(v.getId()){

case R.id.Button01:

textView.setText("Button按钮");

return;

case R.id.ImageButton01:

textView.setText("ImageButton按钮");

return;

}

}};

button.setOnClickListener(buttonListener);

imageButton.setOnClickListener(buttonListener);

CheckBox和RadioButton:

怎样定义同组中的RadioButton?XML中:

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:layout_width="wrap_content"

android:layout_height="wrap_content“

android:text="RadioButton01" >

android:layout_width="wrap_content"

android:layout_height="wrap_content“

android:text="RadioButton02" >

Test.java中:

RadioButton radioButton1 =(RadioButton)findViewById(R.id.RadioButton01); RadioButton.OnClickListener rblistener=newRadioButton.OnClickListener()

{

public void OnClick(View v)

{

//process;

}

};radioButton1.setOnClickListener(rblistener);

Spinner:(similar to ComboBox)

Test.java:

Spinner spinner=(Spinner)findViewById(R.id.Spinner01);

Listlist=new ArrayList( );

list.add("item1");

list.add("item2");

ArrayAdapteradapter=new ArrayAdapter (

this,http://www.doczj.com/doc/09fa083bf12d2af90242e63f.html yout.simple_spinner_item, list ); //数组适配器能够将界⾯控件和底层数据绑定在⼀起adapter.setDropDownViewResource(http://www.doczj.com/doc/09fa083bf12d2af90242e63f.htmlyout.simple_spinner_dropdown_item); spinner.setAdapter(adapter);

ListView:(垂直显⽰的列表控件)

ListView listv=(ListView)findViewById(R.id.ListView01);

Listlist=new ArrayList();

List.add("item1");

List.add("item2");

ArrayAdapter adapter=new ArrayAdapter

(this, http://www.doczj.com/doc/09fa083bf12d2af90242e63f.html yout.simple_list_item_1, list ); listv.setAdapter(adapter);

AdapterView.OnItemClickListener listvListener=new AdapterView.OnItemClickListener(){ public voidonItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { String msg =””;

textView.setText(msg);

}};

}

TabHost:实现多个分页之间的快速切换(Similar to TabControl)

有⼏个tabpage就建⽴⼏个xmlTest.java:

public class TabDemo extends TabActivity { //普通的都是extends Activity

// 与以往继承Activity不同,TabActivity⽀持内嵌多个Activity或View

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TabHost tabHost = getTabHost(); //获得Tab标签页的容器

LayoutInflater.from(this).inflate(http://www.doczj.com/doc/09fa083bf12d2af90242e63f.html yout.tab1,tabHost.getTabContentView(),true);

//LayoutInflater将tab1.xml⽂件中的布局转换为Tab标签页可以使⽤的View对象LayoutInflater.from(this).inflate(http://www.doczj.com/doc/09fa083bf12d2af90242e63f.htmlyout.tab2,tabHost.getTabContentView(),true);

LayoutInflater.from(this).inflate(http://www.doczj.com/doc/09fa083bf12d2af90242e63f.html