安卓开发规范

本文分享了安卓项目中合理的代码结构设计与命名规范,包括包结构设计、命名规范及简单的架构设计等内容。

很多安卓新手都很容易出现一个问题:代码结构乱七八糟,可读性相当差。作为新手,他们可能觉得把功能实现了就行,却不知道怎么优化代码结构,提升可读性。在此,我分享下个人的一些经验。

一、包结构设计

  首先,主包名设计:一般是公司的官网域名倒写加上项目名英文简写,例如com.google.xxx,如果是个人开发的项目,可以参考AndroidStudio默认生成的包名,com.example.xxx。(注意,为了规范,包名统一用小写字母

       其次,是包的详细结构。我个人推荐的包结构设计方案有两种:一是按照Java类的类型分类,二是按照项目功能模块分类。

1、按照java类类型分类,这种适合项目结构简单,个人开发的项目。示例如下图:

其中,ui存放activity类,frag存放fragment相关类,listener存放接口类或者监听类,config存放项目的配置信息,例如一些静态变量,常量等等,base存放一些通用的抽象类(BaseActivity,BaseFragment之类的),dao存放一些业务逻辑的处理,里面还可以细分,例如网络请求。service存放安卓的一些自定义service,utils自然是存放我们平时封装的一些工具类,view下面存放一些自定义的view。BaseApplication是整个项目的Application(一般都会这样设计)。

2、按照项目功能模块划分,这种一般适合项目特别复杂,模块划分明显的项目。实际工作中我更推荐用这种方式,如下图

上面已经介绍过的我就不细说了,其中,message代表消息模块(这里只是举例,实际情况根据项目来定),dynamic(消息动态模块),user(用户信息模块),settings(设置),contacts(联系人模块),这些包下又分activity(存放该模块相关的activity),frag(存放该模块相关的fragment),dao(业务逻辑),adapter(适配器),可根据实际情况添加更多。

二、命名规范

命名方法可以参考Google的api命名方法

1、包名统一小写,尽量别用拼音,能用英文或者英文缩写就用,用拼音显得low。

2、类的命名我推荐“驼峰命名法”,就是大小写字母混写,也是能用英文或者英文缩写就用。每一个单词的首字母都采用大写字母,其余小写(大驼峰法),例如:MainActivity、MyGridView。

3、函数或变量命名(小驼峰法):第一个单词是全部小写,后面的单词首字母大写,例如mTextView,userName,getUserInfo()。

4、常量命名统一用大写字母加下划线分割单词,例如:public static final String USER_NAME。

5、根据类的类型命名:该类的功能加上类的类型。activity统一用Activity结尾,如:MainActivity(主界面),UserActivity(用户界面)。fragment统一用Fragment结尾或者开头,例如MyFragment,FragmentContact。如果你觉得类名太长,可以简写,例如UserInfoAty,UserInfoFrag,但尽量保持同一个包下风格一致。工具类命名(util结尾):例如TimeUtil、FileUtil,让人一目了然这个类是跟什么相关的。

6、关于安卓控件的特例,对于TextView,Button这一类变量的命名,我比较喜欢跟控件id相对应,例如

R.id.tv_add.那么在Activity里面我们可以这样命名:private TextView tv_add;这样可以方便findViewById时直观明了,当然你也可以用小驼峰命名法,例如 tvAdd。

7、关于控件id的命名:用控件缩写开头加上它的功能描述,下划线分割单词,

例如TextView: tv_add(添加),EditText: et_password(密码输入框),Button: btn_login(登录按钮),btn_get_user_info(点击获取用户信息的按钮)。

8、关于资源文件的命名。

1、drawable下自定义的drawable,例如selector_white_gray(白色和灰色变换的点击效果),shape_blue_radius(蓝色边框圆角),shape_login_bg(登录按钮的背景)。

2、drawable或mipmap下的图片文件命名:应用内相关图标用icon_开头,例如icon_setting(设置图标),icon_add(添加图标)。背景图用bg_开头,例如bg_main,其他的可以根据图片的作用来命名,例如img_user_defult_head(用户默认头像)

三、简单的架构设计

1、一个项目首先应该设计一个BaseApplication extends Application,用于初始化app所需的数据,同时记得在AndroidManifest.xml的application标签下配置

<application  android:allowBackup="true"  
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name"              
     android:supportsRtl="true" 
     android:name=".BaseApplication" <!-- 在这里关联 -->  
     android:theme="@style/AppTheme">

2、写一些通用的抽象类Activity、Fragment、Adapter。例如BaseActivity,BaseFragment,CommonAdapter,里面封装一些通用的方法。

3、封装一些工具类,例如针对字符串处理的,针对图片进行处理的,针对文件进行处理的

4、定义好一些通用的styles、colors、dimens等等。

详情可以看我的项目例子,链接:https://github.com/GdinKing/MyFrame/tree/master

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猫King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值