gpt4 book ai didi

用于大型可定制工具应用程序的 Android 架构

转载 作者:太空狗 更新时间:2023-10-29 13:11:54 25 4
gpt4 key购买 nike

背景:

我开发了一款用于配置物理设备的工具应用程序,目前它支持一台设备。它使用 RxJavaDagger 在标准 Android 中编写,未实现架构模式。

任务:

该应用应该能够支持 3 个额外的设备。用户可以在设备之间进行选择,并且根据设备的不同,功能也会有所不同。这意味着,在某些 View 中需要显示其他选项,而对于某些设备,需要删除选项。

问题:

我需要重构此应用程序,使其能够针对要添加的其他设备进行增强,并使其可测试,但我还不确定如何为即将到来的更改构建应用程序。作为一种架构方式,我想使用 MVVMMVP,但我不确定哪种模式更适合我的需求,因为我对这两种模式都不太满意。

这就是我计划继续进行的方式:

  • 创建一个单例调用 DeviceConfiguration,它将跟踪当前选定的设备并知道哪个设备具有哪些功能。
  • 创建一个名为 Device 的接口(interface),所有设备类都将实现该接口(interface),定义所有设备共有的基本最小方法。
  • 当用户切换到另一个 Activity 时,DeviceConfiguration 会检查当前选择的是哪个设备,并将为 View/Presenter/ViewModel 设置正确的设备。
  • 在 Activity 开始时,onCreate 中的设置方法将根据 DeviceConfiguration 提供的数据显示/隐藏设备可用的选项。
  • 点击屏幕内的某处将调用 Device.doSomething() ,它将使用开始时设置的设备并使用设备特定的调用(虽然我不确定如果设备没有这个如何处理它功能,仍然实现调用并将方法留空?)

问题:

这就是我的想法,但这是处理不同设备的类似功能的好结构吗?是否可以使用这种设置来测试应用程序,或者为适当的设备创建自己的 Activity/布局会更好吗?我尤其不确定这是否适用于 MVVM,如果不仅是数据,而且布局中的一般内容和 View 都需要动态更改。

我正在寻找使应用程序更清洁和更易于测试的良好做法,我们将不胜感激任何建议。

最佳答案

我建议您查看 Android Architecture Blueprints存储库。它由 Google 提供,您有使用/不使用 Dagger2 和 RxJava 的 MVP 和 MVVM 架构实现示例。您也可以查看 Mosby图书馆。如果您是初学者,IMO 最好学习一些经过验证的实现,而不是过度设计您的解决方案。

关于用于大型可定制工具应用程序的 Android 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39576566/

25 4 0
文章推荐: android - AdMob Native Ads Express 未收到测试广告
文章推荐: Javascript函数仅在按键时输入字母
文章推荐: javascript - 在 FireFox 和 IE 8 中打印横向或纵向
文章推荐: javascript - Chrome : Scroll on