【问题标题】:Cross-mobile background service跨手机后台服务
【发布时间】:2014-03-06 09:09:47
【问题描述】:

目标是记录和分析 GPS 轨迹:

  • 对于配备 GPS 的 iOS 和 Android 设备,需要同时记录/分析
  • 对于其他设备(平板电脑 - 台式机),分析以前录制的曲目(在浏览器中)就足够了

有一些特定于平台的代码是可以的,但我想在 iOS、Android 和 Web 之间共享“分析”部分 AND 以便能够在 iOS/Android 时运行此代码应用程序是后台的。

我有一些用 JavaScript 编写的“分析”代码,所以我开始按以下顺序寻找选项:


1) 在网络应用中做所有事情

iOS Safari 在后台停止运行 JavaScript。

运气不好。


2) 使用 PhoneGap 等

JavaScript 在后台停止。建议将所有服务代码编写为原生插件。

运气不好。


3) 使用钛

花了两个星期才发现 Titanium 中的 Android Service 实现不完整。它缺少 startForeground(..),用于要求 Android 不要终止服务。有人试图为此实现本机模块,但报告说,虽然服务本身正在运行,但 JavaScript 却没有。


4) 在移动端使用 Marmalade 并将 C++ 编译为用于 Web 的 JavaScript

快速谷歌搜索说 C++ 代码不能从服务运行


5) 将 MoSync 用于移动设备并将 C++ 编译为 JavaScript 用于 Web

快速谷歌搜索说他们不支持服务。另一方面,我在他们的来源中看到了 startForeground(..),所以可能值得重新检查。


7) 用 C 编写:iOS 为原生,Android 为 JNI,Web 编译为 JavaScript

还没检查


6) 在移动设备上使用 Codename One,在 Web 上将 Java 编译为 JavaScript

还没检查


还有我的问题:

Q1.您能否确认上述每个选项是否可以用于此类应用

Q2。我对钛特别感兴趣(因为已经投资了它)。我正在考虑一个带有虚拟 Service 的原生 Android 模块,它什么都不做,只是要求 Android 不要杀死它的进程,而真正的 Titanium 服务与 Activity 一起运行。

会有用吗?

Q3。其他选项/一般建议?

谢谢。

【问题讨论】:

    标签: mobile service geolocation titanium cross-platform


    【解决方案1】:
    1. 当我们遇到“super-duper”框架限制时,我带来了本地知识:为 Phonegap 添加一个插件,学习如何链接它,为两个平台编写。

    2. Titanium 没有经验,抱歉。我认为我什至不会打开他们的页面来阅读他们的问候词。

    3. 回到你原来的任务,再看看你的鞋子外面(我会问它,你应该回答)

    “目标是记录和分析 GPS 轨迹: 我想在 iOS、Android 和 Web 之间共享“分析”部分,并且能够在 iOS/Android 应用程序后台运行时运行此代码。”

    建议 1:只需用 C/C++ 重新编写代码即可。使用 Android SDK / NDK 和 iOS 编译 .so 链接。

    建议 2:“我有一些用 JavaScript 编写的“分析”代码,所以我开始寻找选项”将代码移动到服务器端,在那里您将运行 node.js 和现有代码。您的应用程序将收到带有结果的通知。

    建议3:最终编写真正的平台特定应用程序,充分利用硬件+操作系统的能力。 JavaScript 的目的是做复杂的数学运算。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 2012-01-07
      • 2018-02-19
      相关资源
      最近更新 更多