Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 向AIDL客户端提供可包裹对象的代码_Android_Ipc_Parcelable_Aidl - Fatal编程技术网

Android 向AIDL客户端提供可包裹对象的代码

Android 向AIDL客户端提供可包裹对象的代码,android,ipc,parcelable,aidl,Android,Ipc,Parcelable,Aidl,文件规定: 如果您有一个类希望通过IPC接口从一个进程发送到另一个进程,您可以这样做。但是,您必须确保您的类的代码可用于IPC通道的另一端,并且您的类必须支持Parcelable接口 如果我向客户机提供.java文件,一切正常。但是我想知道是否有一种方法可以传递.class文件,或者有其他方法隐藏源代码 但是我想知道是否有一种方法可以传递.class文件,或者有其他方法来隐藏源代码 运送一个包含Parcelable类的罐子应该可以,尽管我还没有尝试过 另外,请记住,版本控制成了一个问题——如果您

文件规定:

如果您有一个类希望通过IPC接口从一个进程发送到另一个进程,您可以这样做。但是,您必须确保您的类的代码可用于IPC通道的另一端,并且您的类必须支持Parcelable接口

如果我向客户机提供
.java
文件,一切正常。但是我想知道是否有一种方法可以传递
.class
文件,或者有其他方法隐藏源代码

但是我想知道是否有一种方法可以传递.class文件,或者有其他方法来隐藏源代码

运送一个包含
Parcelable
类的罐子应该可以,尽管我还没有尝试过


另外,请记住,版本控制成了一个问题——如果您更改了这些类,而它们不更新它们的JAR会怎么样?这种复杂性就是为什么我不建议在应用程序之间以这种方式分发
Parcelable
对象的原因。

如果它们不更新我提供的
。java
,我就不会有同样的问题吗?@cYrus:是的。这就是为什么我不建议以这种方式在应用程序之间分发
Parcelable
对象的原因。有其他选择吗?我定义了一个使用可包裹对象作为参数的AIDL接口。此接口由客户端应用程序使用,您建议如何部署它?@cYrus:不要使用自定义的
包裹来定义AIDL接口。传递简单值(整数、字符串等)或使用平台提供的
Parcelable
类,如
Bundle
。或者,永远不要更改自定义
Parcelable
类的定义。或者,完全放弃AIDL并切换到带有服务的命令模式(
startService()
Intent
extras)。另一个注释-由于您定义的是
Parcelable
,因此您可以而且可能应该在地块表示中添加版本号。然后,至少收件人可以检测到错误,而不是误解数据和崩溃(或者更糟的是,暴露安全漏洞)。