命名规则

变量名:
1)尽量要取有意义的名字,比方说:一个用户名的成员变量。应该写成username。而不要仅仅写个string;
2)假设是常量。既在编码过程中。这个值是不会改变的,应该写成大写的名字。如:USER_AGE,也能够是User_Age,这里须要强调的是,假设是多个单词组成的。须要在每一个单词以下加一个下划线进行区分,整个命名是这种:static final int USER_AGE = 25。

方法名:
相同的,和变量名命名一样,方法名也要取有意义的名字,尽管你能看得懂,可是换一个人看可能就看不明确是什么意思了,比方:要写一个更新名字的方法,应该写成功updateUserName。而不是随便就取一个名字。

方法名第一个字母必须是小写的,随后跟着的单词第一个字母为大写。

类名:
第一个字母必须是大写的,如:AddUserActivity,事实上跟方法名几乎相同。仅仅只是是每一个单词的首个字母必须是大写的。

Android控件的命名:
<Button
      android:id="@+id/update_username"
  .../> 
or
<Button
      android:id="@+id/updateUserName"
  .../> 

个人建议第一种方式

然后在activity或者fragment中初始化控件的时候尽量和xml文件里写的名字一致,这样easy管理。

layout文件名称:
一般来说都是以activity开头的,如:activity_add_user.xml
or
假设是使用了fragment的话能够使用fragment开头,如:fragment_add_user.xml

adapter相应的xml文件,取名为:row_user.xml

凝视

每一个类名都要加上凝视,解释这个类的作用或者类的介绍。
建议每一个方法名上面都要加上凝视。比方:
/**
*
* 加入用户
*
*/
private void addUser(){...}

编码规则

1)在主线程中不要处理复杂的运算和逻辑,比方从server中获取图片。更新界面等等,应该使用异步来获取数据,另取一个子线程进行工作。再更新到界面上去,防止出现ANR。
2)不要一味使用if...else...,这样会使程序臃肿并且执行效率较低,能够换一个方式取代if...else...;
3)初始化控件的代码,不要所有放在oncreate方法里面,这种代码不美观并且不易于改动,能够另外创建一个方法进行初始化控件,然后在oncreate中调用就OK了。
4)在Adapter要使用ViewHolder,节省资源,不然非常easy出现ANR的;
5)一些常量能够写在同一个类中进行管理,降低反复代码的编写;
6)假设你创建的String是要改变它的值的,建议使用StringBuilder,假设是不用改变的。应该声明为静态final的常量;
7)巧用switch语句;
8)图片异步载入能够使用ImageLoader。或者有更好的能够介绍一下。图片下载来之后能够保存在缓存里,下次读的时候就不用再从server获取,直接读取缓存就能够了,这样能够减轻server的压力和获取的速度会更快;

当然另一些优化list。优化Android性能。优化Android UI的,这些都是作为Android从业人员必需要掌握的。假设还有人不明确的我再一一进行介绍。

还有其它的我想到了再进行更新。

技术总结--android篇(三)--代码规格和编码规范的更多相关文章

  1. 菜鸟笔记 -- Chapter 4.7 代码注释与编码规范

    4.7 代码注释与编码规范 在程序代码中适当的添加注释可以提高程序的可读性和可维护性.好的编码规范可以使程序更易阅读和理解.下面我们将介绍几种代码注释,以及应该注意的编码规范. 4.7.1 代码注释 ...

  2. 技术总结--android篇(四)--工具类总结

    StringUtil(视个人须要进行加入) public class StringUtil { public static boolean isMail(String string) { if (nu ...

  3. 技术总结--android篇(一)--MVC模式

    先介绍下MVC模式:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显 ...

  4. 测试需要了解的技术之基础篇三__持续集成持续交付DevOps

    持续集成.持续交付.DevOps 1.容器技术Docker:容器技术介绍.Docker安装与加速配置.Docker基础命令.Docker搭建selenium.Docker搭建持续集成平台Jenkins ...

  5. python篇第3天【编码规范】

    第二天加班去了! 语法约定: 多行语句 Python语句中一般以新行作为为语句的结束符. 但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示: total = item_one + \ i ...

  6. 使用 PHP_CodeSniffer 检查 代码 是否 符合 编码规范

    服务端部署:PHP_CodeSniffer HG 服务端部署篇 1.下载PHP_CodeSniffer 前往 https://github.com/squizlabs/PHP_CodeSniffer ...

  7. Android面试、开发之高手 编码规范与细节

    凝视 [规则1]必须用 javadoc 来为类生成文档.不仅由于它是标准.这也是被各种java 编译器都认可的方法. [规则2]在文件的開始部分应该有文件的说明信息,应包括例如以下信息: (1)版权信 ...

  8. JAVA_SE基础——编码规范&代码编写规则

    这次我来给大家说明下编码规范&代码编写规则  ↓ 编码规范可以帮助程序员在编程时注意一些细节问题,提高程序的可读性,让程序员能够尽快地理解新的代码,并帮助大家编写出规范的利于维护的Java代码 ...

  9. 【转】Android LCD(三):Samsung LCD接口篇

    关键词:android LCD控制器 Framebuffer PWM  平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos ...

随机推荐

  1. mysql处理添加外键时 error 150 问题

    当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的.像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上, ...

  2. iOS学习笔记31-从图册获取图片和视频

    一.从图册中获取本地图片和视频 从图册中获取文件,我们使用的是UIImagePickerController,这个类我们在之前的摄像头中使用过,这里是链接:iOS学习笔记27-摄像头,这里我们使用的是 ...

  3. JStorm源代码阅读——消息的确认机制

    Acker //Acker相当于一个bolt,用于处理事件 public class Acker implements IBolt { private RotatingMap<Object, A ...

  4. LibreOJ2095 - 「CQOI2015」选数

    Portal Description 给出\(n,k,L,R(\leq10^9)\),求从\([L,R]\)中选出\(n\)个可相同有顺序的数使得其gcd为\(k\)的方案数. Solution 记\ ...

  5. iOS-多线程(3)

    多线程之GCD(grand central dispatch)中心调度 为了简化多线程的操作,iOS为我们提供了GCD来实现编程. 使用GCD只要遵守两个步骤即可: 创建对列(串行队列,并行队列) 将 ...

  6. bzoj 3203 凸包+三分

    题目大意 具体自己看吧link 读入n,D,表示n关 大概就是第i关有i只僵尸排成一队来打出题人 最前面那只是编号为\(i\)的僵尸,最后面的一只是编号为\(1\)的僵尸 最前面的僵尸离出题人\(X_ ...

  7. Codevs 1148 == 洛谷 P1057 传球游戏

    1148 传球游戏 2008年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 上体育课的时候,小蛮的老师 ...

  8. yii使用bootstrap分页样式

    Bootstrap是Twitter推出的一个开源的用于前端开发的工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架.Bootstra ...

  9. 安卓WebView在项目中总结

    一.简介 在安卓开发中我们会遇到许多处理网页的功能,以下就是我在实际中用到的分享给大家 1.显示和渲染Web页面 2.可和JavaScript交互调用 二.常用的方法 //激活WebView为活跃状态 ...

  10. CCCC L2-024 部落【并查集】

    https://www.patest.cn/contests/gplt/L2-024 首先在一行中输出这个社区的总人数.以及互不相交的部落的个数.随后对每一次查询,如果他们属于同一个部落,则在一行中输 ...