Android代码书写规范

    xiaoxiao2025-03-18  14

    想起整理一遍书写规范 ,于是结合自己的理解、习惯和前人的经验总结了一下

    一、命名规则

        命名原则不要使用拼音命名;名称应简洁而富于描述,使用完整单词,避免使用缩写(除非该缩写被更广泛使用,例如URL、HTML);避免难懂的名称,如属性名xxX777,这样的名称会导致多义性。

    1.包命名

    包名由小写的字母组成,默认以com.xxx.android.项目名称缩写.开头,然后接上根据功能划分的模块名。如:com.xxx.android.apm.ui.widget

    2.类和接口命名

    名称的首字母需要大写,如果由多个单词组成,那么每个单词的首字母需要大写,其他字母小写。继承自系统组件类的命名,后缀必须明确表示出系统组件的类别,Activity类后缀使用Activity,Service类后缀使用Service,BroadcaseReceiver类后缀使用Receiver,ContentProvider使用Provider。如:class LoadingActivity

    3.方法命名

        方法名是一个动词或者动名词结构,采用驼峰命名法来命名。如doUpdate()

    4.变量命名

    采用驼峰命名法来命名,非公共的、非静态的域变量用m前缀,静态域变量用s前缀。如:

    private int mId; private static User sUse;

    public int level;

    其中系统控件中在后缀中体现控件类型,如下所示:

    组件名称

    简写

    组件名称

    简写

    Button

    Btn

    RadioButton

    Rbtn

    ImageButton

    Ibtn

    TextView

    Tv

    ImageView

    Iv

    ListView

    Lv

    ProgressBar

    Pbar

    EditText

    Et

    ScrollView

    Sv

    CheckBox

    Cb

    RelativeLayout

    Rly

    LinearLayout

    Lly

    TableLayout

    Tly

     

     

    FrameLayout

    Fly

     

     

    5.常量命名

    类常量的声明,应该全部大写,单词间用下划线隔开。如:static final int MIN_WIDTH = 4;

    6.异常命名

    名称必须以Exception结尾。如:NullPointerException

    7.Layout 命名

    命名必须以全部单词小写,单词间以下划线分割,并且尽可能的使用名词或名词组,即使用 模块名_功能名称来命名。如:addressbook_list.xml

    8.资源 ID 命名

    layout中所使用的id命名必须以全部单词小写,单词间以下划线分割,并且尽可能的使用名词或名词组,并且要求能够通过id直接理解当前组件要实现的功能。如:EditText名 @+id/book_name_edit

    9.Activity 中 View 命名

    采用大小写混合模式,第一个单词首字母小写,其余单词首字母大写最后一个单词为该View 类型的缩写,格式为逻辑名+View 类型缩写 。如:Button homeBtn

    10.strings.xml 中 ID 命名

    命名必须以全部单词小写,单词间以下划线分割,并且尽可能的使用名词或名词组,如:

    main_menu_about main_title common_exit common_app_name

    11.资源命名

    layout中使用的所有资源(如drawable,style等)命名必须以全部单词小写,单词间以下划线分割,并且尽可能的使用名词或名词组,即使用模块名_用途来命名。如果为公共资源,如分割线等,则直接用用途来命名。如:menu_icon_navigate.png

    二、书写规则

    1、所有的源文件都应该在开头有一个的注释,其中列出版本信息、日期和版权声明

    2、尽量避免一行的长度超过 100 个字符

    3、大括号不单独占用一行,应紧接着上一行书写

    4、一行一个声明

    5、尽量在声明局部变量的同时初始化

    6、编写SQL语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。如:SELECT * FROM Table

    7、将大的复杂代码段分为较小的、易于理解的模块

    三、注释规则

    对重要的程序加注释进行说明,修改代码或删除时,将原代码用注释的方法屏蔽,同时要加开发者自身对修改操作的注释;避免杂乱的注释,而是应该使用空白将注释同代码分开;注释应对代码进行准确的说明,不应存在歧义;移除所有临时或无关的注释,以避免在日后的维护工作中产生混乱。

    1.文件注释

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

    /** * * File: MainActivity.java * Author: xxx * Version: 1.0 * Create: 2016-8-14 * * Changes (from 2016-8-20) * */

    2.类注释

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

    /** * 管理Volley的Request, 使用之前需要调用init()进行初始化 */ public class RequestManager { }

    3.方法注释

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

    /**  * 一句话方法描述

     * 方法详细描述

     * @param 参数名 参数描述

     * @param 参数名2 参数描述

     * @return 返回值类型说明

     * @throws Exception 异常说明

     * @see 类/方法/成员

    */

    4.域变量和常量注释

    /** * 日志的扩展名 */ public static final String LOG_EXTENSION = "xxx";

    /** * 网络请求队列 */ private RequestQueue mRequestQueue;

    5.其他注释

    单行注释

    //注释内容

    块注释

    /*注释内容*/

    四、编程规则

    1在使用单位时,如果没有特殊情况,一律使用 sp 作为文字大小的单位,dp 作为其他元素的单位

    2避免用一个对象访问一个类的静态变量和方法,应该用类名替代

    3、不要忽略异常,处理错误并在 catch {} 语句块中替换为合适的值

    4、不要捕获顶级异常,可采用如下方案:

    分开捕获每一种异常,在一条 try 语句后面跟随多个 catch 语句块。这样可能会有点别扭,但总比捕获所有 Exception 要好些。请小心别在 catch 语句块中重复执行大量的代码。

    重新组织一下代码,使用多个 try 块,使错误处理的粒度更细一些。把 IO 从解析内容的代码中分离出来,根据各自的情况进行单独的错误处理。

    l 再次抛出异常。很多时候在你这个级别根本就没必要捕获这个异常,只要让方法抛出该异常即可。

    5对那些临时性的、短期的、够棒但不完美的代码,使用 TODO 注释

    6不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突

    7数据一定要效验,例如:字符型转数字型,如果转换失败一定要有缺省值;服务端响应数据是否有效判断

    8、如果多个Activity中包含共同的UI处理,那么可以提炼一个BaseActivity,把通用部分叫由它来处理,其他activity只要继承它即可

    9保证Cursor 占用的内存被及时的释放掉,而不是等待GC来处理

    转载请注明原文地址: https://ju.6miu.com/read-1297156.html
    最新回复(0)