Android系统简介(下):运行原理

Android的Application组件包括四大组件,Activity、Service、Broadcast Receiver、Content Provider。这些组件彼此相依,但每个组件有不同的目的,并发挥着特殊作用。在app中使用这些组件可以帮你快速设计应用程序。所有的这些在AndroidManifest.xml文件中定义。

1 Activity:负责前台页面的展示

一个Activity即是UI上的单独的屏幕,对使用者而言。如,如日历的App有一个Activity,用于显示当天的列表。简而言之,一个App即是有若干Activity组合而成。

 

Activity的状态如下图所示:

android_activity_lifecycle  Android系统简介(下):运行原理 android activity lifecycle thumb

  • onCreate(): 当activity 被首次创建调用.
  • onStart(): 调用后activity 对用户而言可见
  • onResume(): 用户和activity交互.
  • onPause(): 用户选择切换App会触发该事件
  • onStop(): 调用后activity 对用户而言不可见
  • onDestroy(): 系统消耗activity 则调用此函数
  • onRestart(): 当activity 重新被调用触发
    对App启动、切换App、切换回App、点击返回键四种情况分别用logCat截图:
    App启动

image  Android系统简介(下):运行原理 image thumb

选择其他的App (为什么是2个App我也不清楚)

image  Android系统简介(下):运行原理 image thumb1

切换回App

image  Android系统简介(下):运行原理 image thumb2

点击返回键

image  Android系统简介(下):运行原理 image thumb3

 

2 Service: 负责需要长期运行的任务

Service运行在后台,长期运行,没有UI界面,相对Activity状态很简单,Start或者Stop即可。Activity可启动或停止Service。如,Web浏览器下载的任务。

系统Service不能被停止,否则会导致Android系统不稳定。

3 Broadcast Receiver :广播订阅

该组件的作用是在Android App中订阅系统广播。例如,当照相机完成照片拍照或视频录制。如,电池电量低、无网络等。或者当你在使用APP,这时有电话呼入。广播订阅会通知你发生的广播事件,然后你可用代码处理这些中断。Broadcast

Receiver 组件和Service一样,并没有UI可视界面。在不同的App间你也可以发送你自己的广播消息。

4 Content Provider:内容提供者

在APP和共享数据间,该组件充当中介,如数据存储在设备SD卡、SQLite或者云上。该组件相当于数据库的增、删、改、查行为。如当一个APP需要查询通讯录,则通讯录的Content Provider监听并响应该请求,进行通讯录数据检索并返回给App的Activity。

 

Intents:运行时在不同的组件间的异步消息。简言之,App可用Intents调用其他Application。如,在你的APP中,使用Intents发起Call Phone行为。

综上所述,Android用户在UI上操作的是Activity,Service是一个背景进程,broadcast receiver用于接收广播,content

providers用于存储、接收数据。

———————————————————-

总结:

Android是一个巨大浩瀚的大海,值得探索和学习,且Android操作系统是开源的,尤其适合对编程求甚解的大牛们学习。我个人在工作中并未遇到移动手机开发的需求,但是我认为做软件开发的,有时间写1、2个能在手机上运行的App挺好玩的,至少能扩展软件研发的思路。

Avatar

Author: Instagram老王

学习心得、技术分享、Instagram社交营销技术攻坚。