Android应用程序的粘合剂——intent
2010-10-14 06:31:00 来源:本站整理(未来一段时间需要研究Android应用程序的开发,主要是培训应用程序开发工程师,如果谁有兴趣加入我们公司,非常欢迎。)
Android应用程序是由Activity、Service、Broadcast receiver、Content provider组成,但是这些组件的粘合剂是intent。本文简单介绍一下intent的使用和特点。
整个Android系统的设计思想就是设计模式里面的代理模式。所有的应用程序都向系统进行注册其所持有的组件(Activity、Service、 Broadcast receiver、Content provider),每个组件能够处理的Intent等等(需要注册的内容还很多,比如应用程序所持有的权限等)。Android应用程序通过 AndroidManifest.xml向系统注册。这样Android系统就知道了系统中所有的组件,和每个组件所有能够处理的intent,这样当应用程序需要启动其他组件的时候,只是简单的抛出一个消息给Android系统就可以了,不需要关心具体哪个应用程序的组件来处理这个消息,因为系统会根据你的intent请求来查询系统中有能力处理这个intent的应用程序组件。比如如果你想打一个电话的话,只需要抛出一个ACTION_CALL的intent就可以了,Android系统自动会把电话应用程序启动起来,并把这个消息分发给电话应用程序进行拨号。
另外我们可以看到,这里应用程序如果需要一些功能的时候,不需要自己实现,只需要向系统请求就可以。由系统来决定那个应用程序组件来为你服务。非常有可能是另外一个应用程序的组件为你服务。
Android每个应用程序(APK)都运行在一个进程中,通过intent,会发现这涉及到进程间通信。Android系统是通过binder机制实现的进程间通信。当有intent请求需要其他应用程序来处理的时候,Android系统将会通过Binder机制,启动相应的程序来处理,然后处理结果再通过Binder机制返回给发起应用程序。所以说binder机制是Android应用程序的基础,如果没有binder机制,Android应用程序开发将是另外一番景象。Binder机制Simon也正在学习,当有心得的时候再和大家交流。当然Binder本身应用程序开发人员很少会用到,但是作为应用程序开发人员一定要知道他的存在。可以使你对Android应用程序有更深刻的认识。
本文没有详细介绍intent的使用,这个大家请参考Intents and Intent Filters。本文只是谈一下自己对intent作用的认识,如有错误之处,请各位网友指正。
另外如果大家对binder有兴趣的话,可以推荐以下两篇文章参考。
http://blog.csdn.net/maxleng/archive/2010/04/15/5490770.aspx
http://www.limodev.cn/blog/archives/777
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
赞助商链接