Android 向AIDL客户端提供可包裹对象的代码
文件规定: 如果您有一个类希望通过IPC接口从一个进程发送到另一个进程,您可以这样做。但是,您必须确保您的类的代码可用于IPC通道的另一端,并且您的类必须支持Parcelable接口 如果我向客户机提供Android 向AIDL客户端提供可包裹对象的代码,android,ipc,parcelable,aidl,Android,Ipc,Parcelable,Aidl,文件规定: 如果您有一个类希望通过IPC接口从一个进程发送到另一个进程,您可以这样做。但是,您必须确保您的类的代码可用于IPC通道的另一端,并且您的类必须支持Parcelable接口 如果我向客户机提供.java文件,一切正常。但是我想知道是否有一种方法可以传递.class文件,或者有其他方法隐藏源代码 但是我想知道是否有一种方法可以传递.class文件,或者有其他方法来隐藏源代码 运送一个包含Parcelable类的罐子应该可以,尽管我还没有尝试过 另外,请记住,版本控制成了一个问题——如果您
.java
文件,一切正常。但是我想知道是否有一种方法可以传递.class
文件,或者有其他方法隐藏源代码
但是我想知道是否有一种方法可以传递.class文件,或者有其他方法来隐藏源代码
运送一个包含Parcelable
类的罐子应该可以,尽管我还没有尝试过
另外,请记住,版本控制成了一个问题——如果您更改了这些类,而它们不更新它们的JAR会怎么样?这种复杂性就是为什么我不建议在应用程序之间以这种方式分发
Parcelable
对象的原因。如果它们不更新我提供的。java
,我就不会有同样的问题吗?@cYrus:是的。这就是为什么我不建议以这种方式在应用程序之间分发Parcelable
对象的原因。有其他选择吗?我定义了一个使用可包裹对象作为参数的AIDL接口。此接口由客户端应用程序使用,您建议如何部署它?@cYrus:不要使用自定义的包裹来定义AIDL接口。传递简单值(整数、字符串等)或使用平台提供的Parcelable
类,如Bundle
。或者,永远不要更改自定义Parcelable
类的定义。或者,完全放弃AIDL并切换到带有服务的命令模式(startService()
和Intent
extras)。另一个注释-由于您定义的是Parcelable
,因此您可以而且可能应该在地块表示中添加版本号。然后,至少收件人可以检测到错误,而不是误解数据和崩溃(或者更糟的是,暴露安全漏洞)。