使用Native Android功能的Android Hybrid应用程序

时间:2013-12-02 21:19:20

标签: android multithreading native android-sensors hybrid

目前我正在开发Android Hybrid应用程序。我对Android开发很陌生,但每天都在捡新东西。这个混合应用程序是基于Sencha Touch 2.3.1框架构建的。该项目包括以下主要目标。

功能

  • 获取当前的GPS位置。 (如果需要,可以通过2G / 3G或WiFi支持)
  • 读取当前的加速度计值。 (用于跌倒检测算法)
  • 扫描QR码。 (我可能会使用一个库来实现这个功能)
  • 设置计时器并让它在后台运行。
  • 以上所有内容都应该'运行'在应用程序的Native部分。
  

一般问题:在架构/基础结构方面,最好的方法是什么?

为了更具体地说明我想得到的答案,这里有更多信息。

目前,应用程序的本机部分(Activity)看起来有点像这样。它声明并初始化WebView并加载指向托管Sencha Touch应用程序的主机的URL。到目前为止,这是我唯一的活动/课程。并且也正常工作。

我正在使用以下bridge来在应用程序的混合和本机部分之间来回通信。在 GitHub 的示例中,他们将所有功能填充到一个Java类中。 (活动)

在我的情况下,这对我的项目意味着,所有Hybrid to Native函数调用,如获取当前GPS状态,在后台设置计时器或启动摄像头将驻留在主Activity中。因此,我可以想象得到相当大的时间。

  

子问题:这是要走的路,还是应该将所有核心功能拆分为不同的类?

情境:

GPS传感器需要相当长的时间来进行修复,因此在GPS不断搜索当前坐标时不应中断用户。 (如果需要和可用,这可以通过2G / 3G或WiFi支持)

  

子问题:这个或任何其他后台功能应该在一个单独的线程中处理吗?或者在WebView所在的同一个Activity中?或者我可以在Activity中创建一个新线程来处理GPS和/或需要在后台运行的其他功能吗?


正如您所看到的,我正在尝试找出在Native端构建应用程序的最佳方法。

  

对于线程部分(在后台运行的功能,例如等待正确坐标的计时器或GPS)我想使用IntentService,因为该功能必须继续运行完成任务,即使应用程序未处于活动状态/最小化状态。此外,必须再次处理相同的任务。 (重用线程?)所以当我在这个问题中谈到线程或线程时,我的意思是使用IntentServices。

我希望我足够清楚。感谢您的阅读。

(Pseudo)编码答案很受欢迎,但是向我展示最佳/正确的结构(图像或“仅仅是单词”)将是首选。然后,再按照你的喜好做。

0 个答案:

没有答案