android 学习----------------ipc知识点

简介:
IPC:Inter-Process Communication  含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。


进程:一般指一个执行单元,在PC和移动设备上指一个程序或者一个应用。


线程:CPU调度的最小单元,同时线程是一种有限的系统资源,一个几进程可以有多个线程。


注意:在android中主线程也叫UI线程,不可以做耗时任务,否则会引发ANR:Application Not Responding   


为何要多进程:


第一:一个应用因为某些原因需要采用多进程模式来实现,比如APP中广告拦截和下载,需要运行在单独的进程中,避免这些模块死掉而影响主程序Crash,其他情况还有比如插件 模块。
第二:为了加大一个应用可使用的内存空间需要多进程来获取多分内存空间。
第三:当前应用需要向其他应用获取数据。


如何开启多进程:


方法一:给四大组件指定android:process属性,


    注意:
android:process="com.yxx.ipc.remote"和android:process=":remote"
这两种方式的区别在于:
    第一:进程名不同:一个是com.yxx.ipc.remote  另一个是com.yxx.ipc:remote
  第二:使用:的为简写,含义是指要在当前的进程 名前面附上当前的包名。另一种则不会。
  第三:进程以 : 开头的属于当前应用的私有进程,其他应用的组件不可以和他跑在同一个进程中,而进程名不是 : 开头的进程属于全局进程,其他应用通过ShareUID方式可以和他跑在同一个进程中。
方法二:非常规方法,通过JNI在native层去fork一个新的进程。(fork  拷贝一个)


带来的问题:


(1) 静态成员和单例模式完全失效。
(2) 线程同步机制完全失效。
(3) SharePreferences的可靠性下降。
(4) Application 会多次创建。
这里说一下第四点,运行在同一个进程中的组件是属于同一个虚拟机和同一个application的,同理,运行在不同进程中的组件是属于不同的虚拟机和不同的application的。


IPC机制基础知识
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值