Android学习笔记 - 《Android开发艺术探索》第二章 - IPC

第二章 IPC机制

2.1 Android IPC 简介

线程是资源分配的最小单元,有独立的地址空间;线程是CPU调度的最小单元,是一种有限的系统资源,没有自己的独立空间,而是共享所在线程的地址空间,但是拥有自己的局部变量和堆栈。

2.2 Android 中的多进程模式

2.2.1 开启多进程模式

Android中使用多进程的方法:在AndroidMenifest中给四大组件指定android:process属性。

实验测试

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".SecondActivity"
        android:process=":remote"/>
    <activity android:name=".ThirdActivity"
        android:process="com.abc.remote"/>

使用adb shell ps查看进程信息。

可以发现系统会为指定”:remote”分配进行名为”包名:remote”的进程,而为”com.abc.remote”分配进程名为”com.abc.remote”的进程。

第一种命名方式中”:”的含义是指要在当前的进程名前面附加上当前的包名,属于简写方法,而第二种命名方式是一种完整的命名方式,因而不会附加包名信息。

“:”开头的进程属于当前应用,其他应用的组件不可以和他跑在同一个进程中,而不以”:”开头的进程属于全局进程,其他应用可以通过ShareUID方式和他跑在同一个进程中。

2.2.2 多进程模式的运行机制

Android为每一个进程都分配了一个独立的虚拟机,不同的虚拟机在内存分配上有不同的地址空间。因而,访问同一个类的对象会产生多个副本,且创建新进程的过程相当于创建新的应用。

使用多进程所造成的问题:

  1. 静态成员和单例模式完全失效
  2. 线程同步机制完全失效
  3. SharedPreference的可靠性下降
  4. Application会多次创建

2.3 IPC 基础概念介绍

2.3.1 Serializable接口

2.3.2 Parcelable接口

2.3.3 Binder

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值