安卓编码最佳实践/设计模式 [已关闭]

在我最近问的一个问题中,我被引导到这个网站:http://developer.android.com/design/index.html

令人惊叹的网站,但它没有回答一个特定的问题:在应用程序代码设计中应用的最佳实践/设计模式是什么?

我对MVC / MVP等进行了查找,虽然这会产生结果,但这只是关于所述模式的实际实现,而不是其他可用的选项等。

我尝试反编译和分析默认情况下Android安装的各种应用程序,例如Market,但我在Google的代码中找不到结构。有没有人有关于如何以可维护,可扩展等方式设置Android应用程序的提示。我知道这些词的广泛含义,并且它们纯粹是程序员的主观的,但我不能用任何不同的方式表达它。

我已经遇到的一个最佳实践是每个活动一个视图,并在应用程序中有很多活动以使backstack正常工作,但除此之外,我不知道如何实际设置活动本身。


答案 1

首先,阅读 API 指南,特别是有关活动和片段的部分。但是,如果您有时间,请阅读所有API指南,它们是了解Android开发的绝佳资源。

根据您要支持的Android设备,我建议使用v4支持库v7 Appcompat库。我一直使用的第一个(v4支持库),因为支持嵌套片段(getChildFragmentManager() - < API 18本身不支持)和ViewPager。Appcompat库主要用于在Android版本低于4.0的设备上支持Actionbar。

我也会把Gradle作为你的构建系统,把[http://developer.android.com/sdk/installing/studio.html](Android Studio)(免费)或IntelliJ IDEA(商业)作为你的IDE。

考虑到第三方库,我看到现在最常用的库堆栈(并且大部分使用我自己)是:

  • 番石榴作为通用Java帮助器库。
  • 用于依赖注入的匕首黄油刀
  • OkHttp 作为 HTTP 传输库。
  • 改造凌空作为 REST 库。
  • 毕加索作为图像加载库。当您需要从服务器下载/显示图像时,拥有一个好的图像加载库在Android中非常重要,因为它可以处理内存和缓存,如果您尝试自己完成所有这些操作,这可能非常困难。

也经常使用的替代方案是:

我使用和推荐的其他库:

Chris Banes(一位著名的Android开发人员)最近发布了他的一个应用程序的源代码,您可以使用它作为如何使用上面提到的几个库构建Android应用程序的示例。


答案 2

你必须学习的第一件事就是关于Android活动真的很好。咕噜咕噜整个事情。从那里继续前进会容易得多。不要这么早就进入Java设计模式,因为你最终会试图将问题适应你的模式,而这并不好。浏览 Android 开发人员网站上的示例,然后编写尽可能多的代码。

我刚刚把这个名为Android App Patterns的网站放在一起 - http://android-app-patterns.com 它展示了一些流行的应用程序在Android上坚持的不同UI元素和交互模式。

有许多库可以帮助您轻松实现上述模式。例如:

  1. 绿药 - https://github.com/cyrilmottier/GreenDroid
  2. 动作酒吧手锁 - https://github.com/JakeWharton/ActionBarSherlock
  3. Android View Badger - https://github.com/jgilfelt/android-viewbadger - 将用于通知
  4. NineOldAndroids - https://github.com/JakeWharton/NineOldAndroids - 使用HoneyComb的动画API一直追溯到1.0版本
  5. 点火:https://github.com/kaeppler/ignition - 许多常见的Android东西的助手

推荐