dor*_*uck 70 android naming-conventions
我正在寻找一个彻底的Android命名约定建议.我在这里发现了一点:
http://source.android.com/source/code-style.html#follow-field-naming-conventions
其中说:
然而,我正在寻找更广泛的内容涵盖Android的所有方面:
如果有一些普遍接受的建议我会喜欢这样做.所有SDK似乎都采用自己的方式,所以我对Android的方式特别感兴趣.
Pra*_*ale 78
ribot的Android指南是标准命名约定的一个很好的例子:
XML文件的命名约定:
activity_<ACTIVITY NAME>.xml - for all activities
dialog_<DIALOG NAME>.xml - for all custom dialogs
row_<LIST_NAME>.xml - for custom row for listview
fragment_<FRAGMENT_NAME>.xml - for all fragments
Run Code Online (Sandbox Code Playgroud)
xml文件中组件/窗口小部件的命名约定:
X活动的所有组件必须以活动名称开头,所有组件都应具有前缀或短名称,例如btn for Button
例如,登录活动组件的名称应如下所示.
activity_login_btn_login
activity_login_et_username
activity_login_et_password
Run Code Online (Sandbox Code Playgroud)
主要组件的简称:
Button - btn
EditText - et
TextView - tv
ProgressBar - pb
Checkbox - chk
RadioButton - rb
ToggleButton - tb
Spinner - spn
Menu - mnu
ListView - lv
GalleryView - gv
LinearLayout -ll
RelativeLayout - rl
Run Code Online (Sandbox Code Playgroud)
Muz*_*Muz 21
这是一个优秀的最佳实践集合:https: //github.com/futurice/android-best-practices
这是我使用的.我也将从该链接中复制.
m或s前缀.我已经停了多年,没有他们我觉得更容易.IDE将告诉您何时使用私有或静态的东西; 这似乎是一个过时的惯例.functionUrl和unitId.没有unitID.tvName.带密码的EditView将是etPass.lv.id,而不是stringId.IDE会告诉您它何时是字符串,浮点数或长整数.Pass而不是Password.tv_name和et_passandroid:id第一个属性放在XML中.fragment_contact_details.xml,view_primary_button.xml,activity_main.xml./activities/MainActivity.java或/fragments/DeleteDialog.java.我的文件夹是活动的,片段,适配器,型号,和utils的.ChatListAdapter.对于颜色,请使用名称gray_light,而不是button_foreground.
对于尺寸,请使用名称spacing_large,而不是button_upper_padding.
如果要设置特定于按钮颜色或填充的内容,请使用样式文件.
使用类似命名空间的键命名字符串,并且不要害怕重复两个或更多键的值.
使用error.message.network,而不是network_error.
命名约定的目的不是使一切都整洁和一致.它可以标记可能的错误并改善工作流程.其中大多数都是为方便键盘快捷键而设计的.尽量集中精力减少错误并改善工作流程,而不是看起来不错.
前缀非常适合那些人,"TextView的名称是什么?" 时刻.
对于你不经常以这种方式访问的东西,有后缀,但可能会令人困惑.例如,我可能不确定是否将我的代码放在该页面的Activity,Fragment或Adapter中.如果你愿意,可以放弃它们.
XML ids通常是小写的,并且使用下划线只是因为每个人似乎都是这样做的.
Jet*_*hro 11
一致性
每个人(除非团队合作)都有自己的约定,你选择哪个并不重要.确保它在整个应用程序中保持一致非常重要.
结构就
个人而言,我使用这样的命名约定,因为它从类名运行到组件并且在整个xml中是一致的:
<ClassName> <ClassName>**Activity** classname_activity classname_activity_component_name这方面的一个例子是OrderActivity.class,order_activity.xml,order_activity_bn_cancel.请注意,所有XML都是小写的.
缩减布局
如果您想使用较短的名称来保持代码整洁; 那么另一种方法可以是缩写XML中的所有名称以及布局.
这方面的一个例子是OrderActivity .class:ord_act .xml,ord_act _bt_can,ord_act _ti_nam,ord_act _tv_nam.我把名字分成三个,但这取决于你有多少相似的名字
缩减组件类型当缩写组件类型时,尽量保持这些一致性.我通常使用两个字母作为组件类型,使用三个字母作为名称.但是,如果这是布局中该类型的唯一元素,有时名称将不再必要.ID的原则是独一无二的
nam_act_component_nam组件类型缩写(此列表显示两个字母很多)
帧布局: fl
线性布局: ll
表格布局: tl
表格行: tr
网格布局: gl
相对布局: rl
文本视图:电视
按钮: bt
复选框: cb
开关: sw
切换按钮: tb
图像按钮: ib
图像视图: iv
进度条: pb
搜索栏: sb
评级栏: rb
Spinner: sp
WebView: wv
编辑文本: et
Radio Group: rg
List View: lv
Grid View: gv
Expandable List View: el
Scroll View: sv
Horizontal Scroll View: hs
Search View:* se
Tab Host: th
Video View: vv
Dialer Filter: df
包括: ic
片段: fr
自定义视图(其他): cv
我认为还没有这方面的惯例.每个公司都有自己的规则,我认为这里没有人关心它.
对我来说,我更喜欢将名称绑定到上下文.例如,如果存在名为"MainActivity"的活动,则其布局名称将为"main_activity.xml",并且对于与此活动关联的每个资源,我添加前缀"main_activity",以便我知道它使用它.对于用于此活动的ID也是如此.
我使用这些命名的原因是它更容易找到它们,如果需要可以删除,如果你使用android库你将不会被其他人替换,因为这些名称非常独特.
我也尽可能地尝试给出有意义的名字,所以你通常不会将"listView"或"imageView2"视为ids,而是像"contactsListView"和"contactImageView".同名(或类似)也会匹配java代码中的变量,以便更容易找到.
所以,简而言之,我的提示是:
尽量避免名字中的数字.它们通常并不重要,并且表明您只使用拖放功能来设计UI设计器.
对于演示,POC和此处的问题,请不要担心命名.
尝试为所有资源名称(包括ids)添加前缀,以显示它们属于哪个上下文,并实现唯一性.
尽可能给出有意义的名字.
| 归档时间: |
|
| 查看次数: |
72128 次 |
| 最近记录: |