Android开发最佳实践---Futurice之见
Posted oncealong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发最佳实践---Futurice之见相关的知识,希望对你有一定的参考价值。
原文链接:https://github.com/futurice/android-best-practices
本文是Futurice公司的android开发人员总结的最佳实践,遵循这些准则可以避免重复制造轮子。如果你对ios或者WindowsPhone开发感兴趣,那么也请看看iOS最佳实践和Windows客户端开发最佳实践。
第一版翻译自:http://blog.csdn.net/asce1885 Android开发技术日新月异, Github上也有较大更新, 故对原文有增删CSDN的markdown不支持页面内跳转, 概要里的跳转都是无效的. 如果您想看概要中每一条对应的详细指导, 可以到https://github.com/oncealong/android-best-practices/blob/master/translations/Chinese/Readme.cn.new.md.
概要
- 使用Gradle和推荐的工程结构
- 把密码和敏感数据存放在gradle.properties文件中
- 使用Jackson或者Gson库来解析JSON数据
- 不要自己实现HTTP客户端,要使用Volley或者OkHttp库
- 避免使用Guava, 使用少量的函数库从而避免超出65k方法数限制.
- 使用Fragments来表示UI界面
- Activities只用来管理Fragments
- 布局XML文件是代码,要组织好它们
- 使用样式文件来避免布局XML文件中属性的重复定义
- 使用多个样式文件避免单一大样式文件的使用
- 保持colors.xml文件简短和不重复,只定义颜色值
- 保持dimens.xml文件不重复,并只定义通用的常量
- 避免ViewGroups层次结构太深
- 避免在客户端侧处理WebViews,谨防内存泄漏
- 使用Robolectric作为单元测试的工具,Robotium作为UI测试的工具
- 使用Genymotion作为你的模拟器
- 总是使用ProGuard或者DexGuard
- 使用SharedPreferences处理简单的数据持久化, 使用ContentProciders处理复杂的数据持久化
- 使用Stetho调试你的程序.
Android SDK
把你的Android SDK目录放在电脑的主目录或者其他跟IDE安装目录独立的磁盘位置,某些IDE在安装时就包含了Android SDK,而且可能把它放在跟IDE相同的目录下。当你需要升级(或重新安装)IDE,或者更换IDE时,这种做法是不好的。同样要避免把Android SDK放在另外一个系统层级的目录中,这样当你的IDE在user模式下运行而不是root模式时,将需要sudo权限。
构建系统
你的默认选择应该是Gradle。相比之下,Ant限制更大而且使用起来更繁琐。使用Gradle可以很简单的实现:
1)将你的app编译成不同的版本;
2)实现简单的类似脚本的任务;
3)管理和下载第三方依赖项;
4)自定义密钥库;
5)其他
Google也在积极的开发Android的Gradle插件,以此作为新的标准编译系统。
工程结构
目前有两个流行的选择:以前的Ant和Eclipse ADT工程结构,以及新的Gradle和Android Studio工程结构。你应该选择新的工程结构,如果你的工程还在使用旧的结构,那么应该立即开始将它迁移到新的结构上面来。
旧的工程结构如下所示: