命名规则

变量名:
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. RHEL 7.3修改网卡命名规则为ethX

    RHEL 7网卡默认命名规则:以太网卡(Ethernet)为enX,无线网卡(WLAN)为wlX,修改网卡命名规则为ethX如下: 1.修改/etc/sysconfig/grub文件,添加net.if ...

  2. 学习 JSP:第一步Eclipse+Tomcat+jre(配置环境)

    [下载软件](例子version:版本号) Eclipse从官网下载(version:4.7)http://www.eclipse.org/downloads/ jre从官网下载(version:1. ...

  3. OpenMP 并行编程

    OpenMP 并行编程 最近开始学习并行编程,目的是为了提高图像处理的运行速度,用的是VS2012自带的OpenMP. 如何让自己的编译器支持OpenMP: 1) 点击 项目属性页 2)点击 配置 3 ...

  4. samba安装和配置

    windows和windows系统之间要实现文件共享是通过网络邻居实现linux和windows之间通过什么来实现文件共享呢?一.通过文件挂载(首先要制作ISO镜像文件,然后在用挂载命令)二.通过sa ...

  5. c语言第二题

    在我们的业务中经常会遇到很多业务,字符串会有一系列的操作,请写出以下的方法 1.写一个函数,给定char *p,char q,判断char *p中是否包含char q这个字符,包含则返回这个字符的下标 ...

  6. Codeforces 401D Roman and Numbers

    题目大意 Description 给定一个数 N(N<1018) , 求有多少个经过 N 重组的数是 M(M≤100) 的倍数. 注意: ①重组不能有前导零; ②重组的数相同, 则只能算一个数. ...

  7. 用JSONObject解析和处理json数据

    (一)jar包下载 所需jar包打包下载百度网盘地址:https://pan.baidu.com/s/1c27Uyre (二)常见场景及处理方法 1.解析简单的json字符串: 1 // 简单的jso ...

  8. java正则过虑字符

    public static void main(String[] args) { String testrString = "{\"abc\" : \"[123 ...

  9. ES6新语法学习

    参考: 1.http://es6.ruanyifeng.com/#docs/let#let-命令 2.https://reactjs.org/tutorial/tutorial.html 3.http ...

  10. [zlib]_[0基础]_[使用Zlib完整解压zip内容]

    场景: 1. 解压文件一般用在下载了一个zip文件之后解压,或者分析某个文件须要解压的操作上. 2. 解压文件,特别是解压带目录的zip文件往往系统没有提供这类Win32 API,当然C#自带库能解压 ...