无法理解 AOSP IPackageManager.java 中的此 JAVA 语句

Cannot understand this JAVA statement in AOSP IPackageManager.java

在 AOSP 上跟踪安装过程时,我遇到了这些行,但我无法理解它们的作用。 (我不是 java 编程的新手,也不是完全专业的 java 开发人员)

@Override public void installPackage(java.lang.String originPath, android.content.pm.IPackageInstallObserver2 observer, int flags, java.lang.String installerPackageName, android.content.pm.VerificationParams verificationParams, java.lang.String packageAbiOverride) throws     android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeString(originPath);
_data.writeStrongBinder((((observer!=null))?(observer.asBinder()):(null)));
_data.writeInt(flags);
_data.writeString(installerPackageName);
if ((verificationParams!=null)) {
_data.writeInt(1);
verificationParams.writeToParcel(_data, 0);
}
else {
_data.writeInt(0);
}
_data.writeString(packageAbiOverride);
mRemote.transact(Stub.TRANSACTION_installPackage, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}

在上面这段代码中,try 块中的行是做什么用的?特别是行 _data.writeStrongBinder... 是做什么的?感谢任何有助于理解此代码的指示!

_data 是一个 Parcel 对象。您可以查看 API 文档 here

ps.: 你可以安装 Codota。我实际上可以单击您的代码并查看文档。所以你已经回答了你自己的问题 ;)