Android 多进程的利弊分析

多进程的使用方法:

Android多进程概念:一般情况下,一个应用程序就是一个进程,这个进程名称就是应用程序包名。我们知道进程是系统分配资源和调度的基本单位,所以每个进程都有自己独立的资源和内存空间,别的进程是不能任意访问其他进程的内存和资源的。

如何让自己的应用拥有多个进程:

      四大组件在AndroidManifest文件中注册的时候,有个属性android:process这里可以指定组件的所处的进程。

      默认就是应用的主进程。指定为别的进程之后,系统在启动这个组件的时候,就先创建(如果还没创建的话)这个进程,然后再创建该组件。打印出它的进程名称:重载Application类的onCreate方法即可。

     设置android:process属性,要注意:如果是android:process=”:deamon”,以:开头的名字,表示这是一个应用程序的私有进程,否则它是一个全局进程。私有进程的进程名称是会在冒号前自动加上包名,而全局进程则不会。一般我们都是有私有进程,很少使用全局进程。


多进程App的优点:

首先,多一个或多个进程android应用的可用内存可以成倍的增加,多余一些消耗内存的应用来说是比较好的解决方案,例如图片视频处理,安全扫描等等;

其次,多个进程应用在被系统low memory killer终止时,可以尽量让应用的某个进程能存活;

最后,多进程的应用可以尽量做到一定程度的互相保活。


多进程App的缺点:

问题一:多进程的应用初始化是同一个入口,需要根据进程判断和区分初始化动作。难度系数:★

问题二:进程间通讯的复杂度要大于线程间通讯,当然手段有很多可以解决。AIDL和Broadcast都可以解决这个问题,但是到遇到传递大数据时你会发现基于Binder的这两种实现方式也会遇到问题。难度系数:★★

问题三:进程间数据访问不同步,受限于sqlite和sharedpreference的功能,多进程对于这两个存储介质的访问会导致数据不同步的问题产生。如果用到webview你会发现cookiemanager对于cookie的管理在多进程内也会存在问题。难度系数:★★★


猜你喜欢

转载自blog.csdn.net/u012248802/article/details/79706182
今日推荐