很多安卓新手都很容易出现一个问题:代码结构乱七八糟,可读性相当差。作为新手,他们可能觉得把功能实现了就行,却不知道怎么优化代码结构,提升可读性。在此,我分享下个人的一些经验。
一、包结构设计
首先,主包名设计:一般是公司的官网域名倒写加上项目名英文简写,例如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。

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

被折叠的 条评论
为什么被折叠?



