android进程间通讯方式
2015-09-29 19:52
381 查看
android进程间通讯方式
1、进程,android给每个组件Activity,Service,Brocast,等等都提供了process这个标签值,
我们可以定义这些UI组件在哪个process中运行。
2、android 中的service都是在独立的process中运行的。
脑补:service有两种启动方式,
一种是startService,一种是bindService 异同点:
两者的生命周期。
StartService
onCreate()--->onStartCommand()--->onDestory();
bindService
onCreate();----->onBind();---->onUnbind();--->onDestory();
因为service运行在Activity中,那么它们之间通过什么通讯的呢?
在启动Service的时候,我们通过Intent来启动它。
intent是android的消息机制,通过它我们可以相互之间发送Intent信息。
bindService的时候,我们有一个Ibinder的对象可以用来实现Activity和service之间的通讯。
但是如果我们面对这样的应用场景,一个音乐播放服务,我们需要多个应用程序都可以去共享操作它。
这个时候就要用到AIDL(android interface definition language)实现,具体实现方法:
定义一个interface AIDL接口,然后去获取该接口的Ibinder对象。
所以进程间通讯是通过通讯主要是通过binder实现的。
为什么要这样设计呢?
因为在Android中,默认一个应用程序在一个进程中运行,然后不同的进程有不同的内存存储空间。
我们进程间通讯不可能通过获取变量地址,或者说数据地址来实现。
因为两个进程之间是分离的,所以传输数据要通过Binder实现。
1、进程,android给每个组件Activity,Service,Brocast,等等都提供了process这个标签值,
我们可以定义这些UI组件在哪个process中运行。
2、android 中的service都是在独立的process中运行的。
脑补:service有两种启动方式,
一种是startService,一种是bindService 异同点:
两者的生命周期。
StartService
onCreate()--->onStartCommand()--->onDestory();
bindService
onCreate();----->onBind();---->onUnbind();--->onDestory();
因为service运行在Activity中,那么它们之间通过什么通讯的呢?
在启动Service的时候,我们通过Intent来启动它。
intent是android的消息机制,通过它我们可以相互之间发送Intent信息。
bindService的时候,我们有一个Ibinder的对象可以用来实现Activity和service之间的通讯。
但是如果我们面对这样的应用场景,一个音乐播放服务,我们需要多个应用程序都可以去共享操作它。
这个时候就要用到AIDL(android interface definition language)实现,具体实现方法:
定义一个interface AIDL接口,然后去获取该接口的Ibinder对象。
所以进程间通讯是通过通讯主要是通过binder实现的。
为什么要这样设计呢?
因为在Android中,默认一个应用程序在一个进程中运行,然后不同的进程有不同的内存存储空间。
我们进程间通讯不可能通过获取变量地址,或者说数据地址来实现。
因为两个进程之间是分离的,所以传输数据要通过Binder实现。
相关文章推荐
- Android开发指南
- Android系统中iptables的应用(二)BandwidthController
- Android之基于BaseAdapter和SimpleAdapter的GridView
- Android仿格瓦拉循环滚动View
- Android Studio 创建文件是 Create by administrator修改
- Android 开机启动
- 如何提高android代码的质量(CheckStyle、Findbugs、PMD、Lint)
- android中textvie中的文字间距属性设置
- (转)Android自定义统计图(柱状图,折线图,饼状图)
- android:windowSoftInputMode属性详解
- 19.Android 清除按钮EditText - AIEditText
- Android 布局学习
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- 【Android】【输入校验】输入框(EditText)过滤 Emoji 表情
- android系统通讯录源码--显示联系人添加长按事件监听