【发布时间】: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