摘要:例如针对类类的命名规则有其自己的一套规范,以使得其类作用更加明显。和类可以将其属性定义为,这样其他包中的代码需要通过访问属性。结论这两种模式都可以,取决于哪一个更加适合你的项目,然而,通常在代码中,第二种模式即按照特性划分更加有利和被推荐。
这是一个系列,我们将其命名为工具箱,如果你还没有看之前的文章:
Android工具箱之Context解析
Android工具箱之文件目录
Android工具箱之理解app资源文件
Android工具箱之Activity生命周期
Android工具箱之迁移到AppCompat
Android工具箱之Android 6.0权限管理
概览Android应用需要有良好的包结构定义,这会使得你的代码更易被阅读,通常来说,恰当的命名规范能够保证你的代码更易被维护和整洁。
命名规范 针对Java代码下列规则对于Java代码很重要:
变量 规范:所有变量都必须为小写字母开始,且驼峰式。例如:incomeTaxRate
常量 规范:所以常量都必须为大写字母。例如:DAYS_IN_WEEK
方法 规范:所有变量都必须为小写字母开始,且驼峰式。例如:convertToEuroDollars
方法参数 规范:所有参数必须小写字母开始,且驼峰式。例如:depositAmount
针对Android类Android类的命名规则有其自己的一套规范,以使得其类作用更加明显。比如所有的activity都会以activity结尾。
Activity 规范:CreateTodoItemActivity。继承于:AppCompatActivity,Activity。
List Adapter 规范:TodoItemsAdapter。继承于:BaseAdapter,ArrayAdapter。
数据库帮助类 规范:TodoItemsDbHelper。继承于:SQLiteOpenHelper。
网络客户端 规范:TodoItemsClient。
Fragment 规范:TodoItemDetailFragment。继承于:Fragment。
Service 规范:FetchTodoItemService。继承于:Service, IntentService。
你在命名Android类之前,最好思考下,目标是任何Android类都需要特殊定义的前缀。
包结构定义包结构的定义分歧很大,但是基本维持在两种模式:
按照种类分类其含义为:将app的每个特性都应该区分开。
com.example.myapp.activities - 包含所有的activity类
com.example.myapp.adapters - 包含所有的adapter类
com.example.myapp.models - 包含所有的数据模型
com.example.myapp.network - 包含所有的网络代码
com.example.myapp.fragments - 包含所有的碎片
com.example.myapp.utils - 包含所有的帮助类
com.example.myapp.interfaces - 包含所有的接口
按照app应用特性区分com.example.myapp.service.* - 包含所有的后台服务类
com.example.myapp.ui.* - 包含所有的UI相关类
com.example.myapp.ui.mainscreen - 包含所有的主屏幕相关类
com.example.myapp.ui.detailsscreen - 包含所有的其他屏幕相关类
这一定义,可以让你将DetailsActivity, DetailsFragment, DetailsListAdapter, DetailsItemModel放在一个包中。
DetailsListAdapter和DetailsItemModel类可以将其属性定义为protected,这样其他包中的代码需要通过get/set访问属性。
这使得创建实例更加简单和直观,因为对象在包外是不可改变的。
结论这两种模式都可以,取决于哪一个更加适合你的项目,然而,通常在Java代码中,第二种模式即按照特性划分更加有利和被推荐。
参考http://blog.smartlogic.io/2013/07/09/organizing-your-android-development-code-structure
http://stackoverflow.com/questions/5525872/android-project-package-structure
http://www.javapractices.com/topic/TopicAction.do?Id=205
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/12521.html
摘要:同时你应该注意到,当你的为的时候,你需要使用对应的版本。这一概念,我在的项目快速导入已经有所介绍。你需要将之前的主题替换为等主题。 这是一个系列,我们将其命名为工具箱,如果你还没有看之前的文章: Android工具箱之Context解析 Android工具箱之文件目录 Android工具箱之组织你的代码文件 Android工具箱之理解app资源文件 Android工具箱之Activit...
摘要:资源被用在很多地方,例如定义颜色,字符串,图片,布局,菜单等,这样定义的好处就是不再进行硬编码。布局最佳实践下列为如何确保你的能够在不同屏幕上展现良好避免硬编码在你的代码里。 这是一个系列,我们将其命名为工具箱,如果你还没有看之前的文章: Android工具箱之Context解析 Android工具箱之文件目录 Android工具箱之组织你的代码文件 Android工具箱之Activi...
摘要:这是一个系列,我们将其命名为工具箱,如果你还没有看之前的文章工具箱之解析工具箱之组织你的代码文件工具箱之理解资源文件工具箱之生命周期工具箱之迁移到工具箱之权限管理开发一个项目的结构最经常使用的文件夹如下源代码目录包括活动的控制器模型帮助类 这是一个系列,我们将其命名为工具箱,如果你还没有看之前的文章: Android工具箱之Context解析 Android工具箱之组织你的代码文件 A...
摘要:之前的权限管理在之前,开发者获取设备权限非常的简单,所有的权限会在安装的时候处理。的权限管理最显著的改变是支持用户随时的更改权限,随时的含义包括正在运行。的设备会分两种权限。而权限群允许在某一时间点同时申请多个权限。 这是一个系列,我们将其命名为工具箱,如果你还没有看之前的文章: Android工具箱之Context解析 Android工具箱之文件目录 Android工具箱之组织你的代...
摘要:当前呈现给用户的总是在栈顶。的生命周期通常有这四个处于栈顶,正在运行仍然可见,但是不和用户交互不再可见被系统杀死或者主动调用了方法。生命周期我们可以看一看这张图注意和,和的区别。 这是一个系列,我们将其命名为工具箱,如果你还没有看之前的文章: Android工具箱之Context解析 Android工具箱之文件目录 Android工具箱之组织你的代码文件 Android工具箱之理解ap...
阅读 1990·2021-11-22 13:54
阅读 3277·2019-08-29 12:25
阅读 3314·2019-08-28 18:29
阅读 3419·2019-08-26 13:40
阅读 3170·2019-08-26 13:32
阅读 843·2019-08-26 11:44
阅读 2101·2019-08-23 17:04
阅读 2854·2019-08-23 17:02