初识Android中的IPC

IPC全称为Inter-Process Communication,进程间通信,在Android系统中每个应用程序都是在自己独立的一个进程中跑的,系统为每个进程分配了各自的虚拟机,这样每个进程都有独立的内存,保证app之间互不干扰。

一般情况下,我们在开发中使用多进程技术都是在一个app中,就是让指定的组件(承担耗时、占内存的任务)运行在另外一个进程当中,当然也可以使用Service,但是Service默认是运行在主进程的主线程当中的,这样会使app的可用内存减少。而对于新开一个进程,我们的app相当于有两个进程,新开的那个进程不会影响到我们的主进程,比如内存使用方面,Android系统为每一个app运行是分配的内存都是特定的,当然也和不同的手机也是有关的。还有就是当用户按了home键,把我们的app处于后台时,一旦用户之后打开了很多其他应用,系统就会开始杀掉一些内存占用高的进程(这只是系统在回收进程逻辑的一点而已),而当我们把一个app分离出两个进程时,被杀的几率相对来说会更低些。

在Android的同一个app中开启多进程是很简单的,只需要在指定的组件下的process属性赋予一个值就可以了,如下:

<activity
      android:name=".ProcessActivity"
      android:label="@string/title_activity_process"
      android:process=":remote"
      >
</activity>
为process属性设置一个值“:remote”,这样就告诉了系统,当用户打开ProcessActivity时,ProcessActivity运行在另外一个名字是package_name+remote的进程当中。还有一种设置process属性值的方式,android:process=" package_name.your custom process name",这种是完整的命名方式。之前那种方式创建的进程是属于app的私有进程,其他应用的组件不可以和它跑在同一个进程中,而后者命名方式创建的进程属于全局进程,其他应用通过ShareUID方式可以和他跑在同一个进程中。

需要注意的是,如果在一个app中开启两个进程的话,application会被创建两次,这是因为当一个组件跑在一个新的进程中的时候,由于系统会为这个新的进程分配一个单独的虚拟机让它运行,这相当于是重新打开了我们的app一次,所以application肯定会再次创建。由于两个进程拥跑在不同的虚拟机中,用的不同的内存空间,所以是无法共享静态成员数据的。例如,app中有一个Book.class类,其中有一个静态的成员变量,我们在打开新的进程之前,改变这个静态成员变量的值,然后在新的进程中去获取该变量的值还是最初始的值,而不会是经过之前修改后的值,这是因为两个进程拥有不同的内存空间。

初识就先到这里吧~   嘿嘿


"sgmediation.zip" 是一个包含 UCLA(加利福尼亚大学洛杉矶分校)开发的 sgmediation 插件的压缩包。该插件专为统计分析软件 Stata 设计,用于进行中介效应分析。在社会科学、心理学、市场营销等领域,中介效应分析是一种关键的统计方法,它帮助研究人员探究变量之间的因果关系,尤其是中间变量如何影响因变量与自变量之间的关系。Stata 是一款广泛使用的统计分析软件,具备众多命令和用户编写的程序来拓展其功能,sgmediation 插件便是其中之一。它能让用户在 Stata 中轻松开展中介效应分析,无需编写复杂代码。 下载并解压 "sgmediation.zip" 后,需将解压得到的 "sgmediation" 文件移至 Stata 的 ado 目录结构中。ado(ado 目录并非“adolescent data organization”缩写,而是 Stata 的自定义命令存放目录)目录是 Stata 存放自定义命令的地方,应将文件放置于 "ado\base\s" 子目录下。这样,Stata 启动时会自动加载该目录下的所有 ado 文件,使 "sgmediation" 命令在 Stata 命令行中可用。 使用 sgmediation 插件的步骤如下:1. 安装插件:将解压后的 "sgmediation" 文件放入 Stata 的 ado 目录。如果 Stata 安装路径是 C:\Program Files\Stata\ado\base,则需将文件复制到 C:\Program Files\Stata\ado\base\s。2. 启动 Stata:打开 Stata,确保软件已更新至最新版本,以便识别新添加的 ado 文件。3. 加载插件:启动 Stata 后,在命令行输入 ado update sgmediation,以确保插件已加载并更新至最新版本。4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值