安卓应用 开发规范 1 、 开发 工具 设置 1、1 编码方式统一用 UTF-8、 Android Studio默认已就是 UTF-8,只要不去改动它就可以了. 1、2 缩进统一为 4 个空格,将 Tab size 设置为 4 则可以保证 tab 键按 4 个空格缩进。另外,不要勾选上 Use tab character,可以保证切换到不同 tab长度得环境时还能继续保持统一得4个空格得缩进样式. 1、3 一行声明一个变量,不要一行声明多个变量,这样有利于写注释. private String param1; // 参数 1
private String param2; // 参数 2
1、4、 行宽设置为 100,设置格式化时自动断行到行宽位置. 1、5、 使用快捷键进行代码自动格式化。
1、6、 一个方法最多不要超过 40 行代码. 1、7 范围型得常量用枚举类定义,而不要直接用整型或字符,这样可以减少范围值得有效性检查。
// 用枚举类定义,Good
public enum CouponType {
// 现金券
SerializedName("1”)
CASH,
// 抵用券
SerializedName("2")
DEBIT,
// 折扣券
SerializedName(”3”)
DISCOUNT
} // 用整型定义,Bad
public static final int TYPE_CASH = 1; // 现金券
public static final int TYPE_DEBIT = 2; // 抵扣券
public static final int TYPE_DISCOUNT = 3; // 折扣券
1、8 文字大小得单位统一用 sp,元素大小得单位统一用 dp。
1、9 应用中得字符串统一在 strings、xml中定义,然后在代码与布局文件中引用. 1、10 颜色值统一在colors、xml中定义,然后在代码与布局文件中引用。另外,不要在代码与布局文件中引用系统得颜色,除了透明。
1、11 图片资源统一放在 mipmap文件夹,相应得文件夹存放相应得路径。mdpi—〉48*48,hdpi—>72*72,xhdpi->96*96,xxhdpi-〉144*144, xxxhdpi-〉192*192 16.drawable 存放自定义 XML 文件。
2 、
命名规范 2、1、 包命名 me、keeganlee、kandroid、model
2、2、 类与接口命名 使用大驼峰规则,用名词或名词词组命名,每个单词得首字母大写。
以下为几种常用类得命名:
activity 类,命名以 Activity 为后缀,如:LoginActivity
fragment 类,命名以 Fragment 为后缀,如:ShareDialogFragment service 类,命名以 Service 为后缀,如:DownloadService adapter 类,命名以Adapter 为后缀,如:CouponListAdapter 工具类,命名以 Util 为后缀,如:EncryptUtil 模型类,命名以 Bean为后缀,如:CouponBean 接口实现类,命名以 Impl 为后缀,如:ApiImpl 2、3、 方法命名 使用小驼峰规则,用动词命名,第一个单词得首字母小写,其她单词得首字母大写. 以下为几种常用方法得命名:
初始化方法,命名以init 开头,例:initView 按钮点击方法,命名以 to 开头,例:toLogin 设置方法,命名以 set 开头,例:setData 具有返回值得获取方法,命名以 get开头,例:getData 通过异步加载数据得方法,命名以 load 开头,例:loadData 布尔型得判断方法,命名以 is或has,或具有逻辑意义得单词如 equals,例:isEmpty 2、4、 控件缩写 控件 缩写 控件 缩写 TextView txt EditText edt Button btn ImageButton ibtn ImageView img ListView list RadioGroup group RadioButton rbtn
控件 缩写 控件 缩写 ProgressBar progress SeekBar seek CheckBox chk Spinner spinner TableLayout table TableRow row LinearLayout llayout RelativeLayout rlayout ScrollView scroll SearchView search TabHost host TabWidget widget 2、5、 常量命名 全部为大写单词,单词之间用下划线分开。
public final static int PAGE_SIZE = 20;
2、6、 变量命名 {范围描述+}意义描述+类型描述得组合,用驼峰式,首字母小写。
private TextView headerTitleTxt; // 标题栏得标题
private Button loginBtn; // 登录按钮
private CouponBO couponBO; // 券实例
2、7、 控件 id命名 控件缩写_{范围_}意义,范围可选,只在有明确定义得范围内才需要加上. <!-— 这就是标题栏得标题 -->
TextView android:id="+id/txt_header_title"
<!——这就是登录按-— >
Button android:id=”+id/btn_login”
2、8、 layout 命名 组件类型_{范围_}功能,范围可选,只在有明确定义得范围内才需要加上。
以下为几种常用得组件类型命名:
activity_{范围_}功能,为 Activity得命名格式 fragment_{范围_}功能,为Fragment得命名格式 dialog_{范围_}功能,为Dialog 得命名格式 item_list_{范围_}功能,为 ListView 得 item 命名格式 item_grid_{范围_}功能,为GridView 得item 命名格式 header_list_{范围_}功能,为ListView得 HeaderView 命名格式 footer_list_{范围_}功能,为 ListView得FooterView命名格式 2、9、 strings 得命名 类型_{范围_}功能,范围可选。
以下为几种常用得命名:
页面标题,命名格式为:title_页面 按钮文字,命名格式为:btn_按钮事件 标签文字,命名格式为:label_标签文字 选项卡文字,命名格式为:tab_选项卡文字 消息框文字,命名格式为:toast_消息 编辑框得提示文字,命名格式为:hint_提示信息 图片得描述文字,命名格式为:desc_图片文字 对话框得文字,命名格式为:dialog_文字
menu 得 item 文字,命名格式为:action_文字 2、10、 colors 得命名 前缀{_控件}{_范围}{_后缀},控件、范围、后缀可选,但控件与范围至少要有一个。
背景颜色,添加 bg 前缀 文本颜色,添加text 前缀 分割线颜色,添加 div 前缀 区分状态时,默认状态得颜色,添加 normal 后缀 区分状态时,按下时得颜色,添加 pressed 后缀 区分状态时,选中时得颜色,添加 selected后缀 区分状态时,不可用时得颜色,添加 disable 后缀 11、 drawable 得命名 前缀{_控件}{_范围}{_后缀},控件、范围、后缀可选,但控件与范围至少要有一个。
图标类,添加 ic前缀 背景类,添加 bg 前缀 分隔类,添加 div 前缀 默认类,添加def 前缀 区分状态时,默认状态,添加 normal后缀 区分状态时,按下时得状态,添加pressed后缀 区分状态时,选中时得状态,添加 selected 后缀 区分状态时,不可用时得状态,添加 disable 后缀 多种状态得,添加selector后缀(一般为 ListView 得 selector 或按钮得 selector) 12、 动画文件命名
动画类型_动画方向。
fade_in,淡入 fade_out,淡出 push_down_in,从下方推入 push_down_out,从下方推出 slide_in_from_top,从头部滑动进入 zoom_enter,变形进入 shrink_to_middle,中间缩小 3 、 注释规范 3、1、 文件头注释 文件顶部统一添加版权声明,声明得格式如下:
/**
* Copyright (c) 2015、 Keegan 小钢 Inc、 All rights reserved、
*/
3、2、 类与接口注释 类与接口统一添加javadoc 注释,格式如下: /**
* 类或接口得描述信息
*
* author ${USER}
* date ${DATE}
*/
3、3、 方法注释
下面几种方法,都必须添加 javadoc注释,说明该方法得用途与参数说明,以及返回值得说明。
接口中定义得所有方法 抽象类中自定义得抽象方法 抽象父类得自定义公用方法 工具类得公用方法 /**
* 登录
*
* param loginName 登录名
* param password 密码
* param listener 回调监听器
*/
public void login(String loginName, String password, ActionCallbackListener&lt;Void&gt; listener);
3、4、 变量与常量注释 下面几种情况下得常量与变量,都要添加注释说明,优先采用右侧//来注释,若注释说明太长则在上方添加注释. 接口中定义得所有常量 公有类得公有常量 枚举类定义得所有枚举常量 实体类得所有属性变量 public static final int TYPE_CASH = 1; // 现金券
public static final int TYPE_DEBIT = 2; // 抵扣券
public static final int TYPE_DISCOUNT = 3; // 折扣券
private int id; // 券 id
private String name; // 券名称
private String introduce; // 券简介
4、 开发环境 开发工具:androidstudio 版本管理:git 开发版本:5、0 最低版本:4、0 5 、 第三方开源框架选择 网络请求:Volley JSON解析:fastjson,GSON 图片缓存:Volley 内存检测:leakcanary 数据库:sqlite 融云:即时通讯 友盟—数据统计,推送,意见反馈 设计模式:MVC 设计模式
配置主题:主题遵循配置化原则. 多渠道打包—gradle flavor 持续集成-jenkins APK 瘦身—编程开发得时候应该考虑,迭代优化。保证 APK 大小5M以内。
支付服务-微信支付、支付宝
分享-shade sdk
Activity:担任 MVC 中得 C
页面逻辑写在这里,按模块划分 Adapter:适配器 Api:自定义工具,如Volley 自定义请求 Base:基类 Bean:MVC 中得 M
javabean类 ,按模块划分 mon:常量定义空间
Dialog:自定义Dialog Fragment:碎片 Service:服务,按模块划分 Utils:工具类 Widget:自定义控件 Appcontext:自定义 AppContext Appmanager:同上 Appstart:开始页面 6 、 测试工具 建议可以尝试采用三方自动测试平台,验证 APP非功能特性. 7 、
移动设备尺寸规范汇总 参考
相关热词搜索: 规范 开发 android