当前访客身份:游客 [ 登录  | 注册加入尚学堂]
启用新域名sxt.cn
新闻资讯

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

helloworld 发表于 2年前  | 评论(1 )| 阅读次数(842 )|   0 人收藏此文章,   我要收藏

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

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

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

 

Activity的状态如下图所示:

android_activity_lifecycle

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

image

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

image

切换回App

image

点击返回键

image

 

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挺好玩的,至少能扩展软件研发的思路。

分享到:0
关注微信,跟着我们扩展技术视野。每天推送IT新技术文章,每周聚焦一门新技术。微信二维码如下:
微信公众账号:尚学堂(微信号:bjsxt-java)
声明:博客文章版权属于原创作者,受法律保护。如果侵犯了您的权利,请联系管理员,我们将及时删除!
(邮箱:webmaster#sxt.cn(#换为@))
北京总部地址:北京市海淀区西三旗桥东建材城西路85号神州科技园B座三层尚学堂 咨询电话:400-009-1906 010-56233821
Copyright 2007-2015 北京尚学堂科技有限公司 京ICP备13018289号-1 京公网安备11010802015183