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