Android 项目编码规范总结笔记

注释的目的是为了弥补代码自身在表达上的不足

图片取自网络

好的代码能够让任何人在不需要任何注释的情况下看懂,由此可见,养成清晰明确规范的编码风格多重要。

每个公司项目都会自己定义一套命名规则来着,遵守命名规则来编写代码,方便自己,方便他人,百度一下Android命名规则,当然能得到很多结果,规则大致相似,也有少许差异,然而本人记性一般,偶尔看到更简便,自己也更为喜欢的命名规范,在没有一直使用到的情况下,过个几天也许就忘记了,所以,一定得做个笔记才行,哈哈哈~

  • 包名(小写,个人喜欢按控件来取包名,而不是业务,com.xx[公司或个人或项目名].[控件或者模块名].[业务比较多的情况下,页面又多就再分个模块名])

    • com.xx.activity(页面用到的Activity类)如果activity比较多,再加一层 com.xx.activity.model
    • com.xx.fragment(页面用到的Fragment类)
    • com.xx.base (基础共享的类)
    • com.xx.adapter(适配器)
    • com.xx.utils(公共工具方法类,包括网络、日志、日期、文件等等一系列的工具类)
    • com.xx.bean(JavaBean类)或者 com.xx.entity/domain/model
    • com.xx.db( 数据库操作类)
    • com.xx.view(自定义的View类)或者com.xx.ui
    • com.xx.service( Service服务)
    • com.xx.receiver(BroadcastReceiver广播)
      还有其他包就按模块作用取名吧,总之要一眼知道这个包都是装了些哪种类型的类。
  • 类名(大驼峰,用名词或名词词组,首字母大写,主要取名方式还是要让别人知道这是个什么样的类,这个类主要做什么事情,各个组件的取名后缀就加上组件,比如说xxActivity,xx就描述这是个啥Activity)
    什么XXXAplication、WelcomeActivity、ArticleAdapter、HomePosterParser、ActivityStackManager、LogUtil、NewDBHelper、TimeServiceBroadcast、JPushReceiver、BaseActivity、BaseFragment、接口IRunable

  • 方法名(小驼峰、动词、首字母小写)

    • 初始化相关方法,使用init为前缀——initXX()
    • 方法返回值为boolean型——isXX()或者checkXX()
    • 返回某个值——getXX()
    • 对数据进行处理——handleXX()
    • 弹出提示框和提示信息——displayXX()或者showXX()
    • 保存数据——saveXX()
    • 数据重组——resetXX()
    • 清除数据——clearXX()或者removeXX()
    • 绘制数据或效果——drawXXX()
    • 按钮点击方法,命名以to开头——toLogin
    • 设置方法,命名以set开头——setData
    • 通过异步加载数据的方法,命名以load开头——loadData
  • 常量名(全部为大写、单词间用下划线分开)

    • public final static int PAGE_SIZE = 20;
  • 变量({范围描述+}意义描述+类型描述,驼峰式,首字母小写)

    • private TextView titleTv; 个人认为 tvTitle也是可以的
    • 非公有,非静态字段命名以m开头
    • 静态字段命名以s开头
    • 公有非静态字段命名以p开
    • 公有静态字段(全局变量)命名以g开头
    • public static final 字段(常量) 全部大写,并用下划线连起来
    • 集合添加如下后缀:List、Map、Set
    • 数组添加如下后缀:Arr
  • 控件缩写

    • TextView tv
    • EditText edt
    • Button btn
    • ImageButton ibtn
    • ImageView img
    • ListView lv
    • RadioGroup group
    • RadioButton rbtn
    • ProgressBar progress
    • SeekBar sbar
    • CheckBox cbox
    • Spinner spinner
    • TableRow row
    • LinearLayout llayout (TableLayout、RelativeLayout 类似)
    • ScrollView scroll
    • SearchView search
    • TabHost host
    • TabWidget widget
  • 控件id(控件缩写+{范围}+意义)

    • 登录按钮:<Button android:id="@+id/btn_login" ... />
  • 资源布局文件(组件类型+功能模块(描述),用组件名称开头的布局文件可以很清晰的表示这个布局文件是被那类组件使用)

    • activity_功能,为Activity的命名格式,比如activity_main.xml、activity_more.xml
    • fragment(frag)_功能,为Fragment的命名格式
    • dialog_功能,为Dialog的命名格式,比如dialog_hint.xml
    • item_list_功能,为ListView的item命名格式
    • item_grid_功能,为GridView的item命名格式
    • header_list_功能,为ListView的HeaderView命名格式
    • footer_list_功能,为ListView的FooterView命名格式
    • ppw_描述,为PopupWindow命名
    • include_模块,为包含项命名,例如:include_head.xml、include_bottom.xml
  • 动画文件(anim文件夹下,小写,下划线,加前缀)

    截图取自网上

  • strings(类型+{范围}+功能)

    • 页面标题,命名格式为:title_页面
    • 按钮文字,命名格式为:btn_按钮事件
    • 标签文字,命名格式为:label_标签文字
    • 选项卡文字,命名格式为:tab_选项卡文字
    • 消息框文字,命名格式为:toast_消息
    • 编辑框的提示文字,命名格式为:hint_提示信息
    • 图片的描述文字,命名格式为:desc_图片文字
    • 对话框的文字,命名格式为:dialog_文字
    • menu的item文字,命名格式为:action_文字
  • colors

    • 背景颜色,添加bg前缀
    • 文本颜色,添加text前缀
    • 分割线颜色,添加div前缀
    • 区分状态时,默认状态的颜色,添加normal后缀
    • 区分状态时,按下时的颜色,添加pressed后缀
    • 区分状态时,选中时的颜色,添加selected后缀
    • 区分状态时,不可用时的颜色,添加disable后缀
  • **Drawable **
    图标类,添加ic前缀
    背景类,添加bg前缀
    分隔类,添加div前缀
    默认类,添加def前缀
    区分状态时,默认状态,添加normal后缀
    区分状态时,按下时的状态,添加pressed后缀
    区分状态时,选中时的状态,添加selected后缀
    区分状态时,不可用时的状态,添加disable后缀
    多种状态的,添加selector后缀(一般为ListView的selector或按钮的selector)

  • styles(模块名+逻辑名称)

    • main_tabBottom
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,188评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,464评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,562评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,893评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,917评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,708评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,430评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,342评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,801评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,976评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,115评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,804评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,458评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,008评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,135评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,365评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,055评论 2 355

推荐阅读更多精彩内容