我现在是个初级开发人员。我听说过IPC,现在我正在学习Android。
我创建了一个.aidl文件,在服务中实现了来自.aidl的方法,并且在另一个应用程序中使用了这些方法,但我不明白这一点。
为什么我不能只制作一个包含该服务的.aar或.jar文件,而不使用AIDL?何时使用AIDL,何时导入.jar文件。更普遍的是,当我们可以处理.jar文件时,使用IPC有什么意义?
发布于 2017-03-27 16:25:13
为什么我不能只制作一个包含该服务的.aar或.jar文件,而不使用AIDL?
来自https://developer.android.com/guide/components/aidl.html文档
只有在允许来自不同应用程序的客户端访问IPC服务并希望在服务中处理多线程时,才需要使用AIDL。
当您将Service打包到aar或jar中时,该服务可以在任何地方运行,即在相同的应用程序中或在不同的应用程序进程中运行。AIDL是专门为IPC设计的,即不同进程中的服务和应用程序。
更普遍的是,当我们可以处理.jar文件时,使用IPC有什么意义?
IPC是一个提供数据共享机制的操作系统,jar是一种字节码分发方法。它们是不同的东西。
假设您想使用某个人提供的服务,而您没有它的源或字节码。您只能在运行时在由提供程序管理的进程中访问此服务,这与您自己的不同。在这种情况下,您需要由提供者指定的AIDL才能与服务进行通信。
https://stackoverflow.com/questions/43050371
复制相似问题