文档库 最新最全的文档下载
当前位置:文档库 › 安卓编码规范

安卓编码规范

Java编程规范
总体规则
(1) java 代码不得使用IDE自带的格式化,应该仅依赖于编码者去组织。
(2) 源码文件一律使用utf-8编码
(3) 不得因引用的包未使用、变量未使用等问题产生代码警告。
(4) 会显示在任意界面上的字符串严禁硬编码在java代码中,应由资源提供

1. 基本规范
1.1 书写代码时不要出现连续的空行。
1.2 两个函数间有且只有一个空行。
1.3 行尾不可有空格存在,如果是空行,则只允许有换行符存在。
1.4 函数内部的应当合理空行。关系接近的代码中间不留空行,不同的代码块之间留空行。
e.g.:
常量和变量间留有空行;
基本类型变量和控件类型变量间有空行;
常量、基本类型变量、控件类型变量可组内紧密靠在一起,不可任意两个变量声明间都留空行;
1.5 逻辑运算符、算术运算符(除++、--外)、赋值运算符、?:运算符的运算符两端各需加一个空格。
e.g.:
int a = b + c++;
String result = success ? "成功" : "失败";
1.6 非出现在行尾的逗号后面有一个空格,前面没有空格。
e.g.:
function(arg1, arg2, arg3);
1.7 缩进时使用四个空格来代替制表符缩进。
1.9 不省略大括号。
e.g.:
if (sucess) {
return true;
}
而不是
if (sucess)
return true;
1.10 左大括号不单独占行。
e.g.:
if (success) {
return true;
}
而不是
if (success)
{
return true;
}
1.10 if while for do try 等关键字后加空格, do while 结构的 while 前后都加空格,catch finally 前后都加空格
e.g.:
if (abc) {
}
for (int i = 0; i < 10; ++i) {
}
do {
} while (false);
try {
} catch (IOExceptione) {
} finally {
}
1.11 for 中三条语句间有空格隔开:
e.g.:
for (int i = 0; i < 10; ++i)
而不是
for (int i = 0;i < 10;++i)
1.12 禁用 goto

2. 变量规范
2.1 变量修饰合理,常量必须加 static final 仅本类中使用必须加 private
e.g.:
static final private int MSG_SHOWTOAST = 0;
2.2 常量名全大写。
e.g.:
static final private int MSG_SHOWTOAST = 0;
2.4 变量要见名知义,不得使用拼音,不得使用 my new test 等无实际意义的词
e.g.:
String userName = null;
而不是:
String myString = null;
2.3 变量命名使用匈牙利命名法,首词首字母小写,其余词首字母小写。
e.g.:
String fileName = userInfo.getFileName();
而不是:
String filename = userInfo.getFileName();
也不是:
String file_name = userInfo.getFileName();
2.4 除常量外的成员变量必须以m开关,表示成员(member)
e.g.:
String mUserName = null;
而不是:
String userName = null;
2.5 控件变量加控件类型前

缀,如果已有成员前缀,则跟在成员前缀后,并遵守以上约定。
e.g.:
成员变量 Button mBtnCancel = null;
局部变量 Button btnCancel = (Button)findViewById(R.id.btnCancel);
常用控件类型前缀:
Button btn, CheckBox chk, ImageView img, EditText edt, TextView txt
2.6 代码提交时不得有未使用变量存在。

3. 类和包
3.1 类命名所有词首字母大写。
e.g.:
public class LoginActivity extends Activity {
}
而不是:
public class loginactivity extends Activity {
}
3.2 类命名不得使用拼音, 不得使用 My New Test 等无意义的词,要求类名见名知义。
3.3 类合理分包,如 cn.neiwang.emm.ui 中仅应放界面相关的类,不应该放日志模块。
3.4 package 行和 import 行间有且仅有一个空行。 import 结束和 类、接口的开始有且仅有一个空行。
3.5 import 不得引用 * 必须精确到引用的类/接口
3.6 不得有任意多余的 import
3.7 非项目启动阶段不得随意新增包,如确需新增包应组内协商。

4. 资源
4.1 资源中提供id的,id命名必须见名知义,不得使用IDE自动生成的ID,更不得使用拼音,图片命名全部小写字母,词间用下划线分开。
e.g.:
android:id="@+id/btnLogin"
而不是:
android:id="@+id/button1"
e.g.:
drawable/button_background.png
而不是:
drawable/anniubeijing.png
4.2 控件资源必须使用前缀,前缀规则和 规范 2.5 一致。
e.g.:android:id="@+id/btnLogin"
而不是:
android:id="@+id/login"
4.3 资源应合理分目录,如 drawable 中应仅放图片资源,不得存放 shape 等 xml
4.4 所有界面字符串必须在 string 文件定义
4.5 layout 目录下文件命名使用全小写字母,词间用下划线分开,应有前缀,如 Activity 的使用 activity_
e.g.:
activity_login.xml 表示登录界面
dialog_confirm.xml 表示确认对话框
而不是:
login.xml
queren.xml
用以快速区分一个资源的用途
4.6 不得出现未使用的资源,尤其是图片,如果旧版本的资源在新版本已不再使用,应及时移除。最大限度地限制apk大小

相关文档