第2章 IPC机制

  1. android一个应用可以有多个进程,多进程就是给四大组件的清单文件只定android:process属性。以”:”开头属于当前应用私有进程,指定包名的进程只能通过shareuid并且两个应用相同才能共享数据。
  2. 每一个进程都分配了对立的虚拟机,存在着不同的内存地址。使用多进程可能造成 1)静态成员和单例模式完全失效 2)线程同步机制完全失效 因为无法保证锁对象线程同步 3)sharepreference的可靠性降低读取存在并发 4)application 会多次创建
  3. 实现跨进程可以通过 intent传递,共享数据和sp,基于binder的messenger和AIDL和socket。
  4. serializable和parcelable完成对象的持久化,在网络传输和存储使用,serialVersionUID不是必须的但是在反序列化具有作用指定为1L。parcelable是android独有的序列化方式,推荐使用。
  5. 使用bundle附加信息并通过intent发送。bundle支持序列化的数据,比如基本类型,序列化的数据对象,一些安卓特殊对象。
  6. 使用file共享数据,尽量避免并发写thread的对象操作或者考虑线程同步限制多个线程的写操作。shareprefrence特殊在多进程下有缓存策略,读写不可靠。
  7. 使用messenger好处在于不用考虑线程同步。1)服务端进程 需要在服务端创建一个service并创建一个handler来创建一个messenger对象然后在onbind返回messenger对象。 2)客户端进程 绑定服务端service用服务端的IBinder创建一个messenger。
  8. 使用AIDL适合处理大量并发请求。1)服务端创建一个service并创建一个AIDL暴露接口给客户端 2)客户端绑定服务端的service将binder对象转化成AIDL接口所属类型,调用aidl的方法。
  9. 使用service创建socket,实现tcp服务端监听本地端口。客户端监听ip地址和端口。当acitvity退出要关闭socket,shutdownInput();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值