当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] Android代码规范开始之前请详细阅读并遵守Android开发者代码风格指南不要使用拼音命名名称应简洁而富于描述,使用完整单词,避免使用缩写(除非该缩写被更广泛使用,例如UR

 Android代码规范

开始之前请详细阅读并遵守Android开发者代码风格指南

不要使用拼音命名

名称应简洁而富于描述,使用完整单词,避免使用缩写(除非该缩写被更广泛使用,例如URL、HTML)

代码中不要出现中文标点字符,例如:‘,’、‘:’

注释中可以书写中文标点字符,便于阅读

注释遵循英文写作习惯,英文标点符号后空一格,避免句子紧凑

颜色色值的字母必须全部大写

命名规则

1. 包命名

包名由小写的字母组成,默认以com.huashengrun.android.betterus开头,然后接上根据功能划分的模块名。

com.huashengrun.android.betterus.ui

com.huashengrun.android.betterus.ui.widget

2. 类和接口命名

名称的首字母需要大写,如果由多个单词组成,那么每个单词的首字母需要大写,其他字母小写。

class LoginActivity

interface OnClickListener

3. 方法的命名

采用驼峰命名法来命名。

public String getName()

public boolean isExist()

4. 变量的命名

采用驼峰命名法命名。

非公共的、非静态的域变量用m前缀

静态域变量用s前缀

集合类型的变量使用复数形式,若多种集合类型的变量存储的是相同类型的对象,除了根据功能区分,也可以简单通过集合类型来区分

public class User {

private int mId;

private static User sUser;

String mName;

protected int mAge;

public int level;

public List companies;

public List listScores;

public Score[] arrScores;

}

5. 常量的命名

常量需要声明为final static形式,组成名称的单词必须全部大写,单词之间用下划线隔开。

private static final int FADE_IN_TIME = 200;

6. 异常的命名

名称必须以Exception结尾。

NullPointerException

7. 布局的命名

name是模块的名称或功能的描述,单词必须全部小写,单词之间用下划线隔开。

类型 模板 事例
Activity activity_name.xml activity_main.xml
Tab tab_name.xml tab_home.xml
Dialog dialog_name.xml dialog_login.xml
ListItem item_name.xml item_contact.xml
[!--empirenews.page--]

8. ID的命名

组成名称的单词必须全部小写,单词之间用下划线隔开,名称不需要复杂的层级定位,只需要准确描述所代表控件的功能作用即可,通常我们在名称前使用控件类型的缩写前缀来避免重复起名的麻烦。

name是模块的名称或功能的描述。

类型 模板 事例
TextView tv_name.xml tv_title.xml
EditText et_name.xml et_mail.xml
RelativeLayout rlyt_name.xml rlyt_login.xml
LinearLayout llyt_name.xml llyt_login.xml

控件类型缩写对照表

控件类型 源文件中缩写 资源文件中缩写
View V v
Button Btn btn
ImageButton Ibtn ibtn
RadioButton Rbtn rbtn
ToggleButton Tbtn tbtn
CheckBox Chk chk
TextView Tv tv
EditText Et et
ImageView Iv iv
ListView Lv lv
ProgressBar Pbar pbar
ScrollView Sclv sclv
RelativeLayout Rlyt rlyt
LinearLayout Llyt llyt
TableLayout Tlyt tlyt
FrameLayout Flyt flyt
[!--empirenews.page--]

9. 图片的命名

name是模块的名称或功能的描述。

图片名称一般由模块名称/功能描述 + 后缀组成,后缀是可选的。

前缀 描述 示例
ic_ 图标 ic_launcher.png
bg_ 背景图片 bg_title.png
sl_ 状态图片 sl_button.png
后缀 描述 示例
普通状态 login.png
_p 按压状态 login_p.png
_c 选中状态 login_c.png
_d 不可用状态 login_d.png
[!--empirenews.page--]

10. 其他资源命名

遵循见名知意的原则,组成名称的单词必须全部小写,单词之间用下划线隔开。

欢迎

#FFFFFF

注释

养成良好的注释习惯,对提升自己的编程能力和团队合作能力有很大的益处。

1. 文件注释

源文件的开头需要注释说明当前的文件信息,包括文件名、作者、版本信息、日期、修改记录等。

/*

* -----------------------------------------------------------------

* Copyright (C) 2007-2014, by HuaShengRun, Shenzhen, All rights reserved.

* -----------------------------------------------------------------

*

* File: RequestManager.java

* Author: JiongBull

* Version: 1.0

* Create: 2014-8-10

*

* Changes (from 2014-8-10)

* -----------------------------------------------------------------

* 2014-8-10 : 创建 RequestManager.java (JiongBull);

* -----------------------------------------------------------------

*/

2. 类注释

在类的开头添加类信息的描述.

/**

* 管理Volley的Request, 使用之前需要调用init()进行初始化.

*/

public class RequestManager {

}

3. 方法注释

一般情况下需要为每个方法添加注释,包括方法的功能描述,参数信息、返回值、异常信息等,有些约定俗成的方法可以不需要添加注释,请参考约定俗成的说明。

/**

* 输出日志.

*

* @param context Context

* @param logLevel 日志等级

* @param tag 标签

* @param content 输出内容

* @param throwable 异常信息, 若没有异常可为空

*/

private static void trace(final Context context, final int logLevel, final String tag, final String content, final Throwable throwable) {

...

}

4. 域变量和常量注释

/**

* 日志的扩展名.

*/

public static final String LOG_EXTENSION = ".log";

/**

* 网络请求队列.

*/

private RequestQueue mRequestQueue;

5. 其他注释

单行注释

view.setImageResource(defaultImageResId); // 无图片显示默认图片

区块注释

/* 网络图片添加渐变动画 */

Resources resource = mContext.getResources();

final TransitionDrawable transitionDrawable =

new TransitionDrawable(new Drawable[] {

new ColorDrawable(android.R.color.transparent),

new BitmapDrawable(resource, bmpResponse)

});

view.setBackgroundResource(defaultImageResId);

view.setImageDrawable(transitionDrawable);

transitionDrawable.startTransition(RequestManager.FADE_IN_TIME);

6. XML注释

约定俗成

1. get / set 方法的注释

通过IDE工具批量生成域变量的 get / set 方法可以不用注释。

2. 第三方库生成代码的注释

第三方库生成的代码可以不用注释,例如greenDao生成的代码

3. 通用类的注释

通用类的公共方法应全部添加注释。

4. 一般情况下的注释

例如在activity、service等文件中,只需对关键的类变量进行注释,方法建议全部添加注释。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭