【发布时间】:2013-05-07 16:10:53
【问题描述】:
文档说明:
如果您想通过 IPC 接口将一个类从一个进程发送到另一个进程,您可以这样做。但是,您必须确保您的类的代码可用于 IPC 通道的另一端,并且您的类必须支持 Parcelable 接口。
如果我向客户提供.java 文件,一切正常。但我想知道是否有办法传递.class 文件,或者任何其他方式来隐藏源代码。
【问题讨论】:
标签: android ipc parcelable aidl
文档说明:
如果您想通过 IPC 接口将一个类从一个进程发送到另一个进程,您可以这样做。但是,您必须确保您的类的代码可用于 IPC 通道的另一端,并且您的类必须支持 Parcelable 接口。
如果我向客户提供.java 文件,一切正常。但我想知道是否有办法传递.class 文件,或者任何其他方式来隐藏源代码。
【问题讨论】:
标签: android ipc parcelable aidl
但我想知道是否有办法传递 .class 文件或任何其他方式来隐藏源代码。
运送一个包含您的 Parcelable 类的 JAR 应该可以,虽然我还没有尝试过。
另外,请记住版本控制会成为一个问题——如果您更改了这些类,但它们没有更新其 JAR,该怎么办?这种复杂性是我不建议以这种方式在应用程序之间分配 Parcelable 对象的原因。
【讨论】:
.java,我不会有同样的问题吗?
Parcelable 对象的原因。
Parcelable 定义 AIDL 接口。传递简单值(整数、字符串等)或使用平台提供的Parcelable 类,如Bundle。或者,永远不要更改自定义 Parcelable 类的定义。或者,完全放弃 AIDL 并切换到带有服务的命令模式(startService() 和 Intent extras)。
Parcelable,您可以并且可能应该在包裹化表示中添加一个版本号。然后至少接收者可以检测到错误,而不是曲解数据和崩溃(或更糟糕的是,暴露安全漏洞)。