Android开发规范
为了规范Android项目的开发工作,需要循序既定的开发规范,统一风格。
1、开发环境与IDE:
- 开发采用android studio3.0,java版本使用jdk1.8;
- 编码格式统一为UTF-8;
- android系统最低版本支持默认为4.0.3,有特殊要求的按要求指定;
2、特定技术规范:
- 日志打印使用
Platform
中LogPrint
库; - 项目使用mvp/mvc架构;
- 尽量使用
kotlin
替代java
进行开发; - 对于第三方库的引用,尽量先从
Platform
中寻找可用的库,如无已实现的功能模块则需要选择比较稳定、有作者在维护的开源项目; - 引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大;
3、命名规范:
- 代码中的命名不允许使用拼音、中文的方式,尽量使用正确的英文拼写和语法,让阅读者易于理解,避免歧义。
- 包名全部采用小写,主包名采用com.[公司名称].[项目名称]的命名方式,下级包名可根据不同模块进行命名。
- 类名、接口名、枚举名采取大驼峰式命名,第一个和后面的单词都要第一个字母大写。
- 常量、枚举等均采用大写形式,用下划线区分各单词。
- 资源文件命名全部小写,采用下划线命名法,注意图片文件命名只能用小写字母、数字,否则会导致R文件无法编译。
string.xml
、dimen.xml
、color.xml
的name
命名使用下划线命名法,采用以下规则:模块名+逻辑名称
,同一个界面的所有资源放到一起,方便查找;style
的name
命名使用小驼峰命名法,将一组相关的和重复android:****
的属性放到一个通用的style
中以方便复用。
4、编程规范
- 编辑完代码文件后使用
ctrl+alt+L
进行格式化; - 编辑完代码文件后删除多余的import,尽量减少警告出现;
strings.xml
中使用%1$s
实现字符串的通配;- 数据一定要效验,例如字符型转数字型,如果转换失败一定要有缺省值;
- 对于未完成的方法,使用
//TODO
加以标记; - 为了减少他人阅读你代码的痛苦值,请在关键地方做好注释。
- 异步任务的ui操作需要判断原activity是否处于激活状态;
- 方法基本上都按照调用的先后顺序在各自区块中排列;
- 及时关闭打开的输入输出流;
- 尽量减少对变量的重复计算;
- 不要在循环中使用
try…catch…
,应该把其放在最外层; - 关键逻辑点需要添加日志打印,用于快速定位错误;
- 每个
switch
语句都需要包含一个default
语句组,即使它什么代码也不包含。
5、UI规范
- 软键盘的弹出控制,不要让其覆盖输入框;
- 合理定制
EditText
的android:imeOptions
属性,提升用户体验; - 复杂布局使用
RelativeLayout
; - 合理布局,有效运用
<include>
标签; - 建议使用
RecyleView
替代ListView
;
6、代码提交规范
- 提交代码之前先在本地进行测试,确保项目能编译通过,且能够正常运行,不可盲目提交;
- 必须保证服务器上的版本是正确的,项目有错误时,不要进行提交;
- 提交时注意不要提交本地自动生成的文件,比如项目中的
idea
、build
文件夹是不需要提交的。 - 对提交的信息采用明晰的标注;
7、性能规范
Activity
和Fragment
里面有许多重复的操作以及操作步骤,所以我们都需要提供一个BaseActivity
和BaseFragment
,让所有的Activity
和Fragment
都继承这个基类;- 尽量不要使用
HashMap
,可使用针对android优化的SparseArray
进行替代; - 尽量不要使用枚举,因为枚举会牺牲执行的速度并大幅增加文件体积,很容易造成OOM,请使用静态常量加上
@IntDef
和@StringDef
注释进行替代; - 尽量采用懒加载的策略,即变量在需要的时候才创建;
- 使用带缓冲的输入输出流进行IO操作;
- 页面需要显示web图片时,最好异步加载以提高用户体验;
- 尽量避免static成员变量引用资源耗费过多的实例,比如
Context
; - 使用
WeakReference
代替强引用,弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用; - activity销毁时及时回收
Bitmap
; - 服务端可以实现的,尽量不要放在客户端;
- 不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致
message.what
冲突; - debug日志需要在提交release版本时停止打印。
This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接:http://yeguli.cn/2018/01/03/Android开发技术规范/