Android的Application组件包括四大组件,Activity、Service、Broadcast Receiver、Content Provider。这些组件彼此相依,但每个组件有不同的目的,并发挥着特殊作用。在app中使用这些组件可以帮你快速设计应用程序。所有的这些在AndroidManifest.xml文件中定义。
1 Activity:负责前台页面的展示
一个Activity即是UI上的单独的屏幕,对使用者而言。如,如日历的App有一个Activity,用于显示当天的列表。简而言之,一个App即是有若干Activity组合而成。
Activity的状态如下图所示:
- onCreate(): 当activity 被首次创建调用.
- onStart(): 调用后activity 对用户而言可见
- onResume(): 用户和activity交互.
- onPause(): 用户选择切换App会触发该事件
- onStop(): 调用后activity 对用户而言不可见
- onDestroy(): 系统消耗activity 则调用此函数
- onRestart(): 当activity 重新被调用触发
- 对App启动、切换App、切换回App、点击返回键四种情况分别用logCat截图:
- App启动
选择其他的App (为什么是2个App我也不清楚)
切换回App
点击返回键
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挺好玩的,至少能扩展软件研发的思路。