公司安卓项目规范

1:项目代码目录结构:

这里是整个项目的包结构,保密原因在这里就不贴了。

2:命名规范:

2.1、java代码文件命名规范:

a:尽量使用英文命名,单词不缩写,不要使用下划线拼接,而且采取首字母大写拼接。

b:一般的java代码文件命名以继承名类名为后缀,例如:继承自Activity的文件可写成 MainActivity.java。继承Adapter可以写成UserListAdapter.java。

c:一些纯粹的类名命名遵守以大的归类为前缀,可自定,例如:InfoRank.java。

d:首字母及多个单词拼接每个单词首字母必须大写,不要用下划线连接。例如UserInfo.java.    不要写成user_info.java。

e:java类里面的方法名以小写开始,如果多个单词,从第二个单词开始首字母大写,例如:     getUserList()。

f:对于java类中成员变量,要采用英文单词,首字母小写,多个单词从第二个单词开始首     字母大写拼接,不要使用下划线拼接。例如:userMoney。

g:对于java类中的常量,只能包含字母和_,字母全部大写,单词之间用_隔开。例如:     MAX_AGE。

2.2、布局文件命名规范:

a:命名以全小写,单词不缩写,多个单词以下划线拼接,例如:user_info_list.xml。

user_info_list_item.xml(在使用listview时候就会用到一个子布局文件)。

b:布局文件的命名可参照代码文件的命名,一般来说一个页面一个xml,对应也会有一个     java代码,对应的java和xml命名可相同。如果BetRecord.java对应bet_record.xml

c:对于布局文件里面各个控件的命名,要遵循以文件名为开始。例如:在bet_record.xml,     退回键:@+id/bet_record_back,列表@+id/bet_record_listview,确定键

@+id/bet_record_submit,其他的控件要根据实际意义来命名,例如:

bet_record_no,bet_record_money,确保每个控件的名字在整个项目里面是唯一的。

2.3、图片资源文件命名规范:

a:命名以全小写,单词不缩写,多个单词用下划线拼接。

b:图片的命名必须唯一,整套图片直接存放于drawable-hdpi文件夹下,以命名分类。

c:按钮类图片命名以button为前缀,例如button_ok,button_cancel。

d:背景类图片命名以bg为前缀。例如:bg_top,bg_listview。

e:显示类图片命名以view为前缀。

f:展示类图片命名以dis为前缀,如幻灯片播放。

g:临时用图命名以tmp为前缀。

h:其他图上命名以other为前缀。

3、代码规范

a:所有代码都应该对齐,排列整齐规则。如果只有一行注释,尽量使用//;如果多行就使    用/*    */。代码之间有必有的空行,但是不要空白一大片。对于不要的代码和注        释,应该都删除掉。对于注释了但是可能还要用的,可以不删除。对于每个类里面定义    的变量,应该一行一个,在字段的后面注释具体含义。

b:Activity与Activity尽可能减少参数传递。使得每个类都相对独立。而且每个Activity里    面的设配器和异步程序或者其他,能独立出去尽量独立出去。写成一个类,或者一个通用    的方法。这也更符合java面向对象的思想,使得代码更加简洁清晰。便于维护。每个类    前面都要注释是什么功能,什么界面,需要接收那些参数(包括名字和代表的含义)。

c:对于任何一个方法如果在几个类里面都有(2次以上),应该提取出来,写成一个通用的,    去调用,而不是每个类里面复制一份。便于维护,也减少代码重复。比如计算倒计时的    方法等。

d:对于要经常获取的值,应该在一开始就获取一次,然后定义一个静态变量,每次去调用    这个变量,而不是每次去读取那个方法,比如获取手机屏幕,一开始就获取一次,然后    保存到静态变量里面,而不是每次去获取手机屏幕。

e:对于样式相同的控件,应该把样式提取出来,统一定义到style.xml里去,像返回键,继    续购彩按钮,以后定义这样的控件,只有定义一个id,调用style就可以了。

f:不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致       message.what冲突。

g:activity中在一个initUI()方法初始化所有控件,并且在initListener()方法里面设置所有监    听事件,View.OnClickListener中处理所有的监听,但是对于具体处理的业务逻辑可以    写成一个方法,监听里面调用就可以了。

h:数据一定要效验,例如字符型转数字型,如果转换失败一定要有缺省值。服务端响应数    据是否有效判断。比如网络请求返回code是否是”0000”。所有的校验都写成一个         validatae()方法。通过返回Boolean值来确定是否通过校验,不要和业务逻辑写在一起。

i:有的按钮要避免重复点击。比如网络请求,点击之后就禁用掉。待异步处理完才释放。

j:对于字体都是使用sp为单位,对于高度、宽度、缩进等都使用dip为长度单位,所有布    局都要自适应屏幕,可以在Eclipse选择3.2、4.0、5.4等不同屏幕来查看布局是否通配,    是否变形。排列异常等问题。

k:网络加载、文件处理、数据库处理等问题不要放在主现场,都要放在异步去操作。

l:不要使用异步加载和hander搭配使用,一般使用异步就可以了。Hander是和线程搭配使    用的。一般来说,使用异步比较耗资源,但是效率高。使用handler相对来说不耗资源,    但是效率较低,如果两者同时使用,又耗资源又效率低,建议不要一起使用。二者选一。

m:对于每一个对象在使用的时候都要判断,再去使用,避免因为数据变动或者无数据时导    致报错。其方法可以借鉴下面的代码:

1) 对于字符串  可以调用Function.strNotNull(str);

2) 对于对象if(obj!=null)

3) 对于集合Function.listNotNull(list);  Function.mapNotNull(map);

4)对于数组Function.arrayNotNull(array);

n:所有静态的(static)不可变的(final)常量,都写到ConstantUtil.java里面。

所有静态的,可变的。需要共享的,都写到VariateUtil.java。比如屏幕尺寸;

所有的通用的函数和方法都写到FunctionUtil.java。其他的可以拓展。

o:对于定义变量,能定义成局部就不要定义到全局的里面去,这样便于内存回收。字符串拼接的不要使用String,而是使用StringBuffer。对于循环,不要把变量定义在里面。这样也可以减少内存的分配。例如

Person person = null;//定义在循环外面

int size = list.size();//避免重复调用

For(int i; i < size; i ++){

person = list.get(i);

//再去使用person对象

}

p:对于一个列表,如果使用的字段比较少,可以定义多个List<String>,但是如果使用比较    多,就应该把这些字段定义成一个Bean对象,然后把数据存储到List<Bean>。

q:使用静态变量方式实现界面间共享要慎重。每个单独的类不要在里面定义static变量。

..............待补充.............

时间: 2024-12-30 03:07:00

公司安卓项目规范的相关文章

安卓编码规范

安卓编程规范 一. 包 1. 包命名全部采用小写,不用下划线区分单词 2. 主包名采用[公司性质].[公司名称].[项目名称]的命名方式例如:翡翠做的手机助手包名edu.feicui.assistant 3. 通用功能子包名采用[主包名].[通用名称]的命名方式常见通用功能如下表: 包名 含义 [主包名].main 基础Activity及入口Activity所在的包 [主包名].util 通用工具类所在的包 [主包名].view 自定义View所在的包 [主包名].db 数据库操作相关所在的包

公司某项目前端技术积累

最佳实践 BootStrap + jquery + jquery插件 + sea.js/require.js + Grunt 前期技术选型 BootStrap + Backbone.js + require.js + jquery插件 ExtJS Angular.js BootStrap + jquery + jquery插件 前端技术选型总结: 之所以选择 BootStrap + jquery + jquery插件 的原因是因为ExtJS或Angular.js这种大而全的MVC框架,学习成本较

Android下apk安装的过程,安卓项目的目录结构

安卓下软件安装的过程: 1:拷贝XXX.apk到/data/app/XXX-1.apk 2.在/data/data目录下创建一个文件夹     文件夹名称  当前应用程序的包名. 安卓项目的目录结构: bin:编译后的文件目录 gen:自动生成的文件目录 project.properties:代表编译的版本 对应Android.jar的版本 res:资源目录 drawable:存放应用程序的图标 h :高分辨率(以此类推) x:特大分辨率

Unity3D导出到安卓项目无法监听摇杆的轴键

Unity3D 5.0的项目导出到安卓项目,在UnityPlayerActivity.java里面的onKeyDown和一些按键按下的事件无法监听到摇杆的轴键按下,就是x, y, z, rz轴的数据(实际摇杆),修改AndroidManifest.xml文件中的meta-data可以解决, <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true"

安卓项目开发实战(2)--星座展示12宫格

好多日子没有写安卓了,今天继续我未完成的安卓项目.今天主要实现星座展示的12宫格效果. 1.星座图片 找好12星座的图片,参见工程代码下面的res/drawable目录 2.星座枚举类 建立这个枚举类是很有必要的,可以使我们 的代码更加清晰,同时避免了魔法数字的情况. 枚举类的代码如下: package com.liuc.constatntEnum; import com.liuc.R; /** * 星座枚举 * * @author Administrator * */ public enum

Tarena公司网站项目实施方案

一.项目需求: Tarena公司,已经购买域名tarena.com.目前想实现以下服务 官网服务:www.tarena.com 邮件服务:mail.tarena.com 文件服务:ftp.tarena.com 二.项目规划: 1.设备及网络选型: 设备选型:四台Dell R710服务器,一台思科WS-2960S-24TS-S交换机,一台思科2951路由器 网络选型:由于公司业务为职业教育培训,其主要潜在目标群为大学生,所以需要要教育网访问. 而且考虑到服务器严重故障时可以第一时间派工程师到现场抢

《android 1: 创建一个安卓项目》

创建方式有两种: 通过Eclipse创建 在工具栏上选择New>android>android application project,或者在导航栏上选择file>new>project>android>android application project. 在出现的窗口上填上与选择你的 Application Name .Project Name.Package Name.Minimum Required SDK.Target SDK.Compile With.Th

导入安卓项目的时候,发生错误:Cause: peer not authenticated

导入安卓项目时出现Cause: peer not authenticated. 在网上搜了解决方案,都没有凑效.后来干脆插上手机直接debug安装,竟然成功了,成功了,成功了!!!! 然后再次build项目也没有错误了,也是醉了,醉了,醉了!!!!

安卓项目R,java文件不能自动更新,clean之后,R.java消失

今天整了个安卓项目,新增加了个跳转页面,添加完背景图,发现有个R.id找不到了,于是clean了一下,这下出问题了,发现各处的R.id都找不到,报错.结果一看是R.java没了然后各种百度结果:有说重新clean的,有说 Android Tools -> fix project propertities的,不过都不起作用.然后继续百度,看到一个普遍的观点是说,只要xml文件有问题,那系统是绝对不会为你自动生成R.java的. 看到这个错误才恍然大悟,我的背景图片的名称有问题,名称只能是数字字母和