一直想搞清楚,一个人的多重人格之间,究竟是如何进行通信的。
一个应用中通常只有一个进程,这也是大部分的App的做法,很少有App的体量能够大的需要多进程来支撑。然而现在时代不同了,各种第三方服务,各种『黑科技』,很多东西,都需要利用多进程来进行架构,这类服务,例如XXX推送SDK,基本上会开一个新的进程,再例如一些Web容器,也会结合新的进程来使用,还有一些插件,运行在新的进程中,可以解决一些比较奇葩的问题。
那么单应用多进程架构,究竟有哪些好处呢?简单的说,我可以列举下面一些:
申明多进程非常简单,在对应的组件的Mainifest上添加process标签就好了,没有什么好说的,网上博客一大堆。
虽然多进程看上去好像很美,但是,单应用多进程的架构,也会给你的程序带来很多负面影响,简单的说,我也列举下面一些:
由上面可以看出,多进程之间,最麻烦的就是通信。Android系统给我们提供了AIDL来帮助开发者实现跨进程通信,但是要注意,现在很多很多的Android书籍,一讲到跨进程通信,就是AIDL,可是,这都什么年代了,跨进程通信的方式已经变革很多次了,当然最基础的,就是AIDL,接下来,还有对它进行封装的Messenger,再接下来,还有Broadcast和ContentProvider,甚至是Socket,这些都是可以用来进行跨进程通信的,特别是ContentProvider的call方法,有几个人知道可以用来进行跨进程通信的?所以请不要天天守着书上的知识,一定要与时俱进啊,下次面试被问到跨进程,可千万别直说AIDL了!