android - Android 应用程序中的设计建议

标签 android architecture android-service android-sensors

我正在 Android 中开发一个应用程序,该应用程序应该使用移动传感器(加速度计、GPS)检测、分类和映射路面异常(坑洼、减速带、道路不平度/粗糙度等),我需要关于一些设计选择的一些建议,因为我是 Android 开发的新手。

到目前为止,我已经创建了一个后台服务(使用 AsyncTask)来读取传感器并将数据存储在缓冲区中。 我需要使用该服务提供的数据来执行一些低级过滤器和计算,然后我必须将其用于坑洼/speedbump/rugosity/mapping/等。检测程序。

我想以某种方式模块化/分层这些过程,以便最低级别的过滤器为更高级别的过程提供数据,我希望获得有关如何实现此目的的一些建议/最佳实践。

我还想知道如何使用后台服务提供的数据(定时器在给定时间间隔触发事件,...)?

最佳答案

我不是 Android 专家,但我一直在开发一个与您的结构相似的应用程序。为了完成它,我使用了一个实际的长时间运行的 Service用于启动不同的顶级后台处理和数据管理 Threads执行低级计算和数据采集。

对于通信线程->服务,我在服务中注册了一个 BroadcastReceiver 并从线程广播信息。为了传达服务 -> Activity ,我只是将服务绑定(bind)到 Activity ,如 Android API 指南中的“扩展 Binder 类”中所述。

所以结构是这样的: Activity --(bound)--> Service --(spawns multiple)--> 线程

您可以通过在服务和线程中直接调用公共(public)方法来实现自上而下的通信,通过广播消息并在 Activity 和服务中接收它们来实现自下而上的通信。

关于android - Android 应用程序中的设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22297037/

相关文章:

java - 三层架构的正确性

android - BroadcastReceiver 所需的帮助

java - ProGuard 中类路径前的感叹号有什么作用?

java - Android - 使用 AnimatorSet 缩放动画

android - WebView : how to avoid security alert from Google Play upon implementation of onReceivedSslError

android - 我的首选项屏幕搞砸了

angularjs - 将项目与 AngularJS 制作的产品分开的建议

android - 在模块化项目中分发测试源

android - 在服务中获取上下文

Android iBeacon 库在 Activity 之外的使用