欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 多进程的利弊分析

程序员文章站 2022-05-02 23:45:39
多进程的使用方法: 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的管理在多进程内也会存在问题。难度系数:★★★