-
Notifications
You must be signed in to change notification settings - Fork 5
开发指南
- 最新版本 Eclipse (当前版本 4.3)
- 最新版本 ADT Plugin (当前版本22.0.1)
- Git
- 使用
lint
检查编码规范
注:
- Android Studio 尚处于开发阶段问题较多暂不考虑支持
- ADT Bundle 整合了最新的Eclipse和ADT Plugin,如无特殊情况应使用
所有文件均采用UTF-8编码,Unix换行符(LF) 请关闭Git的autocrlf功能:
git config --global core.autocrlf false
遵循标准Android Application规范
开发中遇到的 全部 Bug、贡献者想到的 全部 改进都应提交到Issue列表。
尽量避免使用社交网络讨论开发事宜。
从2013-07-14起每日21:00在freenode IRC #papdt 频道进行项目例会,并不定期在IRC进行讨论。
本项目在 experimental
分支进行开发工作,称作“开发分支”;添加特性时,应创建新分支完成,称作“特性分支”;master
分支是唯一的稳定分支,其它分支均不是稳定分支。
开发分支用来进行主要的开发工作,但是,添加新特性时,应先创建功能分支进行开发,以保证开发分支处于较稳定状态,如创建 0.0.6
分支为未来的 0.0.6 版本开发新特性。特性分支允许提交半成品;开发分支则不允许。开发后,将功能分支合并入开发分支,合并后。删除功能分支。
每个commit的说明应该反映当次所做的修改,不得只使用笼统的"Update""Fix"等字样。
起始版本为0.0.1(Version Name)/1(Version Code)。每次有代码改动的commit前请递增Version Code。Version Name只允许由Harry Chen和Xavier Yao在每次合并入Experimental分支之前修改。 **无论何时如果版本发生冲突,取较新的版本名予以保留。 **
每一个稳定版本必须打上Tag并且在GitHub上Release。
稳定分支 仅限 于 Harry Chen与Xavier Yao 进行合并。 **不允许任何直接的commit。 **
贡献者们做贡献时,应该在功能分支完成,并且发送合并入开发分支的 Pull Request,详细阐述特性. 所有commit都必须经过Sign-off,范例:
Signed-off-by: Harry Chen <[email protected]>
任何人 都应该使用Pull Request而非直接push。
本项目使用 AOSP 编码规范 (本来我还翻译了一半来着后来懒得填坑就删了……E文不好的同学也一定要硬着头皮读完) 和Effective Java (Effective Java是AOSP编码规范的参考)作为编码规范。我们建议所有代码经过提交之前,要经过 lint 检查器的检查,保证警告尽可能少。
在命名Java对象时,应使用Camel-Case,并遵循AOSP编码规范中的变量命名规范。
即:
- 除常量外,字段名的首字母为小写,其余单词的首字母为大写。
- 非public static的类变量名以m开头.
- static变量名以s开头.
- 局部变量不需可以遵循上述命名规范,可使用简单的缩写,但不应出现foo等变量名。
- 对于缩写词应当做单词,例如Html、Url。
- public static final 修饰的字段(常量) 命名应为以下划线分隔的全大写字母。
- 使用缩写前缀描述变量。
- View和Widget的命名尽量符合id。
部分例子如:
TextView tvStatus = (TextView)findViewById(R.id.tv_status);
layout中的ID命名应遵循:
- 在Java源码中没有用到的控件不应分配ID。
- android.R.id.中存在适合的ID则不使用+id/而使用android:id/*
- ID使用下划线分割单词,使用缩写前缀+功能命名。
- 应将重复的属性提取为style
- 在layout中不应出现常量,应提取为dimen,bool,integer等
- 应使用标准Javadoc。
- 为每一个方法和每一个类添加注释。
- 为每一个代码功能段添加注释
- 为/res中的每一个资源文件的每一部分添加注释
纸飞机开发小组 Prof. X & Harry Chen