将 Android 应用程序与服务器上的 Matlab 应用程序连接

2024-05-03

我正在 Android 上开发一个应用程序,它将获取图像输入,并将该输入传递到安装 MATLAB 应用程序的服务器。 MATLAB 应用程序将计算结果并将其返回到该 Android 应用程序。

我想知道我可以使用哪个服务器? 如何将 MATLAB 应用程序安装到该服务器?


首先,您需要一个 Web 应用程序服务器来接收来自 Android 应用程序的内容。您可以使用任何您喜欢的东西,但是您选择的任何一个都可能会影响您部署 MATLAB 应用程序的方式。

为此,您有三个选择。

  1. 只需在服务器上安装 MATLAB 的副本即可。让您的 Web 应用程序将图像写入某个目录,让 MATLAB 循环监视该目录,当它看到文件时,执行其操作,写出结果,然后继续监视该目录。让您的 Web 应用程序监视输出目录并将结果返回给用户。您需要一种命名文件的方法,以确保正确的输出与正确的输入相匹配。

请注意,此选项 1 受到 MATLAB 许可证性质的严格限制。您只能向获得该 MATLAB 副本许可的用户提供访问权限,因此,如果您希望公开提供 Android 应用程序/服务,那么它不太可能是您的正确选择。

  1. 使用 MATLAB Builder NE for .NET 或 MATLAB Builder JA for Java 将 MATLAB 应用程序转换并打包为 .NET 程序集或 Java 类。 (如果您选择了 Microsoft Web 应用程序服务器,请选择第一个,如果是另一个堆栈,您可能需要第二个)。然后让您的 Web 应用程序调用该组件,向其传递图像数据并直接检索结果。

使用 Builder 产品部署的组件可以在最终用户不需要 MATLAB 许可证的情况下使用和共享,从而解决了选项 1 的主要问题。请注意,Builder 产品是 MATLAB 的(有些昂贵)附加产品。

选项 2 的问题是可扩展性。那里只有一个 MATLAB 组件,所有请求都会排队等待通过。如果您只有一些不频繁的用户请求,这可能没问题,否则您将需要运行组件的多个副本的池,并且需要编写一些代码来管理该池并将请求传递给组件。

你可以自己做(这可能很难),或者你可以去找

  1. 使用 MATLAB 生产服务器。这基本上需要使用上述 Builder 产品之一部署的组件,并为您进行池管理,直接与 Web 应用程序服务器通信。这是另一种附加产品(稍微贵一些)。

我的建议是,除非您希望部署一个可以通过选项 1 正确许可的私有应用程序,否则我会选择选项 2 开始,看看效果如何,然后考虑是否可以使用选项 3 进行扩展。

请注意,还有另一种选择:

  1. 根本不要将 MATLAB 应用程序部署到服务器。相反,使用 MATLAB Coder(同样是一个附加产品,但比 Builders 或生产服务器便宜)将您的应用程序转换为 C 代码。然后将 C 代码直接合并到您的 Android 应用程序中,以便在设备本身上运行。这可能更容易部署,而且速度明显更快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Android 应用程序与服务器上的 Matlab 应用程序连接 的相关文章

  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • 图像处理 - 使用 opencv 进行服装分割

    我正在使用 opencv 进行服装特征识别 第一步 我需要通过从图像中移除脸部和手来分割 T 恤 任何建议表示赞赏 我建议采用以下方法 Use 阿德里安 罗斯布鲁克的用于检测皮肤的皮肤检测算法 谢谢罗莎 格隆奇以获得他的评论 在方差图上使用
  • Android - 从资产中解析巨大(超大)JSON 文件的最佳方法

    我正在尝试从资产文件夹中解析一些巨大的 JSON 文件 我如何加载并添加到 RecyclerView 我想知道解析这种大文件 大约 6MB 的最佳方法是什么 以及您是否知道可以帮助我处理此文件的良好 API 我建议您使用GSON lib h
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • Adobe 是否为其 PDF 阅读器提供 Android SDK 或 API? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在我们的应用程序内的视图中显示本地 PDF 文件 在 Android 4 03 下的平板电脑上运行 目前 我们将 Adob eR
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • 我想实现下面的布局,按钮应该在屏幕底部,当惰性列被填充时,按钮不应该出去

    顶部有惰性列 惰性列下方有输入电话号码布局并从电话簿布局添加联系人 我希望当未添加联系人时此布局位于顶部 当我添加大量联系人时输入电话号码并添加电话簿布局中的联系人会随着惰性列滚动并移出屏幕 我不让他们走出屏幕 当接触较多时 它们必须粘在底
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • @(t)在Matlab中是什么意思? [复制]

    这个问题在这里已经有答案了 正如标题所示 考虑到下面的上下文 t 在 Matlab 中到底意味着什么 computeNumericalGradient 是一个函数 cofiCostFunc 也是一个接受一堆参数的函数 问题是 t 对 cof
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐