Android程序的什么周期
Android程序的什么周期是指在Android系统中,进程从启动到终止的所有阶段,即Android程序从启动到停止的全过程。Android程序的生命周期是由系统控制,而非程序自身直接控制。
优先级从高到低:前台、可见、服务、后台、空进程
前台进程:
前台进程是Android系统中最重要的进程,它是与用户正在进行交互的进程。这样的进程重要性最高,一般情况下,系统中只有少数这样的进程。除非系统内存非常低,否则系统不会选择终止前台进程。
满足前台进程的条件:
进程正在最前段运行一个和用户交互的Activity[Activity 的onResume()方法被调用].
进程中有一个正在进行的BroadcastReceiver[BroadcastReceiver.onReceive()方法正在被执行】。
进程中有一个Service,并且在Service的某个回调函数内有正在执行的代码。
可见进程
可见进程是指部分程序界面能够被用户看见,却不能在前台与用户交互,不响应界面时间的进程。一般情况下,Android系统会存在少量的可见进程,只有在极端的情况下,Android系统才会为保证前台进程的资源而清楚可见进程。
一般情况,满足一下条件之一即可视为可见进程
有一个非前台但是仍然对用户可见的Activity[Activity的onPause()方法被调用】。
具有一个绑定到可见Activity的Service.
服务进程:
服务进程是拥有Service的进程。这些进程通常在后台,并且对用户是不可见的,但是他可以长期运行,提供用户所关心的重要功能。
后台进程
后台进程运行着对用户不可见的Activity[Activity的onStop()方法被调用],这些进程对用户体验没有直接的影响。
空进程
空进程是不包括任何活动组件的进程,程序可能随时关闭这类进程
Android程序的基本组件
Android应用程序通常由一个或多个基本组件组成,组件式可以被调用的基本功能模块。Android程序利用组件实现程序内部或程序间的模块调用,以解决代码复用的问题,这是Android程序非常重要的特性。
Android有四大基本组件:Activity,BroadcastReceiver,Conent Provider和Service
Activity
它是为用户操作而展示的可视化用户界面,一个Android应用可以只有一个Activity,也可以包含多个。
Activity窗口显示的可是内容是有一系列视图构成的,这些视图均继承自View基类。每个视图均控制着窗口中一块特定的矩形空间,父级视图包含并组织其子视图的布局,而底层视图则在他们控制的矩形中进行绘制,并对用户操作做出响应,所以视图是Activity与用户进行交互的界面。比如说,开发人员可以通过视图显示一张图片,然后在用户单击它时产生相应的动作。
Service
Service是服务的意思,它没有可视化的用户界面,而是在一段时间内在后台运行的程序。
BroadcastReceiver
是一个专注于接收广播通知信息,并做出对应处理的组件。所有的广播接收器均继承自BroadcastReceiver基类。
广播接收器没有用户界面,然而,它们可以启动一个Activity来响应它们收到的信息,或者用NotficationManager来通知用户。
ContentProvider
ContentProvider是应用程序之间共享数据的一种接口机制它是一种更为高级的数据共享方法,可以指定需要共享的数据,而其他应用程序则可以在不知道数据来源、路径的情况下,对共享数据进行操作。
在Android程序中,共享数据的实现需要继承自Content Provider基类,该基类为其他应用程序使用和存储数据实现了一套标准方法。然而,应用程序并不直接调用这些方法,而是使用一个ContentResolver对象,并通过调用它的方法作为替代,ContentResolver对象提供了query()、insert()、update()和delete()等方法,它可以对共享的数据执行各种操作。
Activity生命周期
四种状态
Running
Paused
Stopped
Kill
Activity从活动状态可以转换为暂停状态或者停止状态,而暂停状态又可以转换为停止状态;活动状态、暂停状态和停止状态都可以转换为Killed状态,而Killed状态也可以转换为活动状态。
onCreate()方法:在创建Activity时被回调。
Log类的常用方法及说明
v():输出VERBOSE冗杂日志信息,使用黑色的文字表示
d():输出DEBUG故障日志信息,使用蓝色的文字表示
i():输出INFO通告信息,使用绿色的文字表示
w()输出WARN警告日志信息,使用橘黄色的文字表示
e():输出ERROR错误日志信息,使用红色的文字表示
每个输出日志的方法都有两个必选的参数,分别是String类型的tag和msg参数;
其中tag用于为日志信息指定标签,它通常指定为当前类名或者Activity的名称;msg用于表示要输出的字符串日志信息,它可以使用java字符串连接操作符连接出需要的信息。除了这两个参数外,还可以加上Throwable实例参数,用于当应用抛出异常时异常信息。
Eclipse调试器调试
使用Eclipse的Java调试器需要设置程序端点,然后使用单步调试分别执行程序代码的每一行。
断点
设置断点是程序调试中必不可少的有效手段,Java调试器每次遇到程序端点时都会将当前线程挂起,即暂停档期啊程序的运行