美文网首页
cece—android开发规范v1

cece—android开发规范v1

作者: 工木南ng | 来源:发表于2016-06-20 16:54 被阅读38次

    包目录说明

    -constant-常量
    -db-数据库相关,数据库采用xutils
    -event-数据响应/事件结构体
    -model-模型
        --buiness-业务类
        --entity-实体
        --param-参数对象
    -network-网络请求
    -ui
        --activity activity控制活动
        --adapter 适配器
        --fragment 具体布局
        --presetner 业务接口 
        --presetnerimpl 业务具体实现 
       --widget 各种自定义控件
    -util 工具类
    

    资源命名

    图片资源

    图片资源是App中内存占用最高的部分,而内存占用大小和图片的分辨率成正比,原则上项目中使用的所有分辨率较大的PNG图片资源都要尽量进行.9.png格式处理,通过减少图片分辨率来降低内存占用。
    这里描述图片命名规范的范围不仅指放在drawable-hdpi、drawable-xhdpi中的png图片,也包括drawable文件夹下面采用xml生成的图片

    静态图片

    背景图片

    a) 通用背景图片命名:bg_general_描述.png
    
    b) 子模块背景图片命名:bg_模块名_描述.png
    例如:bg_general_title.png、bg_account_logo.png
    

    按钮图片

    a)    通用按钮图片命名:btn_general_描述.png
    
    b)  子模块按钮图片命名:btn_模块名_描述.png
    例如:btn_general_ok.png、btn_account_login.png
    

    普通Icon图片

    a)    通用Icon图片命名:ic_general_描述.png
    
    b)  子模块Icon图片命名:ic_模块名_描述.png
    例如:ic_general_header.png、ic_settings_network.png
    

    动态图片

    背景图片

    a) 通用背景图片命名:

     bg_general_描述_selected[unselect|pressed].png,
    
    对应drawable文件夹下selector命名:bg_general_描述_selector.xml
    

    b) 子模块背景图片命名:

    bg_模块名_描述_selected[unselect|pressed].png,
    
    对应drawable文件夹下selector命名:bg_模块名_描述_selector.xml
    

    按钮图片

    a) 通用按钮图片命名:

    btn_general_描述_selected[unselect|pressed].png,
    
    对应drawable文件夹下selector命名:btn_general_描述_selector.xml
    

    b) 子模块按钮图片命名:

     btn_模块名_描述_selected[unselect|pressed].png,
    
    对应drawable文件夹下selector命名:btn_模块名_描述_selector.xml
    

    通用字符串资源

    通用的字符串资源一般不与特定模块关联,字符串定义直接按中英文翻译即可。例如在strings.xml文件中定义如下字符串资源:


    <string name=yes>Yes</string>
    <string name="no">No</string>
    <string name="load_more">Load More</string>
    <string name="cancel">Cancel</string>
    <string name="save">Save</string>
    <string name="add">Add</string>

    子模块字符串资源

    子模块字符串资源定义格式规范:子模块名_英文描述。例如在strings.xml文件中分别定义如下字符串资源:

    <string name="error_delete">Sorry, an error occurred while attempting to delete the %s.</string>
    
    <string name="error_refresh">Sorry, %s could not be refreshed at this time. Please try again later.</string>
    <string name="error_upload">Sorry, an error occurred while uploading the %s.</string>
    


    <string name="media_edit_title_text">Title</string>
    <string name="media_edit_description_text">Description</string>
    <string name="media_edit_title_hint">Enter a title here</string>

    颜色资源

    默认颜色资源

    为了防止颜色资源重复定义,便于统一管理,会在colors.xml文件中定义整个应用默认的几种主色调,颜色的英文名字定义不要与模块名关联,例如:


    <color name="light_gray">#E6E6E600</color>
    <color name="gray">#CCCCCC00</color>
    <color name="white">#FFFFFF00</color>
    <color name="black">#00000000</color>
    <color name="list_row_bg">#EEEEEE00</color>
    <color name="list_row_selected">#7E7E7E00</color>

    子模块特有颜色资源

    如果子模块有特殊的定制需求,可以在colors.xml文件中定义对应模块的颜色资源,颜色的英文名定义规范:模块名_描述_color[background]。例如:


    <color name="chat_content_background">#AAAAAA00</color>
    <color name="chat_title_background">#BBBBBBB00</color>
    <color name="chat_word_color">#CCCCCC00</color>

    布局资源

    自定义布局的命名规范如下:

    • Activity content view:activity_模块名_描述.xml
    • Fragment content view: fragment_模块名_描述.xml
    • Dialog对话框布局:dialog_模块名_描述.xml
    • 列表项布局:list_描述_item.xml
    • 子模块其他类型布局:view_模块名_描述.xml

    类和接口命名

    使用大驼峰规则,用名词或名词词组命名,每个单词的首字母大写。
    以下为几种常用类的命名:

    activity类,命名以Activity为后缀,如:LoginActivity
    fragment类,命名以Fragment为后缀,如:ShareDialogFragment
    service类,命名以Service为后缀,如:DownloadService
    adapter类,命名以Adapter为后缀,如:CouponListAdapter
    工具类,命名以Util为后缀,如:EncryptUtil
    模型类,命名以BO为后缀,如:CouponBO
    接口实现类,命名以Impl为后缀,如:ApiImpl

    成员变量规范

    方法命名规则

    在layout布局文件中,所有控件ID采用小写下划线命名法。
    以下为几种常用方法的命名:
    初始化方法,命名以init开头,例:initView
    按钮点击方法,命名以to开头,例:toLogin
    设置方法,命名以set开头,例:setData
    具有返回值的获取方法,命名以get开头,例:getData
    通过异步加载数据的方法,命名以load开头,例:loadData
    布尔型的判断方法,命名以is或has,或具有逻辑意义的单词如equals,例:isEmpty

    控件View变量命名规则

    由于采用了xutils3 框架的注解框架,所以对应的控件View的类成员变量也采取和Id一致的命名规则,例如:

    /** 登录按钮 **/
    @ViewInject(R.id.btn_login)
    Button btn_login;
    /** 注册按钮 **/
    @ViewInject(R.id.btn_register)
    Button btn_register;
    /** 用户名**/
    @ViewInject(R.id.et_account)
    EditText et_account;
    /** 密码 **/
    @ViewInject(R.id.et_pwd)
    EditText et_pwd;
    @ViewInject(R.id.tv_title)
    TextView tv_title;
    

    控件缩写对照表

    控件 缩写 控件 缩写
    TextView txt EditText et
    Button btn ImageButton ibtn
    ImageView img ListView list
    RadioGroup rg RadioButton rbtn
    ProgressBar progress SeekBar seek
    CheckBox ck Spinner spinner
    TableLayout tablel TableRow row
    LinearLayout layout RelativeLayout rlayout
    ScrollView scroll SearchView search
    TabHost host TabWidget widget
    PopupWindow pw

    其他成员变量命名规则

    其他类型的成员变量命名规则为:m+类名,Boolean类型的成员变量命名规则为:is+逻辑名。例如:

    private Context mContext;
    
    private long mUserId;
    private boolean isToOpenGps = false;
    

    常量命名

    全部为大写单词,单词之间用下划线分开。

      public final static int PAGE_SIZE = 20;
    

    成员变量书写顺序

    依次是:公开的静态final常量、私有的静态final常量、公开成员变量、私有成员变量、控件View变量放在最后。

    禁止的编码规范

    • 禁止在不同地点出现相同或相似的逻辑代码块或layout代码块
    • 禁止只出现一次的成员变量,禁止出现可以简单计算替换的成员变量和临时变量
    • 禁止在一块代码中插入没有上下文的代码
    • 禁止在BroadcastReceiver的onReceiver()方法中注册观察者,使用线程,或Handler异步任务
    • 禁止在Activity之间或者Activity和Service之间互相持有对方并且直接调用对方的函数或成员变量,如finish(),stopSelf()等方法
    • 禁止同时在Mainfest文件和代码或者layout和代码中,分散初始化业务/控件相关属性
    • 禁止一个实例化对象的成员变量在另外一个对象中直接被修改,特别是View的属性值只能由持有这个View的对象修改
    • 禁止将AsycTask用于执行超长时间的异步任务,如网络长时间连接;禁止将AsycTask用于不需要后台任务跟UI线程交互的场景
    • 禁止在接收启动广播中读写文件、SharePreference、数据库等阻碍系统启动的费时任务

    建议的编码规范

    • 建议不要在Adapter的getView()、bindView()这类对性能敏感的函数中构造新对象或Listener对象
    • 建议静态对象或者单例模式中不要持有Activity(context)或Bitmap等大型成员对象
    • 建议异步任务运行后,主线程退出时执行异步任务的取消或中止操作
    • 建议不要把Handler定义成局部变量来使用,不要在单个类对象或者单个线程中创建多个Handler对象
    • 建议在以on开头的回掉函数中不使用for循环、数据库操作、文件操作等费时任务,例如onCreate()、onResume()、onPause等方法中
    • 建议不在主线程(UI线程)中执行数据库查询操作或Bitmap创建解析操作
    • 建议在两个模块传递参数的时候,不要传递List列表的索引或者位置参数

    相关文章

      网友评论

          本文标题:cece—android开发规范v1

          本文链接:https://www.haomeiwen.com/subject/rubwdttx.html