Android的一些命名规范

SalM00 7年前
   <h3><strong>序言</strong></h3>    <p>刚上大学那会开始写程序的时候,变量名都是a,b,x,y这些,写着简单,但是看起来很累,尤其是别人看你的代码的时候,简直了。后来lz进了学校的ACM校队,在那学习期间,命名被强制改好了许多,开始使用英文单词作为变量名了,比如student,teacher,两个单词拼凑在一起时就用下划线,等等,这样看起来通熟易懂多了,也提高了代码的可读性。后来学习Java的时候,有了包名,类名,还有一系列的命名。</p>    <h3>问题</h3>    <pre>  <code class="language-java">为什么我们在写代码的时候需要正确的命名规范呢?  答:因为在真正的项目开发中我们不是一个人在开发,而是一个团队,如果没有一个命名规范的话,那别人读你的代码就像是天书一样。</code></pre>    <p>下面我们就来介绍一下Android的一些命名规范:</p>    <p><strong>1、包名:采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名</strong></p>    <p>例如:com.公司名称简写.项目名称简写.模块名</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/0fc3599b0795d2a6874c881cbec4e825.jpg"></p>    <p style="text-align:center">包名的一些规范</p>    <p><strong>2、类名:采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。</strong></p>    <p>例如:LoginActivity</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/29a2a504087155b724253d5ada398f82.jpg"></p>    <p style="text-align:center">类名的一些规范</p>    <p><strong>3、接口:命名规则与类一样采用大驼峰命名法,多以able或ible结尾</strong></p>    <p>例如:interface Runna ble;interface Accessible。</p>    <p><strong>4、方法:动词或动名词,采用小驼峰命名法</strong></p>    <p>例如:onCreate(),run()</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/0dde018a3353648448eb4de89d02440f.jpg"></p>    <p style="text-align:center">方法名的一些规范</p>    <p><strong>5、变量:采用小驼峰命名法。类中控件名称必须与xml布局id保持一致。</strong></p>    <p>用统一的量词通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。</p>    <pre>  <code class="language-java">量词列表:量词后缀说明  First  一组变量中的第一个  Last   一组变量中的最后一个  Next   一组变量中的下一个变量  Prev   一组变量中的上一个  Cur    一组变量中的当前变量</code></pre>    <p><strong>6、常量:全部大写,采用下划线命名法。</strong></p>    <p>例如:MIN_WIDTH,MAX_HEIGHT</p>    <p><strong>7、资源文件(图片drawable文件夹下):全部小写,采用下划线命名法,加前缀区分</strong></p>    <p>命名模式:activity名称 逻辑名称/common 逻辑名称,如果有多种形态如按钮等除外如btn_xx.xml(selector)</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/106a85973a26e7b06aefef908757a562.jpg"></p>    <p style="text-align:center">资源文件的一些规范</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/5c5c32e85f2bc7a9c435bb07a1cc8a34.jpg"></p>    <p style="text-align:center">资源文件后缀的一些规范</p>    <p>8、资源布局文件(XML文件(layout布局文件)):全部小写,采用下划线命名法</p>    <pre>  <code class="language-java">1).contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:         功能模块.xml         例如:main.xml、more.xml、settings.xml         或则:activity_功能模块.xml         例如:activity_main.xml、activity_more.xml  2).Dialog命名:dialog_描述.xml         例如:dlg_hint.xml  2).PopupWindow命名:ppw_描述.xml         例如:ppw _info.xml  3). 列表项命名listitem_描述.xml         例如:listitem_city.xml  4).包含项:include_模块.xml         例如:include_head.xml、include_bottom.xml  5).adapter的子布局:功能模块_item.xml         例如:main_item.xml、</code></pre>    <p><strong>9、动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。</strong></p>    <p>注:前面为动画的类型,后面为方向</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/f52a9886ee85033acf47a997df1aae1a.jpg"></p>    <p style="text-align:center">动画文件的一些规范</p>    <p><strong>10、资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写 名”+“变量名”。</strong></p>    <p>注:页面控件名称应该和控件id名保持一致</p>    <pre>  <code class="language-java">strings.xml,colors.xml等中的id命名:   命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称。   strings.xml中,使用activity名称注释,将文件内容区分开来。</code></pre>    <p><strong>11、 layout中的id命名:view缩写_模块名称_view的逻辑名称</strong></p>    <p>view的缩写详情如下:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/5c0144e06cc7091f9da079c1e7ea5696.jpg"></p>    <p><strong>12、activity中的view变量命名</strong></p>    <pre>  <code class="language-java">命名模式为:逻辑名称+view缩写  建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view</code></pre>    <p> </p>    <p> </p>    <p>来自:http://www.jianshu.com/p/f663432ca60e</p>    <p> </p>