Android开发艺术探索 第2章 IPC机制(部分内容)

IPC: Inter-Process Communication进程间通信。

1.在Android中使用多进程的方法:在四大组件的AndroidManifest中指定android:process属性

          
             
                  
                
             
          
          
              android:process=":remote"/>
          
             android:process="com.example.suwei.hhh"/>

现在打开MainActivity--SecondActivity--ThirdActivity, 输入 adb shell ps | grep com.example.suwei 查看包名为com.example.suwei的进程:

(未指定process的Activity的默认进程名为包名com.example.suwei.mytest)

Android开发艺术探索 第2章 IPC机制(部分内容)_第1张图片

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

在多进程模式中,不同进程的组件拥有独立的虚拟机,Application和内存空间。

2.Parcelable接口

public class User implements Parcelable {
    public int userId;
    public String userName;
    public boolean isMale;
    public User(int userId,String userName,boolean isMale){
        this.userName = userName;
        this.userId = userId;
        this.isMale = isMale;
    }
    public int describeContents(){
        return 0;
    }
    public void writeToParcel(Parcel out,int flags){
        out.writeInt(userId);
        out.writeString(userName);
        out.writeInt(isMale ? 1 : 0);
    }
    public static final Parcelable.Creator CREATOR = new Parcelable.Creator(){

        @Override
        public User createFromParcel(Parcel source) {
            return new User(source);
        }

        @Override
        public User[] newArray(int size) {
            return new User[size];
        }
    };
    private User(Parcel in){
        userId = in.readInt();
        userName = in.readString();
        isMale = in.readInt() == 1;
    }
}

 

转载于:https://www.cnblogs.com/whysu/p/6951300.html

你可能感兴趣的:(Android开发艺术探索 第2章 IPC机制(部分内容))