【问题标题】:How to send image using AIDL between two processes?如何在两个进程之间使用 AIDL 发送图像?
【发布时间】:2023-03-23 01:35:01
【问题描述】:

首先,我知道AIDL一般都支持Integer、String、Map等原始数据类型。另外,引入Parcelable类型后,也可以处理更高级的数据类型。

现在我想知道是否可以使用 AIDL 在两个进程之间发送图像。我之前尝试过,但是打包 Parcelable 类对我来说并不容易。如果有人知道解决方案,请帮助我!

--更新 2016/2/26--

这里的“image”代表图片类型文件,如“jpg”或“png”。

【问题讨论】:

  • 请更详细地解释“图像”的性质。你的意思是Bitmap?你的意思是File?你的意思是byte[]?你的意思是网址吗?你的意思是Uri?你还有别的意思吗?
  • 我已经更新了描述

标签: android parcelable aidl


【解决方案1】:

解决了。

我使用“byte[]”作为两个进程之间的传输媒介,所以我什至不需要实现parcelable类。

这是我的 demo code.

【讨论】:

    【解决方案2】:

    现在我想知道是否可以使用 AIDL 在两个进程之间发送图像

    根据您的问题,您不想在两个进程之间发送图像。您想在两个进程之间发送 URL。 URL 可以表示为String,AIDL 支持在进程之间传递String 值。

    【讨论】:

    • 但是,当图像在另一个进程中完全下载时,我需要获取图像。这就是我遇到问题的原因
    • @ymjiang:那么您的“--Update--”具有误导性。当您下载图像时,您将在内存中拥有一个byte[] 或在磁盘上拥有一个文件。如果byte[] 很小(小于 1MB),欢迎您通过 AIDL 传递byte[]。但是,这种 IPC 的事务大小建立了 1MB 的硬上限,因此,如果您的图像数据有可能超过该上限,您最好将其写入文件,然后让其他进程读取文件.
    猜你喜欢
    • 2014-04-16
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    相关资源
    最近更新 更多