一.Android应用程序类型:

(1)前台应用程序--需要考虑Activity的生命周期

        只能运行在前台的应用,当他不可见时就会被挂起,例如:游戏应用;

(2)后台应用程序--Service 和 BroadcastReceiver是后台应用程序的驱动者

        交互非常有限的一个应用,除非在配置期间,的其他生命期间都是隐藏的,例如:闹钟;

(3)间歇性应用程序--Activity、Service 和 BroadcastReceiver、以及Notification联合使用

        当应用可见时,更新UI;当应用不可见时,则发通知(或其他方式)来告知最新动态给用户;

(4)Widget 和 Live Wallpaper:

        可以创建一些交互式的可见组件,位于用户主屏幕,Widget主要用于显示动态信息,例如:天气、电池电量、时间日期等;


二.Android应用程序的组成部分

    介绍一下组件:

    1.Activity--实现UI,使用View或Fragment来布局和显示信息,以及响应用户动作;

    2.Service--不可见,可以更新数据源和Activity,可以触发通和广播Intent;

    3.ContentProvider--一个可共享的持久数据存储器。他是应用程序之间共享数据的首选,可以配置自身应用的CP来提供给其他应用使用,也可以使用其他应用提供的CP,Android本地提供CP的有很多,例如:联系人信息,媒体库信息等;

    4.Intent--一个强大的应用程序间的消息传递框架。也可启动/停止Activity、Service。也可以广播消息;

    5.BroadcastReceiver--Intent监听器。可以自动的启动应用程序来响应某个收到的Intent,多用于事件驱动的应用程序;

    6.Widget--是BroadcastReceiver的特殊变体;

    7.Notification


三.Android 的Activity

  1. Activity+布局+视图+Fragment = UI;

  2. Activity栈

(1)每个Activity的状态由其在Activity栈中的位置决定;

(2)Android内存管理器再决定终止哪个应用程序来释放资源时,也是通过Activity栈来决定Activity的优先级的,进而决定终止哪个应用程序;

(3)Activity栈是当前所有正在运行的Activity后进先出的集合;

Android(1)--Application和Activity_第1张图片

    3.Activity状态

(1)活动状态--位于栈顶、可见、具有焦点、可以接受用户输入;

        Android会不惜一切代价的来保持他的活动状态,必要时销毁下部的Activity以释放资源供其使用;

        当另外一个Activity活动时,他将处于暂停状态;

(2)暂停状态--一般情况下可见、但是没有焦点、不能接收用户的输入事件;

        在极端的情况下才会被系统收销毁来释放资源;

        当他完全不可见时,则处于停止状态;

(3)停止状态--可不见;

        仍处于内存中,并保留状态信息,但是当系统需要释放内存时,他们是首选对象;

        当Activity处于暂停/停止状态时,保存UI和数据信息非常重要;

(4)终止状态--退出或关闭的Activity、从栈中移除;

   

    4.Activity生存期与状态的监控

Android(1)--Application和Activity_第2张图片