在我最近提出的一个问题中,我被定向到了这个网站:http://developer.android.com/design/index.html
很棒的网站,但它没有回答一个特定的问题:在设计应用程序代码时应用的最佳实践/设计模式是什么?
我查找了 MVC/MVP 等,虽然这会产生结果,但这只是关于所述模式的实际实现,而不是其他可用选项等。
我尝试反编译和分析默认情况下安装的各种 Android 应用程序,例如 Market,但我无法在 Google 的代码中真正找到结构。有没有人有关于如何以可维护、可扩展等方式设置 Android 应用程序的提示。我知道这些词的广泛含义,并且它们对于程序员来说纯粹是主观的,但我不能用不同的方式表达。
我已经遇到的一个最佳实践是每个 Activity 一个 View ,并且在应用程序中有很多 Activity 以使 backstack 正常工作,但除此之外,我不知道如何实际设置 Activity 本身。
最佳答案
首先,阅读API Guides尤其是 Activities 上的部分和 Fragments .但是,如果您有时间,请阅读所有 API 指南,它们是了解 Android 开发的绝佳资源。
根据您要支持的 Android 设备,我建议使用 v4 Support Library和 v7 Appcompat Library .第一个(v4 支持库)我一直使用,因为它支持嵌套 fragment (getChildFragmentManager() - < API 18 本身不支持)和 ViewPager . Appcompat 库主要用于支持 Android 4.0 以下设备上的 Actionbar。
我也会学习Gradle作为您的构建系统和 [http://developer.android.com/sdk/installing/studio.html](Android工作室)(免费)或 IntelliJ IDEA (商业)作为您的 IDE。
考虑到第三方库,我现在看到的最常用的库堆栈(大部分是我自己使用的)是:
- Guava作为通用 Java 帮助程序库。
- Dagger和 ButterKnife用于依赖注入(inject)。
- OkHttp作为 HTTP 传输库。
- RetroFit或 Volley作为 REST 库。
- Picasso作为图像加载库。当您需要从服务器下载/显示图像时,拥有一个良好的图像加载库在 Android 中非常重要,因为它负责内存处理和缓存,如果您尝试自己完成这一切可能会非常困难。
也经常使用的替代品是:
- RoboGuice用于依赖注入(inject)。
- Universal Image Loader用于图像加载。
我使用和推荐的其他库:
- CommonsWare Android Components , 特别是 cwac-adapter和 cwac-camera .最后一个是在您的应用中使用相机(而不是使用 Intent),您自己也很难做到这一点。
- HoloAccent ,这让您可以非常轻松地为以 Holo 为主题的 Android 应用设置样式。
Chris Banes(著名的 Android 开发人员)最近发布了 source code of one of his applications您可以将其用作如何使用上述多个库构建 Android 应用程序的示例。
关于java - Android 编码最佳实践/设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868972/