跨移动后台服务

时间:2014-03-06 09:09:47

标签: mobile service geolocation titanium cross-platform

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

  • 对于带GPS的iOS和Android设备,需要同时进行录制/分析
  • 对于其他设备(平板电脑 - 桌面设备),只需分析以前录制的曲目(在浏览器中)
  • 即可

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

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


1)在网络应用中执行所有操作

iOS Safari在后台运行时停止运行JavaScript。

没有运气。


2)使用PhoneGap或类似的

JavaScript在后台运行时停止。建议将所有服务代码编写为本机插件。

没有运气。


3)使用Titanium

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


4)使用Marmalade移动设备并将C ++编译为JavaScript for Web

快速谷歌搜索说无法从服务

运行C ++代码

5)使用MoSync for mobile并将C ++编译为JavaScript for Web

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


7)用C语言编写:iOS用户,JNI用于Android,编译为JavaScript用于Web

尚未检查


6)将Codename One用于移动设备并将Java编译为JavaScript for Web

尚未检查


我的问题:

Q1。如果能够或不能用于此类应用,您能否确认上述每个选项

Q2。我对Titanium特别感兴趣(已投入使用)。我正在考虑一个带有虚拟服务的原生Android模块,它不会做任何事情,但要求Android不要杀死真正的Titanium服务与Activity一起运行的进程。

它会起作用吗?

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

  3. 回到原来的任务,再看一遍你的鞋子(因为我会问你,你应该回复)

  4. “目标是记录和分析GPS轨迹: 我想在iOS,Android和Web之间共享“分析”部分,以便能够在iOS / Android应用程序背景下运行此代码。“

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

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

    建议3:最后编写真正的平台特定应用程序并完全使用硬件+操作系统功能。 JavaScript的目的是做其他事情然后做硬数学。