为什么android要使用跨进程通信?

liqing338 2012-12-29 03:33:13
本人有点不是很清楚,为什么android要使用跨进程去通信呢?例如一个应用程序,将service不运行在app所分配的进程里面,而是运行在另个一进程里面,是不是为了将一些复杂的操作所需要的内存在单独的进程里面,照样相当于两倍的运行内存,错开app进程的内存吗?

还是有其他的什么原因呢??
...全文
1157 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnysq2010 2013-01-04
  • 打赏
  • 举报
回复
学习下了:)
b87936260 2013-01-04
  • 打赏
  • 举报
回复
Service另起进程有个好处,因为service和app生命周期不一样,分开有利于内存回收!
passself 2013-01-04
  • 打赏
  • 举报
回复
一般来说跨进程通信是不安全的,但是android的提供的binder机制是比较安全的,做了很多工作,内存自然会占用不少,越是上层越是耗资源,如果单单是linux的跨进程我想应该会少用内存至少一半以上
傲慢的上校 2013-01-04
  • 打赏
  • 举报
回复
到现在 还没有理解binder的路过。。。
沧海月明 2013-01-03
  • 打赏
  • 举报
回复
这涉及到Android的基本设计思想。Android架构师的设计理念是构造一个平坦的功能世界,所以必须打破以前相对孤立的App机制,于是,在Android应用层次,进程的概念就被大幅度地弱化了。然而,程序毕竟还是要在一个个进程上面运行的,所以必须在底层提供一种跨进程的通信机制,那就是binder机制。
麦田捕手 2013-01-03
  • 打赏
  • 举报
回复
引用 2 楼 tf110012 的回复:
方便啊,打个比方吧,如果新浪app将业务逻辑放在自己的服务中,再使用aidl将接口公开,那第三方开发者程在开发新浪微博时,最简单的方案就是直接启动新浪官方app中的服务,所有工作都交给新浪app,比整合sdk简单太多了。 当然新浪并没有这么做,但是类似的app还是有的,比如google的自己的应用内购买,就是用aidl调用的google play中的服务,简化了开……
学习了!
WoShi3Ge 2013-01-03
  • 打赏
  • 举报
回复
据了解,ANDROID放弃了LINUX里使用的虚拟内存,也就是你说的那2倍的内存空间。主要是为了各个应用间的相互通信功能,楼上正解。
流星叶雨 2012-12-29
  • 打赏
  • 举报
回复
方便啊,打个比方吧,如果新浪app将业务逻辑放在自己的服务中,再使用aidl将接口公开,那第三方开发者程在开发新浪微博时,最简单的方案就是直接启动新浪官方app中的服务,所有工作都交给新浪app,比整合sdk简单太多了。 当然新浪并没有这么做,但是类似的app还是有的,比如google的自己的应用内购买,就是用aidl调用的google play中的服务,简化了开发工作
starl1985 2012-12-29
  • 打赏
  • 举报
回复
你需要去看下binder的通讯机制就知道为什么了

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧