应用程序的内容——概念性描述

一、运行在Linux环境下

 1、在默认情况下,每一个应用程序运行于他们的Linux进程中

 2、每个进程具有自己的虚拟机,每个应用程序运行于独立的环境中

 3、在默认情况下,没有应用程序具有唯一的Linux用户id。通过设置权限让应用程序只对用户和应用程序本身可见,也有一些方法可以让他们暴露给其他应用程序

二、组成部分(活动、广播接收器、服务、内容提供者)

1、Activity,每个活动都被实现为一个独立的类,并从活动基类中继承而来,活动类将会显示由视图(View)控件组成的用户接口,并对事件(Event)做出响应。

2、BroadcastReceiver,用于让应用程序对一个外部事件做出响应。例如,电话呼入事件、数据网络可用通知等

3、Service,一个服务是一个具有一段较长生命周期但没有用户界面的程序。例如,一个正在从播放列表中播放歌曲的媒体播放器在后台运行

4、ContentProvider,一个内容提供者类实现一组标准的方法,从而能够让其他应用程序保存或读取此内容提供者出来的各种数据类型。(应用程序能够将他们的数据保存到文件或SQLite数据库中,甚至是任何游戏的设备中)

三、生命周期

android进程的类型包括(按执行的优先级)

1、前台(Foreground)进程

  与用户当前正在做的事情密切相关,不同的应用程序组件能够通过不同的方法使他的宿主进程移到前台。当下面任何一个条件满足时,都可以考虑将进程迁移到前台

  1>进程正在屏幕的最前端运行一个与用户交互的Acitivity(它的onResume()方法被调用)

  2>进程有一个正在运行的BroadcastReceiver(它的BroadcastReceiver.onReceive()方法正在执行)

  3>进程有一个Service,并且在Service的某个方法(Service.onCreate()、Service.onStart()或者Service.onDestroy())内有正在执行的代码

2、可见(Visible)进程

  它有一个可以被用户从屏幕上看见的Acitivity,但不在前台——其onPause()方法被调用。(这样的进程很重要,一般不允许被杀死,除非为了保证前台进程的运行不得不这样做)

3、服务(service)进程

  有一个已经用startService()方法气得的Service,虽然这些进程用户无法直接看到,但它们做的事情却是用户所关心的。(系统将一直运行这些进程,除非内存不足以维持所有的前台进程和可见进程)

4、后台(background)进程

 拥有一个当前用户看不到的Acitivity(它的onStop()方法被调用),这些进程对用户体验没有直接的影响。如果它们正确执行了Activity生命周期,系统可以在任意时刻杀死进程来回收内存,并提供给前面3种类型的进程使用。系统中通常有很多这样的进程在进行,因此要将这些进程保存在LRU列表中,以确保当内存不足时用户最近看到的进程最后一个被杀死。

5、空(Empty)进程

  不包含任何处于活动状态的应用程序组件。保留这种进程的唯一原因是,当下次应用程序的某个组件需要运行时,不需要重新创建进程,这样可以提高启动速度。

 

活动的生命周期

1>运行活动的情景:当一个活动被启动时,活动中的onCreate()、onStart()、onResume()方法被依次调用,活动对应的界面出现在屏幕上

2>活动被“覆盖”的情景:android的活动一般都占据一个完整的屏幕,从当前活动启动另一个活动时,另一个活动将被启动到前台,当前活动转入后台,这时的onPasuse()方法将被调用,活动转入后台运行。如果活动变为不可见,还将调用onStop()方法。

3>活动被恢复的情景:当界面上最前面的活动退出后,它所覆盖的活动将被恢复,这时onResume()方法将被调用,活动重新转入前台运行

4>活动完全退出的情景:当使用回退(Back)按钮退出活动时,onDestroy()方法将被调用,活动关闭。如果系统缺少内存,也会杀死后台的活动,其中优先杀死不可见的活动,可见的活动一般不会被杀死

服务的生命周期

1>使用startService运行服务的情景:使用这种方法启动服务,服务的onCreate()和onStart()两个方法将被依次调用, 服务会在后台运行直到退出,退出时将调用onDestroy()方法

2>使用bindService运行服务的情景:使用这种方法启动服务,调用者(客户端)将获得和服务交互的类,通过其调用时服务的相关内容会处于活动状态。

广播接收器的生命周期

广播接收器有一个单一的回调方法onReceive(),当广播消息到达接收器,android将调用这个方法,并传递给包含在这个消息中的Intent对象。广播接收器只有在这个方法的执行过程中才处于活动状态,当onReceive()返回后,将不再处于活动状态。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值