Android编码最佳实践/设计模式

时间:2012-03-26 08:40:44

标签: java android design-patterns android-4.0-ice-cream-sandwich

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

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

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

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

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

4 个答案:

答案 0 :(得分:19)

首先,请阅读API Guides,特别是ActivitiesFragments上的部分。但是,如果您有时间阅读所有API指南,它们是了解Android开发的非常好的资源。

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

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

考虑到第三方库,我看到这些天大部分时间都使用的库堆栈(并且大部分都是自己使用的)是:

  • Guava作为一般Java帮助程序库。
  • DaggerButterKnife用于依赖注入。
  • OkHttp作为HTTP传输库。
  • RetroFitVolley作为REST库。
  • Picasso作为图片加载库。当您需要从服务器下载/显示图像时,拥有一个良好的图像加载库在Android中非常重要,因为它负责内存处理和缓存,如果您尝试自己完成所有操作,这可能会非常困难。

也经常使用的替代品是:

我使用和推荐的其他库:

Chris Banes(一位知名的Android开发者)最近发布了source code of one of his applications,您可以使用它作为如何使用上述几个库构建Android应用程序的示例。

答案 1 :(得分:18)

您需要学习的第一件事是Android活动非常好。整个事情。从那里前进会更容易。不要过早考虑Java设计模式,因为最终会尝试将问题与您的模式相匹配,而这种模式并不能很好地结束。浏览Android开发人员网站上的示例,然后尽可能多地编写代码。

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

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

  1. GreenDroid - https://github.com/cyrilmottier/GreenDroid
  2. ActionBarSherlock - 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内容的助手

答案 2 :(得分:4)

您应该观看(来自Google IO 2011): http://www.youtube.com/watch?v=WGIU2JX1U5Y

它不是关于ICS,而是关于蜂窝,但它仍然非常有趣......

你会看到ActionBar(还有一些库让你在旧版本的android上实现ActionBar)变得越来越重要,并且可以在大多数谷歌Android应用程序中找到...

ViewPager也被大量使用(用于在不同的标签/视图之间水平滑动),就像在市场上一样......

为了保持项目清洁,您可以为每个活动分配一个单独的xml文件,您使用的重复元素应保存在一个单独的xml文件中,您可以将其包含在每个其他xml文件中(页脚,标题,分隔符,... )

希望这可以帮助你!

答案 3 :(得分:0)

Android应用程序应该很快。嗯,说它应该有效可能更准确。也就是说,它应该在移动设备环境中尽可能有效地执行,其具有有限的计算能力和数据存储,较小的屏幕和受限的电池寿命。 在这篇博客中,我提供了遵循设计性能的最佳实践。 更多阅读

http://www.onsandroid.com/2014/10/android-application-designing-for.html

http://www.onsandroid.com/2013/01/android-best-practices.html