多进程

Android多进程使用很简单,只需要在AndroidManifest.xml的声明四大组件的标签中增加android:process属性即可,process分私有进程和全局进程,私有进程的名称前面有冒号,全局进程没有,全局进程可以与其他应用通过相同的SharedUID共享。

Android系统会为每个应用分配一个唯一的UID,具有相同UID的应用才能共享数据。两个应用通过ShareUID跑在同一个进程中是有要求的,需要这两个应用有相同的ShareUID并且签名相同才可以。在这种情况下,它们可以互相访问对方的私有数据,比如data目录、组件信息等,不管它们是否跑在同一个进程中。当然如果它们跑在同一个进程中,那么除了能共享data目录、组件信息,还可以共享内存数据,或者说它们看起来就像是一个应用的两个部分。

如果应用内有多个进程,每创建一个进程就会跑一次ApplicationonCreate方法,每个进程内存都是独立的。

不同进程之间内存不能共享,最大的弊端是他们之间通信麻烦,不能将公用数据放在Application中,堆栈信息、文件操作也是独立的,如果他们之间传递的数据不大并且是可序列化的,可以考虑通过Bundle传递, 如果数据量较大,则需要通过AIDL或者文件操作来实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,638评论 25 708
  • Android IPC简介 IPC是Inter-Process Communication的缩写,含义为进程间通信...
    最最最最醉人阅读 347评论 2 2
  • PS:这里不讨论两个应用之间的多进程情况。(喷子勿扰) PS:这里不讨论两个应用之间的多进程情况。(喷子勿扰) P...
    黎明前见彩虹阅读 391评论 0 0
  • 壹丨 嘿 女生别唧唧喳喳 做个安安静静的姑娘 人生要什么疯疯狂狂 长长短短不过这样 迷失在他人的期待和想象 是不是...
    依然breeze阅读 525评论 2 4
  • 负能量满满的一天。不知道你们怎么发泄,但我通常选择与妈妈通话,起初只是天南地北的聊,聊到最后就变成正能量了。重新燃...
    我是陶小样阅读 123评论 0 0