最佳实践之 Android代码规范
2015-08-21 10:09
561 查看
命名规范
包命名规范
采用反域名命名规则,包名全部小写,连续的单词只是简单地连接起来,不使用下划线,一级包名为com,二级包名为xxx(可以是公司域名或者个人命名),三级包名根据应用进行命名,四级包名为模块名或层级名。如:
com.isa.crm.activity |
com.isa.crm.adapter
JAVA类命名规范
采用大驼峰式命名法,尽量避免缩写,除非该缩写是众所周知的,比如HTML,URL,如果类名称包含单词缩写,则单词缩写的每个字母均应大写。如:
Product | ProductManager |
ProductListActivity | ProductListAdapter | JsonHTTPSRequest
接口命名规范
命名规则与类一样采用大驼峰命名法,多以able或ible结尾。例如:
interface Runable | interface Accessible
成员变量命名规范
采用小驼峰命名法。
临时变量命名
使用标准的Java命名方法,不推荐使用Google的m命名法。例如:
private String userName; 而不推荐使用 private String mUserName;
常量命名
常量使用全大写字母加下划线的方式命名。例如:
public static final String TAG = “tag”;
控件实例命名
类中控件名称必须与xml布局id保持一致(可以去掉{module_name})。例如:
在布局文件中 Button 的id为: android:id=”@+id/btn_pay”
private Button btn_pay;
方法命名规范
动词或动名词,采用小驼峰命名法。例如:
run(); | onCreate(); | syncProducts();
布局文件(Layout)命名规范
全部小写,采用下划线命名法。其中{module_name}为业务模块或是功能模块等模块化的名称或简称。
activity layout: {module_name}activity{名称} 例如:
crm_activity_main.xml | crm_activity_shopping.xml
fragment layout:{module_name}fragment{名称} 例如:
crm_fragment_main.xml | crm_fragment_shopping.xml
Dialog layout: {module_name}dialog{名称} 例如:
crm_dialog_loading.xml
列表项布局命名:{module_name}list_item{名称} 例如:
crm_listitem_customer.xml
包含项布局命名:include_{名称} 例如:
include_head.xml
adapter的子布局: {module_name}item{名称} 例如:
qz_item_order.xml
widget layout: {module_name}widget{名称} 例如:
crm_widget_shopping_detail.xml
资源id命名规范
命名模式为:{view缩写}{module_name}{view的逻辑名称},如:
顾客管理CRM模块布局 LinearLayout 的布局id –> ll_crm_content
模块简称为qz的 ImageView 的布局id –> iv_qz_photo
常见控件View与其缩写对照参考表如下:
这里写图片描述
图片资源文件命名规范
图标命名:{module_name}ic{名称} 例如:
crm_ic_app.png
背景图片命名: {module_name}bg{名称} 例如:
crm_bg_navbar_highlight_normal.9.png
按钮Button命名: {module_name}btn{名称} 例如:
crm_btn_login_normal.9.png
按钮checkbox图片命名:{module_name}checkbox{名称} 例如:
crm_checkbox_cart_true.png
其他图片命名:{module_name}icon{名称} 例如:
qz_icon_blue_circle.png
代码风格
大括号问题
风格一
if (hasMoney())
{
}
else
{
}
风格二
if (hasMoney()) {
} else {
}
空格问题
if else | while | 运算符两端 等后面需用空格隔开。例如:
规范的编写方式:
if (hasMoney()) {
} else {
}
for (int i = 0; i < 10; i++) {
}
不规范的编写方式:
if(hasMoney()){
}else{
}
for(int i=0; i<10;i++){
}
方法参数
当方法参数数量过多时,需进行换行处理.
注释
必须要对所有实例变量、类常量进行注释说明 例如:
// 用户姓名
private String userName
必须对所有的类、接口进行注释说明 例如:
/**
* Activity基类
*
* @author ice_zhengbin@163.com
*/
public class BaseActivity extends Activity
{
}
必须对所有的方法进行注释说明 例如:
/**
* 请求
*
* @param path 路径
* @param generalParams 基本参数
* @param businessParams 业务参数
* @return 请求结果
* @throws ApiException 请求错误则返回该异常
*/
public Map
包命名规范
采用反域名命名规则,包名全部小写,连续的单词只是简单地连接起来,不使用下划线,一级包名为com,二级包名为xxx(可以是公司域名或者个人命名),三级包名根据应用进行命名,四级包名为模块名或层级名。如:
com.isa.crm.activity |
com.isa.crm.adapter
JAVA类命名规范
采用大驼峰式命名法,尽量避免缩写,除非该缩写是众所周知的,比如HTML,URL,如果类名称包含单词缩写,则单词缩写的每个字母均应大写。如:
Product | ProductManager |
ProductListActivity | ProductListAdapter | JsonHTTPSRequest
接口命名规范
命名规则与类一样采用大驼峰命名法,多以able或ible结尾。例如:
interface Runable | interface Accessible
成员变量命名规范
采用小驼峰命名法。
临时变量命名
使用标准的Java命名方法,不推荐使用Google的m命名法。例如:
private String userName; 而不推荐使用 private String mUserName;
常量命名
常量使用全大写字母加下划线的方式命名。例如:
public static final String TAG = “tag”;
控件实例命名
类中控件名称必须与xml布局id保持一致(可以去掉{module_name})。例如:
在布局文件中 Button 的id为: android:id=”@+id/btn_pay”
private Button btn_pay;
方法命名规范
动词或动名词,采用小驼峰命名法。例如:
run(); | onCreate(); | syncProducts();
布局文件(Layout)命名规范
全部小写,采用下划线命名法。其中{module_name}为业务模块或是功能模块等模块化的名称或简称。
activity layout: {module_name}activity{名称} 例如:
crm_activity_main.xml | crm_activity_shopping.xml
fragment layout:{module_name}fragment{名称} 例如:
crm_fragment_main.xml | crm_fragment_shopping.xml
Dialog layout: {module_name}dialog{名称} 例如:
crm_dialog_loading.xml
列表项布局命名:{module_name}list_item{名称} 例如:
crm_listitem_customer.xml
包含项布局命名:include_{名称} 例如:
include_head.xml
adapter的子布局: {module_name}item{名称} 例如:
qz_item_order.xml
widget layout: {module_name}widget{名称} 例如:
crm_widget_shopping_detail.xml
资源id命名规范
命名模式为:{view缩写}{module_name}{view的逻辑名称},如:
顾客管理CRM模块布局 LinearLayout 的布局id –> ll_crm_content
模块简称为qz的 ImageView 的布局id –> iv_qz_photo
常见控件View与其缩写对照参考表如下:
这里写图片描述
图片资源文件命名规范
图标命名:{module_name}ic{名称} 例如:
crm_ic_app.png
背景图片命名: {module_name}bg{名称} 例如:
crm_bg_navbar_highlight_normal.9.png
按钮Button命名: {module_name}btn{名称} 例如:
crm_btn_login_normal.9.png
按钮checkbox图片命名:{module_name}checkbox{名称} 例如:
crm_checkbox_cart_true.png
其他图片命名:{module_name}icon{名称} 例如:
qz_icon_blue_circle.png
代码风格
大括号问题
风格一
if (hasMoney())
{
}
else
{
}
风格二
if (hasMoney()) {
} else {
}
空格问题
if else | while | 运算符两端 等后面需用空格隔开。例如:
规范的编写方式:
if (hasMoney()) {
} else {
}
for (int i = 0; i < 10; i++) {
}
不规范的编写方式:
if(hasMoney()){
}else{
}
for(int i=0; i<10;i++){
}
方法参数
当方法参数数量过多时,需进行换行处理.
注释
必须要对所有实例变量、类常量进行注释说明 例如:
// 用户姓名
private String userName
必须对所有的类、接口进行注释说明 例如:
/**
* Activity基类
*
* @author ice_zhengbin@163.com
*/
public class BaseActivity extends Activity
{
}
必须对所有的方法进行注释说明 例如:
/**
* 请求
*
* @param path 路径
* @param generalParams 基本参数
* @param businessParams 业务参数
* @return 请求结果
* @throws ApiException 请求错误则返回该异常
*/
public Map
相关文章推荐
- 最美应用-从Android研发工程师的角度之[最美时光]
- 一培训机构设计的学习android课程内容:供大家参考
- [置顶] Android开发之动态库调用
- Android ftp 上传图片
- Android语言国际化
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- android知识杂记
- Android笔记(七)活动的生命周期
- android studio导入so库Failure [INSTALL_FAILED_NO_MATCHING_ABIS]解决方案
- android SDK Manager下载和更新速度慢甚至无法下载解决方案
- Android 使用Fragment界面向下跳转并一级级返回
- Android学习笔记:超能RecyclerView组件使用(下)--实现监听事件
- Android之ExpandableListView的属性(Group不展开)
- Android播放音乐时跳动的屏谱demo
- DDMS是什么
- 安装64位ubuntu 14.04-搭建android开发环境
- android学习资料
- Android
- 基于Jenkins+git+gradle的android持续集成
- Android之如何强制横竖屏显示