Android系统开发01—Android基本组件
Android系统开发01—Android基本组件
1.应用程序生命周期
应用程序进程从创建到结束的全过程便是应用程序的生命周期。与其他系统不同,Android应用程序的生命周期是不受进程自身控制的,而是由Android系统决定的。
Android系统将所有的进程分为5类进行管理:
1.前台进程
2.可见进程:还在屏幕中,但是用户并没有直接与之进行交互。
3.服务进程
4.后台进程
5.空进程
从1到5,重要顺序递减。
注意:应用程序在运行时,其状态的切换可能是通过自身实现的,可也能是系统将其改变的。
2.Activity
Activity是Android中最常用的组件,是应用程序的表示层,Activity一般通过View来实现应用程序的用户界面,相当于一个屏幕,用户与程序的交互式通过该类实现的。
Activity的生命周期主要包含三个状态:运行态,暂停态,停止态。
Activity的显示内容跟是由View对象提供的,View对象继承自View类,其中每个View对象管理屏幕中的一个矩形区域。Android自带了许多View对象,而除了使用Android自带的View外,还可以自定义View。
例子:
MyView.java:package qijia.si;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.View;public class MyView extends View {Paint paint;public MyView(Context context){super(context);paint = new Paint();paint.setColor(Color.WHITE);paint.setTextSize(20);paint.setAntiAlias(true);}protected void onDraw(Canvas canvas){super.onDraw(canvas);canvas.drawColor(Color.GRAY);canvas.drawRect(10,10,110,110, paint);canvas.drawText("fuck you", 60, 170, paint);}}MyAndroidProject.java:package qijia.si;import android.app.Activity;import android.os.Bundle;public class MyAndroidProject extends Activity { /** Called when the activity is first created. */MyView myView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myView = new MyView(this); this.setContentView(myView); }}3.Service
package qijia.si;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.telephony.PhoneNumberUtils;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MyAndroidProject extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bCall = (Button)this.findViewById(R.id.Button01); bCall.setOnClickListener( new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubEditText eTel = (EditText) findViewById(R.id.myEditText); String strTel = eTel.getText().toString(); if(PhoneNumberUtils.isGlobalPhoneNumber(strTel)){ Intent i = new Intent(Intent.ACTION_DIAL,Uri.parse("tel://"+strTel)); MyAndroidProject.this.startActivity(i); }else{ Toast.makeText( MyAndroidProject.this, "号码格式不正确", 5000 ).show();}} } ); }}