最佳实践之Android代码规范。
命名规范包命名规范采用反域名命名规则,包名全部小写,连续的单词只是简单地连接起来,不使用下划线,一级包名为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与其缩写对照参考表如下:
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMyBpZD0="图片资源文件命名规范">图片资源文件命名规范
图标命名:
{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
代码风格
大括号问题
风格一
1 2 3 4 5 6 7 8
if(hasMoney()) { } else { }
风格二
1 2 3 4 5
if(hasMoney()) { }else{ }
空格问题
if else|
while|
运算符两端等后面需用空格隔开。例如:
规范的编写方式:
1 2 3 4 5 6 7 8 9
if(hasMoney()) { }else{ } for(inti =0; i <10; i++) { }
不规范的编写方式:
1 2 3 4 5 6 7 8 9
if(hasMoney()){ }else{ } for(inti=0; i<10;i++){ }
方法参数
当方法参数数量过多时,需进行换行处理.
注释
必须要对所有实例变量、类常量进行注释说明例如:
1 2
// 用户姓名 privateString userName
必须对所有的类、接口进行注释说明例如:
1 2 3 4 5 6 7 8
/** * Activity基类 * */ publicclass BaseActivityextendsActivity { }
必须对所有的方法进行注释说明例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/** * 请求 * * @param path 路径 * @param generalParams 基本参数 * @param businessParams 业务参数 * @return 请求结果 * @throws ApiException 请求错误则返回该异常 */ publicMap request (String path, Map generalParams, Map businessParams)throwsApiException { returnnull; }
更多详细也可以参考:
[Google Java编程风格指南](http://hawstein.com/posts/google-java-style.html)
驼峰式命名法(CamelCase)
大驼峰式命名法(UpperCamelCase):每个单词的第一个字母都大写 如:XmlHttpRequest
小驼峰式命名法(lowerCamelCase):除了第一个单词,每个单词的第一个字母都大写 如:xmlHttpRequest
说明
该篇介绍为Android项目开发过程中的一些常用的命名规范|代码编写风格规范,该规范来源于个人资料整理(参考网络技术博客)、个人项目实践。参考这些规范有助于 项目的协同开发,项目代码的风格统一、在项目的后期维护中更方便、快捷的查找、理解和修改别人的代码。如朋友们有更好的规范要求、欢迎分享出来、一起讨论。
来源: http://www.92to.com/bangong/2017/04-08/20140129.html